如何通过Java代码基于中的消息ID读取IBM MQ消息(IBM MQ客户端)
我需要实现通过传递消息id从IBM MQ读取消息的代码,我实现的程序将一次读取一条消息,但我的代码没有覆盖消息id如何通过Java代码基于中的消息ID读取IBM MQ消息(IBM MQ客户端),java,ibm-mq,Java,Ibm Mq,我需要实现通过传递消息id从IBM MQ读取消息的代码,我实现的程序将一次读取一条消息,但我的代码没有覆盖消息id public final void ReadMessage (String queueName) throws Exception { int options = MQC.MQOOINQUIRE + MQC.MQOOFAILIFQUIESCING + MQC.MQOOINPUTSHARED; System.out.printin ("start Creating the Que
public final void ReadMessage (String queueName) throws Exception {
int options = MQC.MQOOINQUIRE + MQC.MQOOFAILIFQUIESCING + MQC.MQOOINPUTSHARED;
System.out.printin ("start Creating the Queue....... )
MQQueue myQueue = this.mqManager.accessQueue(queueName, options) ;
MQMessage mgMessage = new MQMessage ( ) ;
MQGetMessageOptions gmo = new MQGetMessageOptions ( ) ;
gmo.options = MQC.MQGMO NO WAIT + MQC.MQGMO FAIL IF QUIESCING;
gmo.matchOptions = MQC.MQMO NONE;
gmo.waitlnterval = 15000;
try {
System.out.println("end of get Message from myqueue") ;
System.out.print In ("Message lenth" + mgMessage ( ) ) ;
mgMessage.characterSet = 300;
int length = mqMessage.getMessageLength( );
System. out ( of the message" + length) ;
System. out ( of the message" + mgMessage.readString(length)) ;
gmo.options = MQC.MQGMOWAIT | MQC.MQGMOBROWSENEXT;
}
catch (Exception e) {
}
}
此代码能够从队列中读取1条消息。但我需要传递消息id,并根据消息id阅读消息
这个要求可能吗?如果是这样,请与我分享一些IBM MQ客户端的示例
想知道如何在代码中传递消息id
MQQueue myQueue = this.mqManager.accessQueue(queueName, options, MessageID) ;
谢谢,您可以在执行MQGET操作时使用messageId
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.matchOptions = MQC.MQMO_MATCH_MSG_ID;
mgMessage.messageId=messageId;
下面的页面还讨论了如何基于MessageId、CorrelId或groupId获取消息
您可以在执行MQGET操作时使用messageId
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.matchOptions = MQC.MQMO_MATCH_MSG_ID;
mgMessage.messageId=messageId;
下面的页面还讨论了如何基于MessageId、CorrelId或groupId获取消息
IBM MQ请求/应答标准场景用于请求应用程序:
- 将MQPUT后的消息Id保存到服务器应用程序
- 服务器应用程序保存传入消息的消息Id。服务器
- 服务器应用程序创建回复消息,并将保存的消息Id存储在外出消息的相关Id字段中
- 请求应用程序将使用Coreration Id字段中保存的消息Id发出MQGET
IBM MQ request/reply标准场景用于请求应用程序:
- 将MQPUT后的消息Id保存到服务器应用程序
- 服务器应用程序保存传入消息的消息Id。服务器
- 服务器应用程序创建回复消息,并将保存的消息Id存储在外出消息的相关Id字段中
- 请求应用程序将使用Coreration Id字段中保存的消息Id发出MQGET
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options = CMQC.MQGMO_FAIL_IF_QUIESCING;
gmo.matchOptions = CMQC.MQMO_MATCH_CORREL_ID;
MQMessage replyMsg = new MQMessage();
replyMsg.messageId = CMQC.MQMI_NONE;
// Specifically get the message with the matching value.
replyMsg.correlationId = savedMsgId;
inQ.get(replyMsg, gmo);