Handling MQRFH2 headers with the IBM MQ service provider

The IBM® MQ service provider provides a RESTful interface to existing applications that use IBM MQ. These applications can interact with IBM MQ, by using either the IBM MQ classes for JMS or the Message Queue Interface (MQI)

By default the IBM MQ classes for JMS send messages that include an MQRFH2 header. However, most MQI applications do not use MQRFH2 headers.

If an application that uses IBM MQ classes for JMS interacts with an MQI application that is not designed to work with MQRFH2 headers, configuration is required to prevent the application sending messages that contain an MQRFH2 header. For more information, see Mapping JMS messages onto IBM MQ messages.

If the IBM MQ service provider sends messages to queues, to be consumed by MQI applications that do not expect an MQRFH2 header, you must configure IBM z/OS® Connect to prevent the sending of an MQRFH2 header.

This configuration consists of adding a targetClient="MQ" attribute to the relevant IBM MQ Messaging Provider queue in server.xml. An example of this configuration is shown in Figure 1.
Figure 1. Sample configuration to prevent the sending of MQRFH2 headers.
<jmsQueue jndiName="jms/mqiQueue">
  <properties.wmqJms 
    baseQueueName = "MQIQueue"
    targetClient = "MQ"/>
</jmsQueue>