Chapter 24. Scheduled Messages

Scheduled messages differ from normal messages in that they will not be delivered until a specified time in the future.
To do this, a special property is set on the message before sending it.

24.1. Scheduled Delivery Property

The property name used to identify a scheduled message is "_HQ_SCHED_DELIVERY" (or the constant Message.HDR_SCHEDULED_DELIVERY_TIME).
The specified value must be a positive long corresponding to the time the message must be delivered (in milliseconds). An example of sending a scheduled message using the JMS API is as follows.
  TextMessage message = 
   session.createTextMessage("This is a scheduled message which will be delivered
     in 5 sec.");
  message.setLongProperty("_HQ_SCHED_DELIVERY", System.currentTimeMillis() + 5000);
  producer.send(message);

  ...
         
  // message will not be received immediately but 5 seconds later
  TextMessage messageReceived = (TextMessage) consumer.receive();
Scheduled messages can also be sent using the core API, by setting the same property on the core message before sending.