Cluster attributes that can be specified on the queue definition
commands.
The cluster attributes on the
DEFINE QLOCAL
,
DEFINE
QREMOTE
, and
DEFINE QALIAS
commands, and
the three equivalent ALTER commands, are:
- CLUSTER
- Specifies the name of the cluster to which the queue belongs.
- CLUSNL
- Specifies a namelist of cluster names.
- DEFBIND
- Specifies the binding to be used when an application specifies
MQOO_BIND_AS_Q_DEF
on
the MQOPEN call. The options for this attribute
are:
- Specify
DEFBIND(OPEN)
to bind the queue handle
to a specific instance of the cluster queue when the queue is opened. DEFBIND(OPEN)
is
the default for this attribute.
- Specify
DEFBIND(NOTFIXED)
so that the queue handle
is not bound to any instance of the cluster queue.
- Specify
DEFBIND(GROUP)
to allow an application
to request that a group of messages are all allocated to the same
destination instance.
When multiple queues with the same name are advertised in a Queue
Manager Cluster, applications can choose whether to send all messages
from this application to a single instance (MQOO_BIND_ON_OPEN), to
allow the workload management algorithm to select the most suitable
destination on a per message basis (MQOO_BIND_NOT_FIXED), or allow
an application to request that a 'group' of messages be all allocated
to the same destination instance (MQOO_BIND_ON_GROUP). The workload
balancing is re-driven between groups of messages (without requiring
an MQCLOSE and MQOPEN of the queue).
- When you specify DEFBIND on a queue definition, the queue is defined with one
of the attributes,
MQBND_BIND_ON_OPEN
, MQBND_BIND_NOT_FIXED
, or
MQBND_BIND_ON_GROUP
. Either
MQBND_BIND_ON_OPEN
or MQBND_BIND_ON_GROUP
must be specified when
using groups with clusters.
- We recommend that you set the DEFBIND attribute
to the same value on all instances of the same cluster queue. Because
MQOO_BIND_ON_GROUP is new in IBM® WebSphere® MQ Version 7.1,
it must not be used if any of the applications opening this queue
are connecting to IBM WebSphere MQ Version 7.0.1 or earlier
queue managers.
- CLWLRANK
- Applies a ranking factor to a queue for workload management purposes. CLWLRANK parameter
is not supported on model queues. The cluster workload algorithm selects
a destination queue with the highest rank. By default CLWLRANK for
all queues is set to zero.
- If the final destination is a queue manager on a different cluster,
you can set the rank of any intermediate gateway queue managers at
the intersection of neighboring clusters. With the intermediate queue
managers ranked, the cluster workload algorithm correctly selects
a destination queue manager nearer the final destination.
- The same logic applies to alias queues. The rank selection is
made before the channel status is checked, and therefore even non-accessible
queue managers are available for selection. This has the effect of
allowing a message to be routed through a network, rather than having
it select between two possible destinations (as the priority would).
So, if a channel is not started to the place where the rank has indicated,
the message is not routed to the next highest rank, but waits until
a channel is available to that destination (the message is held on
the transmit queue).
- CLWLPRTY
- Applies a priority factor to a queue for workload management purposes.
The cluster workload algorithm selects a destination queue with the
highest priority. By default priority for all queues is set to zero.
- If there are two possible destination queues, you can use this
attribute to make one destination failover to the other destination.
The priority selection is made after the channel status is checked.
All messages are sent to the queue with the highest priority unless
the status of the channel to that destination is not as favorable
as the status of channels to other destinations. This means that only
the most accessible destinations are available for selection. This
has the effect of prioritizing between multiple destinations that
are all available.
- CLWLUSEQ
- Specifies the behavior of an MQPUT operation
for a queue. This parameter specifies the behavior of an MQPUT operation
when the target queue has a local instance and at least one remote
cluster instance (except where the MQPUT originates
from a cluster channel). This parameter is only valid for local queues.
- Possible values are: QMGR (the behavior is as
specified by the CLWLUSEQ parameter of the queue
manager definition), ANY (the queue manager treats the local queue
as another instance of the cluster queue, for the purposes of workload
distribution), LOCAL (the local queue is the only
target of the MQPUT operation, providing the local
queue is put enabled). The MQPUT behavior depends
upon the cluster workload management algorithm.
The attributes on the DEFINE QLOCAL
, DEFINE
QREMOTE
, and DEFINE QALIAS
commands also
apply to the DISPLAY QUEUE
command.
To display
information about cluster queues, specify a queue type of QCLUSTER or
the keyword CLUSINFO on the DISPLAY QUEUE
command,
or use the command DISPLAY QCLUSTER
.
The DISPLAY
QUEUE
or DISPLAY QCLUSTER
command return
the name of the queue manager that hosts the queue (or the names of
all queue managers if there is more than one instance of the queue).
It also returns the system name for each queue manager that hosts
the queue, the queue type represented, and the date and time at which
the definition became available to the local queue manager. This information
is returned using the CLUSQMGR, QMID, CLUSQT, CLUSDATE,
and CLUSTIME attributes.
The system name for
the queue manager (QMID), is a unique, system-generated
name for the queue manager.
You can define a cluster queue that
is also a shared queue. For example. on
z/OS® you
can define:
DEFINE QLOCAL(MYQUEUE) CLUSTER(MYCLUSTER) QSGDISP(SHARED) CFSTRUCT(STRUCTURE)
The equivalent PCFs are MQCMD_CHANGE_Q
, MQCMD_COPY_Q
, MQCMD_CREATE_Q
,
and MQCMD_INQUIRE_Q
.