【发布时间】:2015-03-31 00:30:28
【问题描述】:
我正在尝试按照此处的建议在 java 中实现接收退出: http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_7.0.1/com.ibm.mq.csqzaw.doc/jm11171_.htm
// This method implements the receive exit interface
public ByteBuffer channelReceiveExit(MQCXP channelExitParms,
MQCD channelDefinition,
ByteBuffer agentBuffer)
{
// Complete the body of the receive exit here
}
我看到调用了 exit 方法,并且按照文档,我希望 agentBuffer 包含传入消息的数据。但是agentBuffer似乎每次都是null,所以我看不出有什么办法影响消息数据。
任何线索将不胜感激。
UPD 我错了 agentBuffer 总是空的,它不是。在 T.Rob 回答之后,我设法用 MQCXP.ExitReason = 14 (MQXR_XMIT) 捕获了几个呼叫。 通过其中一个调用,我在缓冲区中接收消息数据,并且看起来可以修改这些数据。 但是,其他调用仍然存在问题,具有相同的 ExitReason,但不对应任何实际消息传输。我需要跳过这样的电话,但不知道如何区分它们。
知道我该怎么做吗?
【问题讨论】: