We are looking to use MQ clustering in order to better distribute workloads across two different sites. One of our requirements is to keep traffic geographically local in order to avoid messages routing between sites unecessarily (unless no local MQ managers are available). To achieve this, we are currently looking to use Queue Aliases as shown on Page 26 (Smarter Routing section) of this presentation.
To test, we have setup a mini cluster using three MQ Managers (MQ version 9) with queues just as in the presentation slide and, when all managers and queues are available, we can see that messages route within the same region as expected but, if we for example apply a put inhibit on NEWYORK's NYQ Alias Queue, we don't see any new messages route to LONDON's alternative NYQ Alias Queue. Instead, the Client application which tries to write messages to AppQ Alias Queue gets a MQException: JMSCMQ0001: IBM MQ call failed with compcode '2' ('MQCC_FAILED') reason '2268' ('MQRC_CLUSTER_PUT_INHIBITED').
. Also, if we endmqm NEWYORK altogether, the client app is able to write messages to AppQ Alias Queue but, the messages just queue up in the AppQ Manager's SYSTEM.CLUSTER.TRANSMIT.QUEUE instead of routing to LONDON MQ Manager's alternative NYQ Alias Queue. Why could this be?