Examining messages before publication

Because agents can connect to IBM® WebSphere MQ Version 6.0 queue managers, agents do not use the direct publication approach introduced in IBM WebSphere MQ Version 7.0. Instead, agents send ordinary messages to the coordination queue manager that contain an MQRFH header. The MQRFH header requests that the message's payload is published. These messages are sent to the SYSTEM.FTE queue on the coordination queue manager, and the messages are typically published immediately from that queue. If error conditions stop this publication, we can examine the messages on the queue before publication is attempted to help with diagnosis. We can do this by completing these following steps:

  1. Disable the publish/subscribe engine in the coordination queue manager.

    We can either complete this step using the IBM MQ Explorer or using MQSC commands. Be aware that this temporarily stops all publish/subscribe activity on the queue manager, including activity unrelated to Managed File Transfer if your coordination queue manager is also used for other purposes.

      IBM MQ Explorer:
      1. In the Navigator view, right-click the coordination queue manager and select Properties.
      2. From the Properties pane, select Publish/Subscribe.
      3. Select Compatibility from the Publish/Subscribe mode list.

      MQSC:
      ALTER QMGR PSMODE(COMPAT)  

  2. Send another message.

    Perform the Managed File Transfer action that has publication problems. For example, for agent registration, a message is sent whenever the agent is started (we do not need to repeatedly delete and create the agent to generate registration messages). Because the publish/subscribe engine is disabled, no publication takes place.

  3. Browse the SYSTEM.FTE queue on the coordination queue manager.

    You should use the IBM MQ Explorer to browse your coordination queue manager's SYSTEM.FTE queue.

      IBM MQ Explorer:
      1. In the Navigator view, expand the coordination queue manager and click Queues. In the Content view, right-click the SYSTEM.FTE queue and select Browse Messages. The Message browser window opens and shows the messages that would have been published.
      2. The User identifier column shows the user ID contained in the message descriptor. A common reason for publication failure is that this user ID does not have publish authorization on the SYSTEM.FTE topic.
      3. We can find out more information about each message (including the XML that will be published) by right-clicking the message and selecting Properties.

    There is no MQSC command to inspect the contents of messages. If you are do not have the IBM MQ Explorer, you must use a different program that can browse queues and display all aspects of the messages found. We can use the amqsbcg sample program, if installed, as described in the following topic: Browsing queues. The UserIdentifier line shows the user ID. Alternatively, we can use dmpmqmsg; the user ID for a message is found in lines like:

    A RTM MQ24
    A USR JOHNDOE
    A ACC 1A0FD4D8F2F4C3C8C9D5F1F9C6F7C1C3F3F00019F7AC30000000000000000000
    The second line in the example is the message descriptor user ID for that message.
  4. Re-enable the coordination queue manager publish/subscribe engine.

    We can either complete this step using the IBM MQ Explorer or using MQSC commands. After we have re-enabled the publish/subscribe engine in the coordination queue manager, any messages on the SYSTEM.FTE queue are processed immediately.

      IBM MQ Explorer:
      1. In the Navigator view, right-click the coordination queue manager and select Properties.
      2. From the Properties pane, select Publish/Subscribe.
      3. Select Enabled from the Publish/Subscribe mode list.

      MQSC:
      ALTER QMGR PSMODE(ENABLED)