JBOSS 6:[CachedConnectionManager] 为您关闭连接。请自行关闭
Posted
技术标签:
【中文标题】JBOSS 6:[CachedConnectionManager] 为您关闭连接。请自行关闭【英文标题】:JBOSS 6: [CachedConnectionManager] Closing a connection for you. Please close them yourself 【发布时间】:2012-01-05 09:06:57 【问题描述】:每次事务在 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。这两个文件是否相似?
【问题讨论】:
您在这个问题上有什么好消息吗?我有同样的问题.. 【参考方案1】:track-statements :此布尔元素指定是否检查 连接返回池时未关闭的语句。如果 true,为每个未关闭的语句发出警告消息。如果 log4j 类别 org.jboss.resource.adapter.jdbc.WrappedConnection 启用了跟踪级别,连接关闭调用的堆栈跟踪是 也登录了。这是一个调试功能,可以在 生产。
来源:http://docs.jboss.org/jbossas/docs/Server_Configuration_Guide/beta500/html/ch13s13.html
【讨论】:
【参考方案2】:请在 Jboss 6.1 中按照以下步骤解决此问题, 01:15:19,406 信息 [CachedConnectionManager] 为您关闭连接。请自行关闭它们:org.jboss.resource.adapter.jdbc.WrappedConnection@ef028b
java.lang.Throwable: STACKTRACE
在 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" /-->
第二步: 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>
-->
【讨论】:
【参考方案3】:server.log 文件中与Closing a result set you left open! Please close it yourself
相关的消息意味着启用了跟踪语句并且未关闭结果集/语句。此跟踪由数据源上的以下选项启用
分辨率:
如果你是 EAP 中的mssql-ds.xml
使用<track-statements>false</track-statements>
请参考相同的 https://access.redhat.com/solutions/40841
【讨论】:
以上是关于JBOSS 6:[CachedConnectionManager] 为您关闭连接。请自行关闭的主要内容,如果未能解决你的问题,请参考以下文章
JBoss 6.1.0 AS 过滤器在 web.xml 中的位置
如何在 jboss 7.1.1 中使用 liferay 6.1.2 中的 jboss 部署 structure.xml?