JMS2.0规范中文版

JMSMessageID

提供者发送消息时,JMSMessageID头字段的值是消息的唯一标识。

消息发送的时候,这个字段的值将被忽略。在发送方法返回以后,这个属性将会持有提供者指定的值。

JMSMessageID的值是一个字符串,在历史库作为标识消息的唯一键值。它的确切范围是由提供者定义的。对于连接了一组消息路由的具体提供者实例,这个范围至少应该满足提供者实例上的所有消息。

所有的JMSMessageID必须以“ID:”作为前缀。不要求消息ID对于不同的提供者也是唯一的。

因为消息ID会影响到消息的大小,如果提示应用中消息ID不会被使用,则一些提供者可能会优化消息开销。MessageProducer和JMSProducer都提供了setDisableMessageID方法,此方法允许用用提供一个禁用消息ID的提示。当应用设置一个生产者禁用消息ID,也就是说此应用不依赖于它生产的消息的ID值。

如果某个消息提供者接受这个提示,那么这些消息ID值必须被设置为null;如果某个提供者忽略这个提示,那么消息ID值必须被设置为正常的唯一值。