JMS message transformation
The JMSInput and JMSOutput nodes expect JMS messages, and therefore expect a native JMS message tree representation.
- JMSMQTransform node
- MQJMSTransform node
These nodes do not have any configurable properties. The JMSMQTransform node transforms a native JMS message tree to a IBM® MQ JMS message tree, and the MQJMSTransform node performs the transformation in the opposite direction.
The following diagram provides an overview of the mapping scheme that is used:
This mapping diagram uses the same scheme as the IBM MQ JMS provider to convert between a JMS message and an MQMD or MQRFH2 message.
When transforming between a IBM MQ message tree and a native JMS message tree, the transformation nodes copy elements from different parts of a message tree:
- The following fields are copied from the JMS message to the MQMD,
if they exist in the incoming JMS message:
JMS field MQMD field JMSMessageID MsgId JMSCorrelationID CorrelId JMSPriority Priority JMSDeliveryMode Persistence JMSQApplid PutApplName JMSUser UserIdentifier JMSXDeliveryCount BackoutCount - 1 JMSTimeStamp PutDate, PutTime
- The following fields are copied from the JMS message to the MQRFH2
JMS field MQRFH2 JMS field JMSDestination Dst JMSDeliveryMode Dlv JMSExpiration Exp JMSPriority Pri JMSTimestamp Tms JMSCorrelationID Cid JMSReplyTo Rto
- The following fields are copied from the MQMD to the JMS message:
MQMD field JMS field Expiry JMSExpiration Persistence JMSDeliveryMode Priority JMSPriority MsgId JMSMessageID CorrelId JMSCorrelationID BackoutCount = 0 JMSRedelivered = false BackoutCount > 0 JMSRedelivered = true GroupId JMSGroupid MsgSeqNumber JMSGroupseq UserIdentifier JMSUser PutApplName JMSApplid PutDate, PutTime JMSTimeStamp
- The following fields are copied from the MQRFH2 JMS folder to
the JMS message:
MQRFH2 JMS field JMS field Dst JMSDestination Dlv JMSDeliveryMode Pri JMSPriority Cid JMSCorrelationID Rto JMSReplyTo
Example message flow scenario: JMSInput node to MQOutput node
- A JMSInput node is configured to subscribe to topic ABC.
- An application that is connected to the JMS server publishes on topic ABC.
- A publication is received at the JMSInput node.
- The node extracts data from the JMS message.
- The JMS message is passed to the JMSMQTransform node where the message is converted to a WebSphere MQ message.
- The MQOutput node receives the WebSphere MQ message, and publishes the message on a IBM MQ queue.
The final destination is a IBM MQ queue, therefore the message must pass through a JMSMQTransform node to convert the message tree to a IBM MQ JMS format before it reaches the MQOutput node.
Example message flow scenario: MQInput node to JMSOutput node
- An MQInput node receives a message from a IBM MQ queue.
- The MQInput node creates a WebSphere MQ message.
- The MQ message is passed to the MQJMSTransform node where the message tree is converted to a JMS format.
- The JMSOutput node receives the JMS message and publishes the JMS message on topic XYZ.
These examples show some of the solutions that you can achieve when you use the JMS Transport. Other solutions are possible; for example, the message can be passed to a Compute node or a JavaCompute node and the contents can be modified as required.