14:59:37,528 INFO [CachedConnectionManager] Closing a connection for you. Please close them yourself: org.jboss.resource.adapter.jdbc.WrappedConnection@1b0d990
java.lang.Exception: STACKTRACE
at org.jboss.resource.connectionmanager.CachedConnectionManager.registerConnection(CachedConnectionManager.java:321)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:467)
at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:874)
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:103)
......
......
很显然是一个连接(connection)没有关闭
解决的方法是在开发的源码的JDBC中,先判断Connection、PreparedStatement、ResultSet是否为空,如果不为空,close ResultSet;然后判断PreparedStatement是否为空,如果不为空,close PreparedStatement;最后判断Connection是否为空,并且Connection的是否关闭(isClosed()),如果是不为空,并且没有关闭,close Connection。
java.lang.Exception: STACKTRACE
at org.jboss.resource.connectionmanager.CachedConnectionManager.registerConnection(CachedConnectionManager.java:321)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:467)
at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:874)
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:103)
......
......
很显然是一个连接(connection)没有关闭
解决的方法是在开发的源码的JDBC中,先判断Connection、PreparedStatement、ResultSet是否为空,如果不为空,close ResultSet;然后判断PreparedStatement是否为空,如果不为空,close PreparedStatement;最后判断Connection是否为空,并且Connection的是否关闭(isClosed()),如果是不为空,并且没有关闭,close Connection。
本文介绍了如何解决Java应用程序中由于未正确关闭JDBC连接而导致的资源泄露问题。通过检查Connection、PreparedStatement和ResultSet的状态并确保它们被适当地关闭,可以避免这类问题的发生。

被折叠的 条评论
为什么被折叠?



