Parsers

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. It 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, so 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 might belong. In addition, it requires a parser for every identifiable message header that might be included in the input or output message. Parsers are invoked as and 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 listed below:

It also provides parsers for the following message headers that your applications can include in input messages:

MQCFH

For a list of elements native to this header, see The MQCFH parser

For further information about this header and its contents, see the WebSphere MQ Programmable Command Formats and Administration Interface book.

MQCIH

For a list of elements native to this header, see The MQCIH parser

MQDLH

For a list of elements native to this header, see The MQDLH parser

MQIIH

For a list of elements native to this header, see The MQIIH parser

MQMD

For a list of elements native to this header, see The MQMD parser

MQMDE

For a list of elements native to this header, see The MQMDE parser

MQRFH

For a list of elements native to this header, see The MQRFH parser

MQRFH2

For a list of elements native to this header, see The MQRFH2 parser

MQRFH2C
The compact version of the MQRFH2 parser.
MQRMH

For a list of elements native to this header, see The MQRMH parser

MQSAPH

For a list of elements native to this header, see The MQSAPH parser

MQWIH

For a list of elements native to this header, see The MQWIH parser

SMQ_BMH

For a list of elements native to this header, see The SMQ_BMH parser

If you need 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.

Warning:

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. 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.

Related concepts
Logical tree structure
Partial parsing
User-defined parsers
Related tasks
Developing message flows
Developing user-defined extensions
Related reference
Built-in nodes
C language user-defined parser API