JMS message transformation

The JMSInput and JMSOutput nodes expect JMS messages, and therefore expect a native JMS message tree representation.

You can use the following nodes to transform messages between a WebSphere® MQ JMS message tree and a JMS message tree:
  • 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:

Diagram showing transform between a native JMS message tree and a WebSphere MQ JMS message tree

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 folder:
    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

Diagram showing the message flow from the JMSInput node to the MQOutput node through the JMSMQTransform node
  1. A JMSInput node is configured to subscribe to topic ABC.
  2. An application that is connected to the JMS server publishes on topic ABC.
  3. A publication is received at the JMSInput node.
  4. The node extracts data from the JMS message.
  5. The JMS message is passed to the JMSMQTransform node where the message is converted to a WebSphere MQ message.
  6. 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

Diagram showing the message flow from the MQInput node to the JMSOutput node through the MQJMSTransform node
  1. An MQInput node receives a message from a IBM MQ queue.
  2. The MQInput node creates a WebSphere MQ message.
  3. The MQ message is passed to the MQJMSTransform node where the message tree is converted to a JMS format.
  4. The JMSOutput node receives the JMS message and publishes the JMS message on topic XYZ.

Additional examples

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.