A parser is a program that interprets the bit stream of an incoming message, and creates an internal representation of the message in a tree structure. The parser also regenerates a bit stream for an outgoing message from the internal message tree representation.
A parser is invoked when the bit stream that represents an input message is converted to the internal form that can be handled by the broker. The internal form, a logical tree structure, is described in Logical tree structure. The way in which the parser interprets the bit stream is unique to that parser, therefore the logical message tree that is created from the bit stream varies from parser to parser.
A parser might also create a bit stream from a tree structure if a node in the message flow invokes the ESQL ASBITSTREAM function.
The broker requires access to a parser for every message domain to which your input messages and output messages belong. In addition, the broker requires a parser for every identifiable message header that is included in the input or output message. Parsers are invoked when required by the message flow.
WebSphere Message Broker provides built-in support for messages in the following message domains by providing the message body parsers that are listed below:
WebSphere Message Broker also provides parsers for the following message headers, which your applications can include in input or output messages:
For a list of elements that are native to the MQCFH header, see The MQCFH parser.
For further information about this header and its contents, see the Programmable Command Formats and Administration Interface section of the WebSphere MQ Version 6 information center online.
For a list of elements that are native to the MQCIH header, see The MQCIH parser.
For a list of elements that are native to the MQDLH header, see The MQDLH parser.
For a list of elements that are native to the MQIIH header, see The MQIIH parser.
For a list of elements native to the MQMD header, see The MQMD parser.
For a list of elements native to the MQMDE header, see The MQMDE parser.
For a list of elements that are native to the MQRFH header, see The MQRFH parser.
For a list of elements that are native to the MQRFH2 header, see The MQRFH2 parser.
For a list of elements that are native to the MQRMH header, see The MQRMH parser.
For a list of elements that are native to the MQSAPH header, see The MQSAPH parser.
For a list of elements that are native to the MQWIH header, see The MQWIH parser.
For a list of elements that are native to the SMQ_BMH header, see The SMQ_BMH parser.
To process and parse message body data or headers that the supplied parsers do not handle, create user-defined parsers using the WebSphere Message Broker user-defined parser programming interface.
No parser is provided for messages or parts of messages in the format MQFMT_IMS_VAR_STRING. Data in this format is often preceded by an MQIIH header (format MQFMT_IMS). WebSphere Message Broker treats such data as a BLOB message. If you change the CodedCharSetId or the encoding of such a message in a message flow, the MQFMT_IMS_VAR_STRING data is not converted, and the message descriptor or preceding header does not correctly describe that part of the message. If you need the data in these messages to be converted, define the message in the MRM, or provide a user-defined parser.