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
    We can store messages on a local queue.
    On z/OSĀ® we 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. We 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.
      The queue is known as a private queue on 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

    We 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. We 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.

    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.

    We 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.

Queue limits

From Version 9.0.0, Fix Pack 9, 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 the cluster queue is opened for inquire plus one or more of input, browse, or set, the column for local queues applies instead.
Attribute Description Local Model Alias Remote Cluster
AlterationDate Date when definition was last changed

 

 
AlterationTime Time when definition was last changed

 

 
BackoutRequeueQName Excessive backout requeue queue name

     
BackoutThreshold Backout threshold

     
BaseQName Queue name to which alias resolves    

   
CFStrucName Coupling-facility structure name

     
CLCHNAME Cluster-sender channel names

     
ClusterName Name of cluster to which queue belongs

 

ClusterNamelist Name of namelist object containing names of clusters to which queue belongs

 

 
CLWLQueuePriority Cluster workload queue priority

 

CLWLQueueRank Cluster workload queue rank

 

CLWLUseQ Use remote queue

       
CreationDate Date that the queue was created

       
CreationTime Time that the queue was created

       
CurrentQDepth Current queue depth

       
DefaultPutResponse Default put response

 
DefBind Default binding

 

DefinitionType attribute Queue definition type

     
DefInputOpenOption Default input open option

     
DefPersistence Default message persistence

DefPriority Default message priority

DefReadAhead Default read ahead

   
DistLists Distribution list support

     
HardenGetBackout Whether to maintain an accurate backout count

     
IndexType Index type

     
InhibitGet Whether get operations for the queue are allowed

   
InhibitPut Whether put operations for the queue are allowed

InitiationQName Name of initiation queue

     
MaxMsgLength Maximum message length in bytes

     
MaxQDepth Maximum queue depth

     
MsgDeliverySequence attribute Message delivery sequence

     
NonPersistentMessage Class Reliability goal for non-persistent messages

     
OpenInputCount Number of opens for input

       
OpenOutputCount Number of opens for output

       
PropertyControl Property control

   
ProcessName Process name

     
QDepthHighEvent attribute Whether Queue Depth High events are generated

     
QDepthHighLimit High limit for queue depth

     
QDepthLowEvent attribute Whether Queue Depth Low events are generated

     
QDepthLowLimit attribute Low limit for queue depth

     
QDepthMaxEvent Whether Queue Full events are generated

     
QDesc Queue description

QName Queue name

 

QServiceInterval Target for queue service interval

     
QServiceIntervalEvent attribute Whether Service Interval High or Service Interval OK events are generated

     
QSGDisp attribute Queue sharing group disposition

 

 
QueueAccounting Queue accounting data collection

QueueMonitoring Online monitoring data for queues

     
QueueStatistics Queue statistics data collection

QType Queue type

 

RemoteQMgrName Name of remote queue manager      

 
RemoteQName Name of remote queue      

 
RetentionInterval Retention interval

     
Scope Whether an entry for the queue also exists in a cell directory

 

 
Shareability Queue shareability

     
StorageClass Storage class for queue

     
TriggerControl Trigger control

     
TriggerData Trigger data

     
TriggerDepth Trigger depth

     
TriggerMsgPriority Threshold message priority for triggers

     
TriggerType Trigger type

     
Usage attribute Queue usage

     
XmitQName Transmission queue name