IBM MQ |内存泄漏|堆转储

问题描述

Websphere版本-8.5.5.17

unzip -p com.ibm.mq.jar meta-inf/MANIFEST.MF|grep Implementation-Version
// Not Output

unzip -p com.ibm.mqbind.jar meta-inf/MANIFEST.MF|grep Implementation-Version
// Not Output

unzip -p com.ibm.mq.jmqi.jar meta-inf/MANIFEST.MF|grep Implementation-Version
Implementation-Version: 7.0.1.4 - k701-104-110104
com.ibm.mq.jar - Manifest-Version: 1.0

com.ibm.mq.jmqi.jar - Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.0
Created-By: 1.4.2 (IBM Corporation)

com.ibm.mqbind.jar -  Manifest-Version: 1.0

Java 1.8

我们正在使用MQ发送数据。应用程序已经运行了多年,并且每天都会重新启动服务器。现在,我们希望将每天的使用量减少到每周一次,但是我们已经开始遇到堆/内存错误

生成堆转储和分析时,我们发现了以下问题

Leak SUSPECT    12,338,040 bytes (11.62 %) of Java heap is used by 106 instances of com/ibm/rmm/transmitter/QueueT
Total size  12,040 bytes
Size    424 bytes
Name    array of com/ibm/rmm/transmitter/Submitter
Number of children  106
Number of parents   1
Owner address   0xc1b423b8
Owner object    com/ibm/ws/dcs/vri/transportAdapter/rmmImpl/rmmGroup/RmmPtpGroup
Address 0xc645af70
First single ancestor   com/ibm/ws/dcs/vri/transportAdapter/rmmImpl/rmmGroup/RmmPtpGroup at 0xc645af70




Leak SUSPECT    27,580,544 bytes (27.54 %) of Java heap is used by 7 instances of java/util/HashMap$Node
Contains an instance) of the leak SUSPECT:
- array of com/ibm/rmm/transmitter/Submitter holding 11,990,072 bytes at 0xc53e9730
Total size  27,544 bytes
Size    64 bytes
Name    array of java/util/HashMap$Node
Number of children  7
Number of parents   1
Owner address   0xc2b6bbf0
Owner object    java/util/HashMap
Address 0xc2b6bc18
First single ancestor   sun/nio/ch/EPollSelectorImpl at 0xc2b6bc18

总的来说,我可以在下面的finally块中调用代码中看到

MQQueue -> close()
MQQueueManager -> disconnect()

不确定是否需要对代码进行一些更改以清理资源,或者是否需要更新某些库版本或Websphere。

我在注释部分升级了所述客户端库,但出现以下错误

Caused by: java.lang.NoSuchMethodError: com/ibm/mq/jmqi/JmqiMQ.isLocal()Z (loaded from file:/opt/middleware/availments/WebSphere/85-64/installedConnectors/wmq.jmsra.rar/com.ibm.mq.jmqi.jar by org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@bf93861d) called from class com.ibm.mq.ese.jmqi.ESEJMQI

我已就此问题向MQ提供支持

在WAS中运行时,不能使用已安装的MQ客户端。您必须使用MQ资源适配器。 按照以下链接https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_8.0.0/com.ibm.mq.dev.doc/q031610_.htm

为了使用MQ 9.1 MQ RA,必须运行支持JMS 2.0的WAS版本。 WAS 7、8 ad 8.5仅支持JMS 1.1。因此,为了能够使用MQ RA 9.1,您需要将WAS升级到9.0.5。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...