This example demonstrates that only one input node at a time takes messages from a shared queue when the same serialization token is used by message flows running on separate integration nodes.
Two integration nodes (MQ01NODE and MQ02NODE) are configured in this example. The respective queue managers are called MQ01 and MQ02. The queue managers participate in the same queue sharing group. Each queue manager has a shared queue INQueue.QSG that has been defined with a disposition of QSG, and a local queue called INQueue. The queue managers can be running in the same Logical Partition (LPAR) or separate LPARs. The Coupling Facility shown in the diagram is a zSeries component that allows z/OS® WebSphere® MQ queue managers in the same system image, or different system images, to share queues.
An identical message flow MyFlowA is deployed to an integration server called MYIntServerA on each integration node. Note that the message flows do not have to be identical; the significant point is that an identical serialization token is used in both flows.
The simple message flow in this example consists of an MQInput node connected to an MQOutput node. The MQInput node in both message flows gets messages from the shared queue INQueue.QSG; the node attribute Serialization Token is configured as MyToken123ABC in both MQInput nodes.
The message flow property additional Instances takes the default value of zero in both message flows, which ensures that input is serialized within the flow.
BIP2656I MQ02NODE MyGroupA 17 UNABLE TO OPEN QUEUE
'INQueue.QSG' ON IBM INTEGRATION BUS QUEUE
MANAGER 'MQ02': COMPLETION CODE 2; REASON CODE 2271.
:ImbCommonInputNode(759) BECAUSE SERIALIZATION TOKEN
MyToken123ABC is already in use. NO USER ACTION REQUIRED.
Note that this message is output every 30 minutes.
Message flow MyFlowA in integration server MYIntServerA running on integration node MQ02NODE is unable to process input because the serialization token it has passed is already in use within the queue sharing group. This is indicated by the reason code 2271 (MQRC_CONN_TAG_IN_USE) in message bip2623.
BIP2091I MQ02NODE MYIntServerA 17 THE INTEGRATION NODE HAS
RECONNECTED TO IBM INTEGRATION BUS
SUCCESSFULLY : ImbCommonInputNode(785)
BIP9142I MQ01NODE 0 THE COMPONENT HAS STOPPED. :
ImbControlService(594)
The preceding sequence of events also occurs should integration node MQ01NODE fail, rather than stop through a request from the operator, or if a new integration node configuration is deployed to MQ01NODE that deletes or modifies message flow MyFlowA.
This arrangement can also be used where the requirement is to migrate message processing between integration nodes running in different z/OS system images that are attached to the same Coupling Facility.