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

使用&lt;track-statements&gt;false&lt;/track-statements&gt;

请参考相同的 https://access.redhat.com/solutions/40841

【讨论】:

以上是关于JBOSS 6:[CachedConnectionManager] 为您关闭连接。请自行关闭的主要内容,如果未能解决你的问题,请参考以下文章

JBoss 6 迁移:部署 grails 应用程序时出错

jconsole 未检测到 jboss eap 6.1

JBoss 6.1.0 AS 过滤器在 web.xml 中的位置

如何在 jboss 7.1.1 中使用 liferay 6.1.2 中的 jboss 部署 structure.xml?

在 JBoss 6.1.0-Final 中使用 MDC 日志记录

jboss 6远程jms网桥配置不起作用