Package com.ibm.ima.jms

Implements the provider specific public classes for the IBM MessageSight JMS client.

Most of the interfaces used in JMS are defined by the common JMS interfaces. However, the JMS specification does not include the classes and interfaces needed to configure the JMS client.

See The JMS API documentation for information about the JMS classes and methods.

Message properties extensions

IBM MesasgeSight defines a small set of provider specific properties on messages. These are not real message properties but the properties interfaces are used to set and retrieve information about the message.

When sending a message, the application can specify that a copy of a message should be retained so that it can be sent to future subscribers of the topic. This is done in the IBM MessageSight JMS client by setting the message property JMS_IBM_Retain to the value 1. This property is of type integer. Any value other than 1 means that the message is not retained. Retain has no meaning when doing point-to-point messaging (queues) and is ignored when a message is sent to a queue.

If a message is received from a retained source, the message property JMS_IBM_Retain is set to the value 1, and is set to 0 otherwise. The returned value of JMS_IBM_Retain will always be an integer with the value of either 0 or 1. Before a message is sent, the value returned by JMS_IBM_Retain indicates the requested setting. When a message is received from a queue, the value will always be 0.

To set retained on a message do:

     msg.setIntProperty("JMS_IBM_Retain", 1);
 
To see if the message came from a retained source do:
     retained = msg.getIntProperty("JMS_IBM_Retain");
 

When a message is received, IBM MessageSight creates an acknowledge sequence number which indicates the sequence within the session. This can be used for debugging and is available to the application as the message property IBM_JMS_ACK_SQN. This property cannot be set, and is only available after a message is received. The type of the IBM_JMS_ACK_SQN property is long.

     acksqn = msg.getLongProperty("JMS_IBM_ACK_SQN");