Attributes for queues

There are five types of queue definition. Some queue attributes apply to all types of queue; other queue attributes apply only to certain types of queue.

Types of queue

The queue manager supports the following types of queue definition:
Local queue
You can store messages on a local queue.
[z/OS]On z/OS® you can make it a shared or private queue.

A queue is known to a program as local if it is owned by the queue manager to which the program is connected. You can get messages from, and put messages on, local queues.

The queue definition object holds the definition information of the queue as well as the physical messages put on the queue.

Local queue manager queue
The queue exists on the local queue manager.
[z/OS]The queue is known as a private queue on z/OS.
[z/OS]Shared queue (z/OS only)
The queue exists in a shared repository that is accessible to all the queue managers that belong to the queue-sharing group that owns the shared repository.

Applications connected to any queue manager in the queue-sharing group can place messages on and remove messages from queues of this type. Such queues are effectively the same as local queues. The value of the QType queue attribute is MQQT_LOCAL.

Applications connected to the local queue manager can place messages on and remove messages from queues of this type. The value of the QType queue attribute is MQQT_LOCAL.

Cluster queue

You can store messages on a cluster queue on the queue manager where it is defined. A cluster queue is a queue that is hosted by a cluster queue manager and made available to other queue managers in the cluster. The value of the QType queue attribute is MQQT_CLUSTER.

A cluster queue definition is advertised to other queue managers in the cluster. The other queue managers in the cluster can put messages to a cluster queue without needing a corresponding remote-queue definition. A cluster queue can be advertised in more than one cluster by using a cluster namelist.

When a queue is advertised, any queue manager in the cluster can put messages to it. To put a message, the queue manager must find out, from the full repositories, where the queue is hosted. Then it adds some routing information to the message and puts the message on a cluster transmission queue.

A queue manager can store messages for other queue managers in a cluster on multiple transmission queues. You can configure a queue manager to store messages on multiple cluster transmission queues in two different ways. If you set the queue manager attribute DEFCLXQ to CHANNEL, a different cluster transmission queue is created automatically from SYSTEM.CLUSTER.TRANSMIT.MODEL.QUEUE for each cluster-sender channel. If you set the CLCHNAME transmission queue option to match one or more cluster-senders channel, the queue manager can store messages for the matching channels on that transmission queue.
Attention: If you are using dedicated SYSTEM.CLUSTER.TRANSMIT.QUEUES with a queue manager that was upgraded from a version of the product earlier than IBM® WebSphere® MQ 7.5, ensure that the SYSTEM.CLUSTER.TRANSMIT.MODEL.QUEUE has the SHARE/NOSHARE option set to SHARE.

[z/OS]A cluster queue can be a queue that is shared by members of a queue-sharing group in IBM MQ for z/OS.

Remote queue
A remote queue is not a physical queue; it is the local definition of a queue that exists on a remote queue manager. The local definition of the remote queue contains information that tells the local queue manager how to route messages to the remote queue manager.

Applications connected to the local queue manager can place messages on queues of this type; the messages are placed on the local transmission queue used to route messages to the remote queue manager. Applications cannot remove messages from remote queues. The value of the QType queue attribute is MQQT_REMOTE.

You can also use a remote queue definition for:
  • Reply-queue aliasing

    In this case the name of the definition is the name of a reply-to queue. For more information, see Reply-to queue aliases and clusters.

  • Queue-manager aliasing

    In this case the name of the definition is an alias for a queue manager, and not the name of a queue. For more information, see Queue manager aliases and clusters.

Alias queue
This is not a physical queue; it is an alternative name for a local queue, a shared queue, a cluster queue, or a remote queue. The name of the queue to which the alias resolves is part of the definition of the alias queue.

Applications connected to the local queue manager can place messages on queues of this type; the messages are placed on the queue to which the alias resolves. Applications can remove messages from queues of this type if the alias resolves to a local queue, a shared queue, or a cluster queue that has a local instance. The value of the QType queue attribute is MQQT_ALIAS.

Model queue
This is not a physical queue; it is a set of queue attributes from which a local queue can be created.

Messages cannot be stored on queues of this type.

[V8.0.0.15 Jun 2020]

Queue limits

From Version 8.0.0, Fix Pack 15, the queue manager limits the maximum queue file size to 2 TB by default.

Queue attributes

Some queue attributes apply to all types of queue; other queue attributes apply only to certain types of queue. The types of queue to which an attribute applies are shown in Table 1 and subsequent tables.
Table 1 summarizes the attributes that are specific to queues. The attributes are described in alphabetical order.
Note: The names of the attributes shown in this section are descriptive names used with the MQINQ and MQSET calls; the names are the same as for the PCF commands. When MQSC commands are used to define, alter, or display attributes, alternative short names are used; see Script (MQSC) commands for details.
Table 1. Attributes for queues. The columns apply as follows:
  • The column for local queues applies also to shared queues.
  • The column for model queues indicates which attributes are inherited by the local queue created from the model queue.
  • The column for cluster queues indicates the attributes that can be inquired when the cluster queue is opened for inquire alone, or for inquire and output. If any other attributes are inquired, the call returns completion code MQCC_WARNING and reason code MQRC_SELECTOR_NOT_FOR_TYPE (2068).

    If the cluster queue is opened for inquire plus one or more of input, browse, or set, the column for local queues applies instead.

    If the cluster queue is opened for inquire alone, or for inquire and output, plus specifying the base queue manager name, the column for local queues applies instead.

Attribute Description Local Model Alias Remote Cluster
AlterationDate Date when definition was last changed X   X X  
AlterationTime Time when definition was last changed X   X X  
BackoutRequeueQName Excessive backout requeue queue name X X      
BackoutThreshold Backout threshold X X      
BaseQName Queue name to which alias resolves     X    
CFStrucName Coupling-facility structure name X X      
CLCHNAME Cluster-sender channel names X X      
ClusterName Name of cluster to which queue belongs X   X X X
ClusterNamelist Name of namelist object containing names of clusters to which queue belongs X   X X  
CLWLQueuePriority Cluster workload queue priority X   X X X
CLWLQueueRank Cluster workload queue rank X   X X X
CLWLUseQ Use remote queue X        
CreationDate Date that the queue was created X        
CreationTime Time that the queue was created X        
CurrentQDepth Current queue depth X        
DefaultPutResponse Default put response X X X X  
DefBind Default binding X   X X X
DefinitionType attribute Queue definition type X X      
DefInputOpenOption Default input open option X X      
DefPersistence Default message persistence X X X X X
DefPriority Default message priority X X X X X
DefReadAhead Default read ahead X X X    
DistLists Distribution list support X X      
HardenGetBackout Whether to maintain an accurate backout count X X      
IndexType Index type X X      
InhibitGet Whether get operations for the queue are allowed X X X    
InhibitPut Whether put operations for the queue are allowed X X X X X
InitiationQName Name of initiation queue X X      
MaxMsgLength Maximum message length in bytes X X      
MaxQDepth Maximum queue depth X X      
MsgDeliverySequence attribute Message delivery sequence X X      
NonPersistentMessage Class Reliability goal for non-persistent messages X X      
OpenInputCount Number of opens for input X        
OpenOutputCount Number of opens for output X        
PropertyControl Property control X X X    
ProcessName Process name X X      
QDepthHighEvent attribute Whether Queue Depth High events are generated X X      
QDepthHighLimit High limit for queue depth X X      
QDepthLowEvent attribute Whether Queue Depth Low events are generated X X      
QDepthLowLimit attribute Low limit for queue depth X X      
QDepthMaxEvent Whether Queue Full events are generated X X      
QDesc Queue description X X X X X
QName Queue name X   X X X
QServiceInterval Target for queue service interval X X      
QServiceIntervalEvent attribute Whether Service Interval High or Service Interval OK events are generated X X      
QSGDisp attribute Queue-sharing group disposition X   X X  
QueueAccounting Queue accounting data collection X X X X X
QueueMonitoring Online monitoring data for queues X X      
QueueStatistics Queue statistics data collection X X X X X
QType Queue type X   X X X
RemoteQMgrName Name of remote queue manager       X  
RemoteQName Name of remote queue       X  
RetentionInterval Retention interval X X      
Scope Whether an entry for the queue also exists in a cell directory X   X X  
Shareability Queue shareability X X      
StorageClass Storage class for queue X X      
TriggerControl Trigger control X X      
TriggerData Trigger data X X      
TriggerDepth Trigger depth X X      
TriggerMsgPriority Threshold message priority for triggers X X      
TriggerType Trigger type X X      
Usage attribute Queue usage X X      
XmitQName Transmission queue name       X