MQ java进程占用100%的CPU

时间:2011-07-15 05:32:41

标签: ibm-mq

我们的linux服务器中的以下过程占用了100%的CPU

java -DMQJMS_LOG_DIR=/opt/hd/ca/mars/tmp/logs/log -DMQJMS_TRACE_DIR=/opt/hd/ca/mars/tmp/logs/trace -DMQJMS_INSTALL_PATH=/opt/isv/mqm/java com.ibm.mq.jms.admin.JMSAdmin -v -cfg /opt/hd/ca/mars/mqm/data/JMSAdmin.config 

我强行杀死了进程并弹回了MQ然后我没有看到这个。这可能是什么原因发生的?

1 个答案:

答案 0 :(得分:0)

java进程com.ibm.mq.jms.admin.JMSAdmin通常是通过IBM MQ脚本/opt/mqm/java/bin/JMSAdmin执行的。

JMSAdmin的目的是创建用于连接到IBM MQ的JNDI资源,这些资源通常基于文件并且存储在名为.binding的文件中,.binding文件的位置可以在配置中找到传递给命令的文件。在您上面的输出中,配置文件为/opt/hd/ca/mars/mqm/data/JMSAdmin.config

JMSAdmin是一个交互式过程,您可以在其中运行以下命令:

DEFINE QCF(QueueConnectionFactory1) +
       QMANAGER(XYZ) +
       ...

我无法告诉您为什么它占用了100%的CPU,但是进程本身并不直接与队列管理器进行交互或连接,因此可以安全地终止进程而无需重新启动队列经理。在某些配置中,JMS应用程序使用.binding生成的JMSAdmin文件来查找有关如何连接到MQ的详细信息以及要访问的队列和主题的名称。


在2011年7月,您将使用IBM MQ v7.0或更低版本,而所有这些版本都不再受支持,如果任何人都应该在最近受支持的MQ版本中遇到类似的问题,我建议您进行Java线程转储并与IBM一起调查一个案例,调查为什么它占用了100%的CPU。


* PS我知道这是一个已有9年历史的问题,但我认为答案可能对在寻找类似问题时发现此问题的人有所帮助。