A common scenario exists where there are instances of a cluster queue on multiple instances of queue managers. One or more messages on one of them that cannot be processed by the local application (GApp) so the goal is to move them to another queue manager where GApp is running.
The first step is to put disable the cluster queue on the first queue manager. This could be done using the action Inhibit Put. Note that is an extended action that can be granted through the Change Queue Extended security right without allowing the user to alter other queue attributes.
Now that the queue is disabled, the next step is to browse the queues and select the messages.
Click on the Reroute option to step through the process.
There are 5 dialog pages, but only 1 requires you to change any of the settings.
1) On the first page, press Next. The other options here are for other use cases.
2) On the next screen, select New destination and press Next. This indicates that we want to move the messages as is and not obtain destination information from a Dead Letter Header or Transmission Queue Header.
3) On the next page, press Next. You could choose another destination queue, but our goal in this case is to route it using the original queue. You might ask at this point, "Isn't the original queue put disabled and the put will fail?". Since another queue in the cluster is enabled for put, MQ will accept the messages and they will be routed to one of the other cluster members.
4) You can press Next on the next page as well since the options are typical selections. You can optionally select to leave all headers if you are unsure but when dealing with application messages, there atypically are no DLHs or XQHs. MQMD and other application header information is always copied during this process.
5) On the last page, review the options shown and press Finish.
The process will initiate and depending on the number of messages to put may take a few seconds.
The messages have all been moved and will be processed just like the originals.