关于使用IBM MQ 消息ID(messageId)的几点心得

关于使用IBM MQ 消息ID(messageId)的几点心得


1 消息ID是可以自定义的,就像表的主键一样。当然也可以让MQ自动生成。

 

2 两个队列管理器之间传输消息,消息的ID是不会改变的。

 

3 两个队列管理器生成的消息ID,是会重复的,这种几率比较小。

   若你有多台机器向一台机器发送消息,建议根据本地网卡唯一标识自定义

   生成消息的ID。


4 使用java获取MQ的消息ID时,消息ID存储在MQMessage类的一个对

   外公开的属性,这个属性名称为messageId,属性的类型为byte[24] 。


5 在使用MQ消息浏览器查看时, 对应的"消息标识"就是new String(messageId);

   对应的"消息标识字节"就是将每个byte 转换为它的16进制组成的字符串,用代码可表示

   为toHexString(byte[0])+toHexString(byte[1])+···+toHexString(byte[23])。

关于使用IBM MQ 消息ID(messageId)的几点心得


6 获取消息时,new 一个MQMessage对象,将消息ID字符转化为byte数组,

   放入messageId,然后通过mqQueue.get(mqMsg, gmo)就能获取到指定的消息。

   当消息ID重复时,只能按优先级或消息的次序,优先获取一条消息。

 

 

你可能感兴趣的:(MQ)