【适用版本】 TongWeb6.0.5.0后续版本及TongWeb7以后版本。 【问题现象】 在应用使用TongWeb的数据源且配置连接数充足的情况下,长时间运行后出现数据源连接数占满现象,应用无法获取连接。报错信息,如下所示。 【解决方案】 由于SQL执行时间较长,应用长时间占用数据库连接不释放,获取数据库连接后,结束时未关闭连接导致该问题,解决步骤如下: 1.打开数据源配置里的SQL监控,检查一次连接执行的SQL总时间是否过长。 2.打开数据源配置的“泄露超时时间”和“连接泄露时打印日志”。 当达到设置时间后,TongWeb日志中会输出应用所占用的连接而没有释放,如下所示。 3.通过以上两点可以分析应用占用连接情况,若不从应用角度修改,可通过以下两种方式设置释放数据库连接: (1)打开数据源的“泄漏回收”功能,当达到泄露超时时间后强制关闭连接。 (2)启动脚本增加-Dtongweb.resource.leakCheck=true,当请求处理完成后关闭连接,仅限于管理TongWeb线程。应用自有线程无法管理。 通过上述操作即可成功解决数据源泄漏的问题。 后续若有信创产品及服务相关问题,欢迎您继续使用本平台进行反馈,谢谢!
|