ibm-mq - 命令 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 不关闭或增加超时?
谢谢
解决方案
您链接到的 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 的数字。