MQOPEN option for cluster queue

The binding used for the queue handle is taken from the DefBind queue attribute, which can take the value MQBND_BIND_ON_OPEN, MQBND_BIND_NOT_FIXED, or MQBND_BIND_ON_GROUP.

To route all messages put to a queue using MQPUT to the same queue manager by the same route, use the MQOO_BIND_ON_OPEN option on the MQOPEN call.

To specify that a destination is to be selected at MQPUT time, that is, on a message-by-message basis, use the MQOO_BIND_NOT_FIXED option on the MQOPEN call.

To specify that all messages in a message groups put to a queue using MQPUT are allocated to the same destination instance, use the MQOO_BIND_ON_GROUP option on the MQOPEN call.

Either MQOO_BIND_ON_OPEN or MQOO_BIND_ON_GROUP must be specified when using message groups with clusters to ensure that all messages in the group are processed at the same destination.

If you do not specify any of these options the default, MQOO_BIND_AS_Q_DEF, is used.

If you specify the name of a queue manager in the MQOD, the queue at that queue manager is selected. If the queue manager name is blank, any instance can be selected. See MQOPEN and clusters for more information.

If you open a cluster queue using a QALIAS definition, some queue attributes are defined by the alias queue, and not the base queue. Cluster attributes are among the attributes of the base queue definition that are overridden by the alias queue. For example, in the following snippet, the cluster queue is opened with MQOO_BIND_NOT FIXED and not MQOO_BIND_ON_OPEN. The cluster queue definition is advertised throughout the cluster, the alias queue definition is local to the queue manager.

DEFINE QLOCAL(CLQ1) CLUSTER(MYCLUSTER) DEFBIND(OPEN) REPLACE
DEFINE QALIAS(ACLQ1) TARGET(CLQ1) DEFBIND(NOTFIXED) REPLACE