Name

JMSTimestamp — Purpose: Identification

Synopsis

The JMSTimestamp is set automatically by the message producer when the send operation is invoked. The value of the JMSTimestamp is the approximate time that the send operation was invoked. Sometimes messages are not transmitted to the message server immediately. A message can be delayed for many reasons, depending on the JMS provider and configuration of the message producer: whether it’s a transacted session, the acknowledgement mode, etc. When the send( ) operation returns, the message object will have its timestamp:

Message message = topicSession.createMessage(  );
topicPublisher.publish(message);
long time = message.getJMSTimestamp(  );

The timestamp is set automatically, thus any value set explicitly by the JMS client will be ignored and discarded when the send( ) operation is invoked. The value of the timestamp is the amount of time, measured in milliseconds, that has elapsed since midnight, January 1, 1970, UTC (see UTC later in this chapter for more information).

Timestamps can be used by message consumers as indicators of the approximate time that the message was delivered by the message producer. The timestamp can be useful when ordering messages or for historical repositories.

The JMSTimestamp is set during the send operation and may be calculated locally by the producer (TopicPublisher or QueueSender) on the client or it may be obtained from the message server. In the first case, when the producer calculates the timestamp, ...

Get Java Message Service now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.