Detecting Connection Leaks in JBoss
Detecting Connection Leaks JBoss has a CachedConnectionManager service that can be used to detect connection leaks (within the scope of a request) Configured in ${jboss.server.url}/deploy/jbossjca-service.xml Triggered by Tomcat’s server.xml→<Host>→CachedConnectionValve
Enabled by default - slight overhead
Should be used during testing
Can be turned off in production if the code is stable
If the CachedConnectionValve is enabled in Tomcat’s server.xml file, then Tomcat must wait for the CachedConnectionManager service on startup. This is accomplished by adding the following line to Tomcat’s META-INF/jboss-service.xml file (near the end):
<depends>jboss.jca:service=CachedConnectionManager</depends>
Connection pools could be monitored (through JMX) by looking at jboss.jca:name=MyDS,service=ManagedConnectionPool→InUseConnectionCount attribute. The example web application northwind.war can be made to leak resources (on /ListCustomers) by
appending requesting /ListCustomers?leak=true, and/or by
adding a custom system property: -Dleak.jdbc.resources=true to JAVA_OPTS in run.conf or run.bat (on Windows)
For an in-depth understanding on JBoss click on: