EMS Extensions to Jakarta Messaging Messages
The Jakarta Messaging specification details a standard format for the header and body of a message. Properties are provider-specific and can include information on specific implementations or enhancements to Jakarta Messaging functionality. See EMS Message Properties for the list of message properties that are specific to EMS.
In addition to the EMS message properties, EMS provides a select number of extensions to Jakarta Messaging. These are:
- The Jakarta Messaging standard specifies two delivery modes for messages, PERSISTENT and
NON_PERSISTENT. EMS also includes aRELIABLE_DELIVERYmode that eliminates some of the overhead associated with the other delivery modes. SeeRELIABLE_DELIVERY. - For consumer sessions, you can specify a
NO_ACKNOWLEDGEmode so that consumers do not need to acknowledge receipt of messages, if desired. EMS also provides anEXPLICIT_CLIENT_ACKNOWLEDGEandEXPLICIT_CLIENT_DUPS_OK_ACKNOWLEDGEmode that restricts the acknowledgment to single messages. See Message Acknowledgement. - EMS extends the
MapMessageandStreamMessagebody types.TIBCO Enterprise Message Service adds these two extensions to the
MapMessageandStreamMessagebody types:- You can insert another
MapMessageorStreamMessageinstance as a submessage into aMapMessageorStreamMessage, generating a series of nested messages, instead of a flat message. - You can use arrays as well as primitive types for the values.
These extensions add considerable flexibility to the
MapMessageandStreamMessagebody types. However, they are extensions and therefore not compliant with Jakarta Messaging specifications. Extended messages are tagged as extensions with the vendor property tagJMS_TIBCO_MSG_EXT.
- You can insert another