首页 > 解决方案 > 命令 mqreply.c 超时

问题描述

我们和我的同事从https://github.com/ibm-messaging/mq-rfhutil/tree/master/mqperf构建了 mqreply.sh 但我们不建议命令 mqreply 超时,然后关闭命令进程。

我将我们的文件附上用于执行 mqreply 的参数:

[header]
qname=DEV.QUEUE.1
qmgr=QM1
msgcount=10
msgtype=2
format="MQSTR"
codepage=1208
persist=0
replyq=DEV.QUEUE.2
sleeptime=1000
maxWaitTime=5
maxtime=60
waitTime=60
replyFilename=/tmp/msqtoload.dat

我尝试设置 maxWaitTime 和 maxtime,waitTime,但它不会影响进程生命周期的超时。

你能说我怎样才能让 mqreply 不关闭或增加超时?

谢谢

标签: ibm-mq

解决方案


您链接到的 mqreply 示例中围绕 MQGET 的 while 循环执行以下操作:-

while ((compcode == MQCC_OK) && (0 == terminate) && ((0 == parms.totcount) || (msgsRead < parms.totcount)))
{

此外,MQGET 只会等待 1 秒。因此有一条评论:-

/* since we have a signal handler installed, we do not want to be in an MQGET for a long time */

这表明,如果您想让 mqreply 保持打开并运行更长时间,您需要指定msgcount一个大于 10 的数字。


推荐阅读