每次事务在JBOSS 6中结束时我都会收到异常。我知道我没有手动关闭连接,但是我想通过更改记录器模式来避免它。为实现这一目标,我添加了以下内容
<logger category="org.jboss.resource.connectionmanager.CachedConnectionManager">
<level name="FATAL"/>
</logger>
在jboss-6.1.0_Final / server / default / deploy下的 jboss-logging.xml 中。 问题是它没有反映在控制台上。根记录器处于INFO模式。 确切的堆栈跟踪是
INFO [CachedConnectionManager] Closing a connection for you. Please close them yourself: org.jboss.resource.adapter.jdbc.jdk6.WrappedConnectionJDK6@d0249e: java.lang.Throwable: STACKTRACE
at org.jboss.resource.connectionmanager.CachedConnectionManager.registerConnection(CachedConnectionManager.java:278) [:6.1.0.Final]
at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:524) [:6.1.0.Final]
at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:941) [:6.1.0.Final]
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:89) [:6.1.0.Final]
at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:92) [:3.6.6.Final]
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446) [:3.6.6.Final]
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167) [:3.6.6.Final]
at org.hibernate.jdbc.BorrowedConnectionProxy.invoke(BorrowedConnectionProxy.java:74) [:3.6.6.Final]
如果有人能告诉我有关jboss-logging.xml的文档,我将不胜感激。我们已从Jobss 4迁移,它在conf dir下有jog4j.xml。这两个文件是否相似?
答案 0 :(得分:5)
track-statements:这个boolean元素指定是否检查 连接返回池时的未闭合语句。如果 如果为true,则为每个未关闭的语句发出警告消息。如果 log4j类别 org.jboss.resource.adapter.jdbc.WrappedConnection 已启用跟踪级别,连接关闭调用的堆栈跟踪 也记录了。这是一个可以关闭的调试功能 生产
来源:http://docs.jboss.org/jbossas/docs/Server_Configuration_Guide/beta500/html/ch13s13.html
答案 1 :(得分:0)
请按照以下Jboss 6.1中的步骤解决此问题, 01:15:19,406 INFO [CachedConnectionManager]为您关闭连接请自行关闭它们:org.jboss.resource.adapter.jdbc.WrappedConnection@ef028b
java.lang.Throwable:STACKTRACE
at org.jboss.resource.connectionmanager.CachedConnectionManager.register
我禁用JBoss CachedConnectionManager来解决问题。
第1步: $ JBOSS_HOME / server \ default \ deploy \ jbossweb.sar / server.xml
注释或删除className CachedConnectionValue:
<!--Valve className="org.jboss.web.tomcat.service.jca.CachedConnectionValve"
cachedConnectionManagerObjectName="jboss.jca:service=CachedConnectionManager"
transactionManagerObjectName="jboss:service=TransactionManager" /-->
第2步: server / default / deploy / jbossweb.sar / META-INF / jboss-beans.xml
评论或删除CachedConnectionManager:
<!--
<depends>jboss.jca:service=CachedConnectionManager</depends>
-->
第3步: $ JBOSS_HOME / server / default / conf / standardjboss.xml
注释或删除所有CachedConnectionInterceptor语句:
<!--
<interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
-->
答案 2 :(得分:0)
server.log 文件中与 Closing a result set you left open! Please close it yourself
相关的消息表示启用了跟踪语句并且未关闭 ResultSet/Statements。此跟踪由数据源上的以下选项启用
分辨率:
如果您在 EAP 中mssql-ds.xml
使用<track-statements>false</track-statements>