1.背景
早上还没到公司,就噼里啪啦收到一堆告警邮件,com.taobao.tddl.jdbc.group.dbselector.NoMoreDataSourceException: dsKey:xxxxxxxxx not Available,toTry:false at 。。。
2.原因
一开始以为是db挂了,后来排查发现数据也都正常入库了,db也能正常查询,但是就是有那么一会儿一直在报NoMoreDataSourceException,真是纳闷啊,后来找dba查看db连接池的情况,发现那个时间点,连接池突然大量释放,为毛!!!???后面只能邮件求助公司架构了。。。
3.解释
按照这个解释就能解释为什么连接大量释放的时候却还报NoMoreDataSourceException了,因为此时db被置为异常状态,只允许单线程访问,单线程访问成功后,重置db为正常,又能并发访问了