Websphere IBM MQ 连接泄漏导致线程阻塞

问题描述 投票:0回答:1

在 Websphere Connection 泄漏跟踪日志中低于 MQ 连接堆栈跟踪。不确定为什么 Websphere 没有在配置的超时时间内释放连接。拍了

我们在 WAS JMS 池设置中配置了 5 秒的 MQ JMS 池连接超时。

无法理解为什么仍在使用连接。当我们读取 JMS 消息时,我们使用 finally 代码块关闭连接。没有其他应用程序错误日志。

使用 WAS 跟踪字符串作为 --> =info: JMSApi=all: JMSServer=all: Messaging=all: JMS_WASTraceAdapter=all: com.ibm.mq.=all: jmsApi=all: ConnLeakLogic=all: com.ibm .ejs.j2c.*=全部

Connection marked to be destroyed.  Waiting for transaction end and connection close - MCWrapper id 53b353b3  Managed connection com.ibm.ejs.jms.JMSManagedQueueConnection@29422942
        managed connection factory = com.ibm.ejs.jms.WMQJMSRAManagedConnectionFactory@70a470a4
        physical connection = com.ibm.mq.jms.MQXAQueueConnection@44504450
        connectorName = JMS$MIUFACTORY$JMSManagedConnection@11
        credential = null
        open connection handles = [com.ibm.ejs.jms.JMSQueueConnectionHandle@655a655a]  State:STATE_ACTIVE_INUSE Thread Id: 0000005f Thread Name: WebContainer : 5 Handle count 1 Start time inuse Wed Jan 18 16:00:18 GMT 2023 Time inuse 1479 (seconds)
    Connection marked to be destroyed.  Waiting for transaction end and connection close - MCWrapper id 270b270b  Managed connection com.ibm.ejs.jms.JMSManagedQueueConnection@1c921c92
        managed connection factory = com.ibm.ejs.jms.WMQJMSRAManagedConnectionFactory@70a470a4
        physical connection = com.ibm.mq.jms.MQXAQueueConnection@3c933c93
        connectorName = JMS$MIUFACTORY$JMSManagedConnection@7
        credential = null
        open connection handles = [com.ibm.ejs.jms.JMSQueueConnectionHandle@1c2f1c2f]  State:STATE_ACTIVE_INUSE Thread Id: 00000035 Thread Name: WebContainer : 2 Handle count 1 Start time inuse Wed Jan 18 15:24:28 GMT 2023 Time inuse 3629 (seconds)
  Total number of connection in unshared pool: 2 Connection Leak Logic Information:
  MCWrapper id 53b353b3  Managed connection com.ibm.ejs.jms.JMSManagedQueueConnection@29422942
        managed connection factory = com.ibm.ejs.jms.WMQJMSRAManagedConnectionFactory@70a470a4
        physical connection = com.ibm.mq.jms.MQXAQueueConnection@44504450
        connectorName = JMS$MIUFACTORY$JMSManagedConnection@11
        credential = null
        open connection handles = [com.ibm.ejs.jms.JMSQueueConnectionHandle@655a655a]  State:STATE_ACTIVE_INUSE Thread Id: 0000005f Thread Name: WebContainer : 5 Handle count 1
     Start time inuse Wed Jan 18 16:00:18 GMT 2023 Time inuse 1479 (seconds)
     Last allocation time Wed Jan 18 16:00:18 GMT 2023
       getConnection stack trace information:
          com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:900)
          com.ibm.ejs.jms.JMSQueueConnectionFactoryHandle.createQueueConnection(JMSQueueConnectionFactoryHandle.java:84)

Websphere 版本详情: 版本 7.0.0.45 消息队列版本: 实现标题:WebSphere MQ 资源适配器 实施版本:7.0.1.14

编辑: 经过分析,此连接泄漏是由于在其中一个服务执行期间加载类失败所致。
即使我们的库存在于 EAR 中,它仍然在加载 ClassNotFoundException 以加载存在于一个 jar 中的类时出错。
::java.lang.ClassNotFoundException::

java.net.URLClassLoader.findClass(URLClassLoader.java:457): 
at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:201):  
at java.lang.ClassLoader.loadClass(ClassLoader.java:676):   
at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:112):  
at java.lang.ClassLoader.loadClass(ClassLoader.java:642):   
at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:62):   
at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:58):   
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:545):  
at java.lang.ClassLoader.loadClass(ClassLoader.java:642):   
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:513):  
at java.lang.ClassLoader.loadClass(ClassLoader.java:642):   
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:545):  
at java.lang.ClassLoader.loadClass(ClassLoader.java:642):   
at 
java jms websphere ibm-mq classloader
1个回答
0
投票

这些连接泄漏是由于长时间运行的 WebSphere 长时间运行的事务导致线程处于活动状态,进而没有关闭连接句柄。

© www.soinside.com 2019 - 2024. All rights reserved.