问题描述
我们看到大约 175 个对队列管理器开放的通道有大约 450 个 amqrmppa 进程在运行,我不确定这个比例应该是多少?如果这太高了,那么解决此问题并能够确定哪个 IP 打开了多少 amqrmppa 进程的最佳方法是什么?
我们在 rhel7 机器上使用 MQ v9.1.0.6。
解决方法
要了解哪些通道在哪些 amqrmppa
进程中运行,请使用以下命令:-
DISPLAY CHSTATUS(*) JOBNAME
这将为您提供如下输出:-
AMQ8417I: Display Channel Status details.
CHANNEL(MQG1.TO.MQG2) CHLTYPE(SDR)
CONNAME(127.0.0.1(1702)) CURRENT
JOBNAME(00007DFC00000001) RQMNAME(MQG2)
STATUS(RUNNING) SUBSTATE(MQGET)
XMITQ(MQG2)
查看 JOBNAME
字段,它是两个十六进制值(无论如何在 Windows 和 Unix 上)包含 amqrmppa
进程的进程 ID,在我的示例中为 0x00007DFC
,然后是线程该进程中的 ID。
如果您在允许按任何字段对输出进行排序的工具中查看所有通道状态记录,请执行此操作,并按作业名称排序以查看按它们在其中运行的进程 ID 分组的所有通道。
令人惊讶的是,您有更多 amqrmppa
进程在运行,而您拥有活动通道。通常,amqrmppa
进程比通道少,因为多个通道将在一个 amqrmppa
(远程池进程)内运行。这表明您之前可能有更多的渠道,因此需要更多的 amqrmppa
流程,但现在这些渠道中的大部分都已结束。我原以为一个“空的”amqrmppa
进程会在它不再有任何事情可做时结束,一小部分会保留在稍后开始的新频道中,但不会有 200 个。