When the JMSOutput node receives a JMS message, it calls the JMSTransport parser to return an XML bit stream containing the JMSTransport section of the message, so that it can be examined and processed.
The node extracts the Message_MetaData and obtains the payload type information to identify which JMS message type to create for output. If the Message_MetaData folder is not present, the output node creates a BytesMessage by default.
The JMSOutput node extracts the JMS header data from the XML string, and uses this data to populate the values for the JMS header fields in the message.
The JMSOutput node extracts the property values from the XML string. The XML elements contain type information that identifies which Java™ Object type to create for each property value.
The message payload is obtained from the JMS message as a bit stream. For TextMessage and BytesMessage payloads, the bit stream can be passed to the JMS API directly to create the appropriate payload.
For MapMessage and StreamMessage payloads, the individual elements must be extracted from the XML bit stream. The output node calls the appropriate JMS API method to create the map or stream fields in the message.
For an ObjectMessage payload, the JMSOutput node reserializes the bit stream payload by using the object class. The object class must be available in the Java class path for the broker. The class path is defined in the mqsiprofile batch file, which is in the directory that contains the executable files for the broker; for example, on Windows, the file is mqsiprofile.cmd in the install_dir/bin directory.
See Using the Message Destination Mode for more information about how you perform these tasks.
The message is published to the JMS destination that has been specified as a property of the JMSOutput node. However, if the JMSReplyTo header field is set in the JMS message, the JMSOutput node treats the message as a reply to a previous request, and publishes the message to the JMS destination of the previous request.