IBM BPM, V8.0.1, All platforms > Get started with IBM BPM > Key concepts > Bindings > Binding types > WebSphere MQ JMS bindings
JMS headers
A JMS message contains two types of headers–the JMS system header and multiple JMS properties. Both types of headers can be accessed either in a mediation module in the Service Message Object (SMO) or by using the ContextService API.
JMS system header
The JMS system header is represented in the SMO by the JMSHeader element, which contains all the fields typically found in a JMS header. Although these can be modified in the mediation (or ContextService), some JMS system header fields set in the SMO will not be propagated in the outbound JMS message as they are overridden by system or static values.
The key fields in the JMS system header that can be updated in a mediation (or ContextService) are:
- JMSType and JMSCorrelationID – values of the specific predefined message header properties
- JMSDeliveryMode – values for delivery mode (persistent or nonpersistent; default is persistent)
- JMSPriority – priority value (0 to 9; default is JMS_Default_Priority)
JMS properties
JMS properties are represented in the SMO as entries in the Properties list. The properties can be added, updated, or deleted in a mediation or by using the ContextService API.
Properties can also be set statically in the JMS binding. Properties that are set statically override settings (with the same name) that are set dynamically.
User properties propagated from other bindings (for example, an HTTP binding) will be output in the JMS binding as JMS properties.
Header propagation settings
The propagation of the JMS system header and properties either from the inbound JMS message to downstream components or from upstream components to the outbound JMS message can be controlled by the Propagate Protocol Header flag on the binding.
When Propagate Protocol Header is set, header information is allowed to flow to the message or to the target component, as described in the following list:
- JMS export request
The JMS header received in the message will be propagated to target components by way of the context service. JMS properties received in the message will be propagated to target components by way of the context service.
- JMS export response
Any JMS header fields set in the context service will be used in the outbound message, if not overridden by static properties set on the JMS export binding. Any properties set in the context service will be used in the outbound message if not overridden by static properties set on the JMS export binding.
- JMS import request
Any JMS header fields set in the context service will be used in the outbound message, if not overridden by static properties set on the JMS import binding. Any properties set in the context service will be used in the outbound message if not overridden by static properties set on the JMS import binding.
- JMS import response
The JMS header received in the message will be propagated to target components by way of the context service. JMS properties received in the message will be propagated to target components by way of the context service.
Related concepts:
Generic JMS headers
WebSphere MQ headers