No, this is not about Star Trek’s “beam me up Scottie”, but setting up MQ to MQ communications.
Of course you will want
- it to scale – you should be able to define more channels if you need more throughput than one channel can provide
- be secure – you can use TLS to protect the data on the channels
- be highly available – this is the trickier challenge which I’ll cover below.
Should I use clustering?
At first glance you may think clustering would be a good solution. Many institutions are unhappy with being in a cluster with their business partner, so it is rare to have two enterprises both in the same cluster.
This means you are usually looking a gateway between the two institutions, which means point-to-point.
There are two parts to being highly available,
- How long does it take before messages in the queue manager can flow out of the queue manager?
- How long does it take before new work can flow?
How long does it take before messages in the queue manager can flow out of the queue manager?
If your queue manager has ended, the messages are not available until the queue manager (and the channels) area available again.
If you are using z/OS and shared queue etc – other queue managers in the queue sharing group should be able to process the work.
If you are using mid-range MQ, you an use multi instance queue managers. One queue manager is active, the other is in standby, partially initialized, ready to take over once a failure has been detected.
How long does it take before new work can flow?
If you have only one queue manager, you have to wait until it restarts before work can flow. If you have more than one queue manager, you can switch message to avoid the down queue manager, by stopping channels into your gateway queue manager. With clustering within your organization the messages should then flow to another gateway queue manager.
This will much quicker than doing an emergency recreate of your queue manager!