适用的druid数据库连接池一直有问题,无法连接,但是什么都没改过。排查了数据库(数据库单独连接没问题)、防火墙、IP白名单等步骤后,重启服务器、重启应用后都无法解决。重启应用过程中发现了应用无法正常启动的情况,这点让人觉得很意外,于是想看下现在服务器上运行的jar包情况,命令是
ps -ef | grep java
结果发现了元凶,同一个jar包同时运行着两个进程,有一个是之前重启的时候进程没有成功被杀掉,暂且称之为残留进程。这样就导致残留进程是个残疾,功能不全但是还在运行,新的应用还没有起来,引发了一系列暂时无法解释的现象,数据连接池被各种沾满,应用中数据库连接各种超时。这样处理方式就明朗了,杀掉残留应用的进程和那个没完全启动的进程(如有的话),然后重新发布应用。问题解决。记录一下,并不一定适用所有场景,以后备查或者希望能帮到一些人。
开发路漫漫,正常都是一样的正常,异常真他么的是各种各样的异常。
标签:DataSourceClosedException,20,48,数据库,druid,应用,进程,残留,重启 From: https://www.cnblogs.com/azhqiang/p/18147504