【问题标题】:MQ java process taking 100% of CPUMQ Java 进程占用 100% 的 CPU
【发布时间】:2020-10-16 08:34:21
【问题描述】:

我们的 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,然后我看不到这个。发生这种情况的原因可能是什么?

【问题讨论】:

  • 会不会写很多追踪信息?

标签: ibm-mq


【解决方案1】:

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 应用程序使用 JMSAdmin 生成的 .binding 文件来查找有关如何连接到 MQ 以及要访问的队列和主题的名称的详细信息。


在 2011 年 7 月,您将一直使用 IBM MQ v7.0 或更低版本,所有这些都不受支持,如果有人遇到与最近支持的 MQ 版本类似的问题,我建议您使用 java 线程转储并向 IBM 立案,调查其占用 100% CPU 的原因。


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

【讨论】:

    猜你喜欢
    • 2012-03-10
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 2022-12-15
    • 2011-11-09
    • 2011-11-17
    • 1970-01-01
    • 2011-11-24
    相关资源
    最近更新 更多