我有一个应用程序,部署在wildfly中。有时在应用程序中会发生数据库连接泄漏。我真的在调试器中找不到它们。但它们显示在数据源统计页面的WildFly管理控制台中,InUseCount有时会增加。
所以,问题:
- 是否可以创建在创建和关闭连接时触发的处理程序?在全球范围内寻找不密切联系的人
- 是否有连接泄漏的故障排除方法,比简单的调试更有效
我发现了这篇文章:
http://www.mastertheboss.com/jbossas/wildfly9/detecting-connection-leaks-in-wildfly-9
但对于现代版本的WildFly(例如19及更高版本(来说,它并不准确。问题在于,在现代版本中,WildFly在启动时不使用参数ironjacamar.mcp。必须使用数据源的mcp
选项来代替此参数。
关于数据源选项的文档:
https://docs.wildfly.org/19.1/wildscribe/subsystem/datasources/xa-data-source/index.html
在刷新数据源时添加mcp
选项后,会显示文件leaks.txt
。