Ibm mq MQPUT成功,但消息在远程队列中不可用

Ibm mq MQPUT成功,但消息在远程队列中不可用,ibm-mq,Ibm Mq,MQPUT在IBM ZOS IMS在线服务上返回一个成功的post响应(00),但消息未插入远程队列。队列连接也成功 程序用cobol编写,带有IMS接口,模块通过IMS Websphere桥接接口调用 默认情况下,对于z/OS上的MQ,MQPUT在本地UOW下完成。i、 e.为Put消息选项设置MQPMO-SYNCPOINT。因此,代码必须执行MQCMIT API调用 更新代码以使用MQPMO-NO-SYNCPOINT,这样消息就不会在等待MQCMIT时被保留。感谢您的响应,实际上,当程序遇到

MQPUT在IBM ZOS IMS在线服务上返回一个成功的post响应(00),但消息未插入远程队列。队列连接也成功


程序用cobol编写,带有IMS接口,模块通过IMS Websphere桥接接口调用

默认情况下,对于z/OS上的MQ,MQPUT在本地UOW下完成。i、 e.为Put消息选项设置MQPMO-SYNCPOINT。因此,代码必须执行MQCMIT API调用


更新代码以使用MQPMO-NO-SYNCPOINT,这样消息就不会在等待MQCMIT时被保留。

感谢您的响应,实际上,当程序遇到故障情况时,程序在逻辑工作单元上有一个回滚,因此,在本例中,程序更新到MQ,但回滚发生在处理结束时

您好-您可以将您的MQPUT代码添加到问题中,以便我们进一步提供帮助吗?另外,你能准确地解释一下你在检查什么是零吗。你说“回复后”,我想知道你的意思。CompCode参数(MQPUT上的倒数第二个)是一个输出参数,您应该在这里检查零(或非零)。这就是你的意思吗?如果CompCode为非零,则Reason参数(MQPUT上的last)将有一个2000+范围内的数字(十进制),这将解释更多内容。这是一个简单的代码,涉及使用队列名称作为对象描述符调用MQPUT,连接标识符和MQPUT模块将响应返回为零。。还有一种奇怪的情况是,在批处理过程中调用同一模块时,它能够将消息发布到队列中,这让我有些困惑。@DinishBS如果没有代码(和MQ设置),就不可能告诉您问题出在哪里。如果您不发布代码,我们无法帮助您,我们只能猜测。@DinishBS您再次描述如何检查返回代码的方式,“模块将响应返回为零”,这让我认为您没有检查CompCode输出参数(MQPUT上的第二个最后一个参数)中的值,而是检查模块返回代码。请确认。发布您的代码,特别是您如何找到零返回代码,将有助于我们帮助您。