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_DELIVERY
mode that eliminates some of the overhead associated with the other delivery modes. SeeRELIABLE_DELIVERY
. - For consumer sessions, you can specify a
NO_ACKNOWLEDGE
mode so that consumers do not need to acknowledge receipt of messages, if desired. EMS also provides anEXPLICIT_CLIENT_ACKNOWLEDGE
andEXPLICIT_CLIENT_DUPS_OK_ACKNOWLEDGE
mode that restricts the acknowledgment to single messages. See Message Acknowledgement. - EMS extends the
MapMessage
andStreamMessage
body types. These extensions allow EMS to exchange messages with TIBCO Rendezvous, which contains certain features not available within the Jakarta MessagingMapMessage
andStreamMessage
.TIBCO Enterprise Message Service adds these two extensions to the
MapMessage
andStreamMessage
body types:- You can insert another
MapMessage
orStreamMessage
instance as a submessage into aMapMessage
orStreamMessage
, 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
MapMessage
andStreamMessage
body 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
.For more information on compatibility with Rendezvous messages, see Message Body.
- You can insert another