从MQ返回队列中获取消息,MQMessage为什么要带上messageId、correlationId两属性
代码如下:
方式一:
MQMessage m = new MQMessage();
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options = 3;
gmo.waitInterval = this.timeout;
if (messageId != null) {
gmo.matchOptions |= 1;
m.messageId = messageId;
}
if (correlationId != null) {
gmo.matchOptions |= 2;
m.correlationId = correlationId;
}
this.queue.get(m, gmo);
方式二:
MQMessage m = new MQMessage();
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options = 3;
gmo.waitInterval = this.timeout;
this.queue.get(m, gmo);
这两种方式有什么区别,是不是同一个队列会有多处代码往其中设值进去,所以需要用自己对应的id来获取数据?刚接触MQ接口,希望得到大使指导。
MessageID唯一地标识了一条消息。
CorrelationID提供了一个消息头,用于将当前的消息和先前的某些消息或应用程序特定的ID关联起来。
http://www-01.ibm.com/support/docview.wss?uid=swg27021177&aid=1