MQPUT, MQPUT1 and clusters

If MQOO_BIND_NOT_FIXED is specified on an MQOPEN the workload management routines chooses which destination MQPUT or MQPUT1 select.

If MQOO_BIND_NOT_FIXED is specified on an MQOPEN call, each subsequent MQPUT call invokes the workload management routine to determine which queue manager to send the message to. The destination and route to be taken are selected on a message-by-message basis. The destination and route might change after the message has been put if conditions in the network change. The MQPUT1 call always operates as though MQOO_BIND_NOT_FIXED were in effect, that is, it always invokes the workload management routine.

When the workload management routine has selected a queue manager, the local queue manager completes the put operation. The message can be placed on different queues:
  1. If the destination is the local instance of the queue, the message is placed on the local queue.
  2. If the destination is a queue manager in a cluster, the message is placed on a cluster transmission queue.
  3. If the destination is a queue manager outside a cluster, the message is placed on a transmission queue with the same name as the target queue manager.

If MQOO_BIND_ON_OPEN is specified on the MQOPEN call, MQPUT calls do not invoke the workload management routine because the destination and route have already been selected.

Parent topic: Work with the MQI and clusters