Serialization of input between separate integration servers running on the same integration node on z/OS
This example demonstrates that only one MQInput node at a time is allowed to take messages from a shared queue when the same serialization token is used by message flows running in separate integration servers on the same integration node.
An identical message flow MyFlowA
is deployed
to two integration servers called MYIntServerA
and MYIntServerB
on
integration node integrationNodeName
.
In this case, the queue manager does not need to participate in
a queue sharing group. The input queue INQueue
is
defined as local
with disposition QMGR
.
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.

- Integration node
integrationNodeName
starts and the first message flow to begin isMyFlowA
in integration serverMyIntServerA
. The MQInput nodeMyInputNode
connects to queue managerMQ01
using the serialization tokenMyToken123ABC
. The MQInput node successfully opens shared queueINQueue
and gets input messages. - The second integration server
MyIntServerB
starts and message flowMyFlowA
in integration serverMyIntServerB
begins. The MQInput nodeMyInputNode
now attempts to connect to queue managerMQ01
using serialization tokenMyToken123ABC
. The following SDSF console message is logged:BIP2656I integrationNodeName MyIntServerB 11 UNABLE TO OPEN QUEUE 'INQueue' ON IBM INTEGRATION BUS QUEUE MANAGER 'MQ01': BECAUSE SERIALIZATION TOKEN MyToken123ABC is already in use. NO USER ACTION REQUIRED
Message flow
MyFlowA
in integration serverMyIntServerB
is unable to process input because the serialization token it has passed is already in use within the queue manager (by the MQInput node in message flowMyFlowA
in integration serverMyIntServerA
). This is indicated by the reason code2271 (MQRC_CONN_TAG_IN_USE)
in message bip2623. - The first integration server is deleted or canceled.
If the first integration server is canceled by the operator, ends with an abend, or is deleted during a redeployment of the integration node configuration, the input node in the second integration server is now able to get input messages from queue
INQueue
.A sequence of SDSF console messages is logged, of which the following one is relevant:BIP2091I integrationNodeName MyIntServerB 11 THE INTEGRATION NODE HAS RECONNECTED TO IBM INTEGRATION BUS SUCCESSFULLY : ImbCommonInputNode(785)
Message flow MyFlowA
in integration server MyIntServerB
is
now able to recover processing of messages from the shared queue INQueue.QSG
.
Note that, although serialization of input can be achieved in
a similar manner by configuring the input queue for exclusive input,
this does not ensure message integrity during a recovery situation.
This can be achieved only through the use of the serialization token
as described in this example.