What to do if the destination queue is a clustered queue, or an alias to a clustered queue

When using Managed File Transfer to transfer a file into a queue, if we use a destination that is a clustered queue, or an alias to a clustered queue, you get reason code 2085, or 2082. From Version 7.5.0, Fix Pack 4 onwards, this issue is resolved if you set the property enableClusterQueueInputOutput to true.


Why this problem occurs

The queue manager name of the destination agent is being appended to the queue name of the -dq parameter, when there is no explicit queue manager name on the -dq. The reason code 2085, or 2082, occurs because the queueManager object cannot be specified on an MQOPEN call when connecting to a clustered MQ queueManager that does not have that local clustered queue.


Avoiding this problem

  1. Create a clustered queue on the queue manager.
  2. Set up a remote queue definition that points to a clustered queue.


Example

This example uses a remote queue definition.

Configuration:

  • Source Agent: SAGENT
  • Source Agent Queue Manager: SQM
  • Destination Agent: DAGENT
  • Destination Agent Queue Manager: DQM
  • The destination queue of the transfer is CQ6 on queue manager SQM
To define remote queue definition Q6_SQM on DQM to clustered queue CQ6 in SQM (assuming that the clustered queue CQ6 is already defined in SQM), issue the MQSC command on the DQM queue manager:
define qremote(Q6_SQM) rname(CQ6) rqmname(SQM) xmitq(SQM) 
Note: rname points to the clustered queue. We can now transfer to the queue. For example:
 fteCreateTransfer -sa SAGENT -sm SQM -da DAGENT -dm DQM -dq Q6_SQM  /tmp/single_record.txt