JMS message header: The TimeToLive property reference

The range of permitted values for the TimeToLive property of a JMS message that WSIF puts onto a queue.

The JMS message header property JMSTimeToLive is of type long. It sets the time to live of a message put onto a queue, in milliseconds. A value of 0 means live indefinitely.

The factors that determine the time to live of a JMS message are as follows:

  • For a one-way (input only) operation, the default time to live is 0, so the message remains on the queue indefinitely or until the server end-processes the message. If the JMSTimeToLive property is specified in the service endpoint URL or the JMS Address, then this value is used for one-way messages. The client never waits for a response to a one-way operation and so it never times out. The only time a client for a one-way operation will fail is if the queue itself is unavailable.

  • For a two-way (request and response) operation, the default time to live is determined by the client response timeout setting. The time to live for the message is never greater than the client response timeout, even if a larger value is specified in the JMSTimeToLive property of the service endpoint URL or the JMS Address, so the message will never be read from the queue after the client has timed out waiting for a response. The client response timeout setting that is used as the default time to live is the WSIF synchronous timeout. This is the case even for an asynchronous JMS message.


 

See Also


WSIFOperation - Synchronous and asynchronous timeouts reference