I'd like my Integration Bus flow instance to be able to switch the reading from/writing to multiple queue managers, which are all active at the same time, all having the same queue definitions. Much like having a multi-instance QM, but the QMs in this case would not be related, and I would like to read for instance in sequence from the QMs.
A clean solution would be to use a single JMSInput node per flow, so I'm wandering if that is possible by using CCD tables.
The usual advice for anything that listens on a well-known queue (for example, something servicing the requests in a Request/Reply scenario as is usually the case for Broker flows) is that it does not fail over from queue to queue. There are many reasons for this but the main ones are that this precludes transactional
GETand that it is possible to end up with un-served queues where messages build up and are not processed.Although it is possible to have a server app do a round-robin as you are describing, the
CONNECT/DISCONNECToperations are much more expensive than are theGET/PUToperations. The result is that a flow that serviced many queues in rotation would perform orders of magnitude more slowly than an Execution Group with multiple flow instances where each is pointed at a different queue instance.If there is any need to secure those broker connections, the channel will probably use TLS and mutual authentication. That compounds the
CONNECT/DISCONNECTdelay to as much as a second or more per connection attempt. Since the TLS handshake only occurs on the connection and not per-message, this is of little consequence in the normal model of 'one queue per flow'. However, in a round-robin connection scheme you'd be lucky to get 1 message per-second per-queue. This is, of course, true of any TLS connection and not specific to WMQ.