This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, visit https://wso2.com/documentation/.

JMS Message Types and Header Fields

Explained below are the message types and message headers that are supported by the EI Message Broker runtime. Find more information on how to use message selectors from here.

Note that message selectors are not supported in a clustered setup of the broker.

JMS Message Types supported by the broker

The EI Message Broker profile supports all five types of JMS messages named TextMessage, BytesMessage, MapMessage, ObjectMessage and StreamMessage. A JMS client can send or receive any type of message from the above five and the content of the messages can be viewed using the Queue Browser window. However, viewing the message body of an 'ObjectMessage' using the queue browser is not supported.

JMS Message Headers supported by the broker

A JMS client can create a message and set various fields of the message header before it is sent to a queue the broker. However, as supported by the JMS specification, there are several message header fields which cannot be explicitly set by a JMS client. Hence even though client sets these fields, those will be replaced at the JMS provider level once it is received by the broker.

The following table displays a list of JMS message headers and in which level they can be configured.

JMS Message HeaderCan be Set by Whom
JMSDestinationJMS providers can set this field when a message is sent. However, this header should also be set at the broker level, because the client level header will be ignored by the broker.
JMSDeliveryModeAs the EI Message Broker uses persistent storage in Standalone mode, the DeliveryMode will be set to '1' by default. It is not possible to change this at client level.
JMSExpirationThis header is not supported in the broker. The value passed by the producer/publisher will be delivered to the client without changing the value.
JMSPriorityThis header is not supported in the broker. Even if the JMS provider sets a priority, the broker will ignore this header and messages will be delivered in the order that they were sent to the broker.
JMSMessageIDJMS providers can set this field when a message is sent. However, this header should also be set at broker level in the broker, because the client level header will be ignored by the broker.
JMSTimestampThe value passed by the producer/publisher will be delivered to the client without changing the value.
JMSCorrelationIDBy using a JMS Client
JMSReplyToBy using a JMS Client
JMSTypeBy using a JMS Client
JMSRedeliveredFrom the JMS provider only