Name
JMSMessageID — Purpose: Routing
Synopsis
The
JMSMessageID
is a
String value that uniquely identifies a
message. How unique the
identifier is depends on the vendor. It may only be unique for that
installation of the message server, or it may be universally unique.
The JMSMessageID can be useful for historical
repositories in applications where messages need to be uniquely
indexed. The JMSMessageID is also useful for
correlating messages, which is done using the
JMSCorrelationID header.
The message provider generates the JMSMessageID
automatically when the message is received from a JMS client. The
JMSMessageID must start with
ID:, but the rest of
JMSMessageID can be any collection of characters
that uniquely identifies the message to the JMS provider. Here is an
example of a JMSMessageID generated by
Progress’ SonicMQ:
// JMSMessageID generated by SonicMQ ID:6c867f96:20001:DF59525514
If a unique message ID is not needed by the JMS application, the JMS
client can provide a hint to the message server that an ID is not
necessary by using the setDisableMessageID(
)
method (as shown in the following code).
Vendors that heed this hint can reduce message processing time by not
generating unique IDs for each message. If a
JMSMessageID is not generated, the
getJMSMessageID(
)
method returns null:
// Publish-and-subscribe
TopicPublisher topicPublisher = topicSession.createPublisher(topic);
topicPublisher.setDisableMessageID(true); // Point-to-point QueueSender queueSender = queueSession.createSender(topic); ...