+

Search Tips | Advanced Search

Queues

Introduction to IBM MQ queues and queue attributes.

An IBM MQ queue is a named object on which applications can put messages, and from which applications can get messages.

Messages are stored on a queue, so that if the putting application is expecting a reply to its message, it is free to do other work while waiting for that reply. Applications access a queue by using the Message Queue Interface (MQI), described in The Message Queue Interface overview.

Before a message can be put on a queue, the queue must have already been created. A queue is owned by a queue manager, and that queue manager can own many queues. However, each queue must have a name that is unique within that queue manager.

A queue is maintained through a queue manager. In most cases, each queue is physically managed by its queue manager but this is not apparent to an application program. IBM MQ for z/OS shared queues can be managed by any queue manager in the queue sharing group.

To create a queue we can use IBM MQ commands (MQSC), PCF commands, or platform-specific interfaces. For example, the IBM MQ for z/OS operations and control panels are platform-specific.

We can create local queues for temporary jobs dynamically from the application. For example, we can create reply-to queues (which are not needed after an application ends). For more information, see Dynamic and Model queues.

Before using a queue, we must open the queue, specifying what we want to do with it. For example, we can open a queue for:

  • Browsing messages only (not retrieving them)
  • Retrieving messages (and either sharing the access with other programs, or with exclusive access)
  • Put messages on the queue
  • Inquiring about the attributes of the queue
  • Set the attributes of the queue

For a complete list of the options that we can specify when you open a queue, see MQOPEN - Open object.


Attributes of queues

Some of the attributes of a queue are specified when the queue is defined, and cannot be changed afterward (for example, the type of the queue). Other attributes of queues can be grouped into those that can be changed:

  • By the queue manager during the processing of the queue (for example, the current depth of a queue)
  • Only by commands (for example, the text description of the queue)
  • By applications, using the MQSET call (for example, whether put operations are allowed on the queue)

We can find the values of all the attributes using the MQINQ call.

The attributes that are common to more than one type of queue are:

    QName
    Name of the queue.

    QType
    Type of the queue.

    QDesc
    Text description of the queue.

    InhibitGet
    Whether programs are allowed to get messages from the queue. However, we can never get messages from remote queues.

    InhibitPut
    Whether programs are allowed to put messages on the queue.

    DefPriority
    Default priority for messages put on the queue.

    DefPersistence
    Default persistence for messages put on the queue

    Scope
    Controls whether an entry for this queue also exists in a name service.
    The Scope attribute is not supported on z/OS

For a full description of these attributes, see Attributes for queues.

Parent topic: Object types


Related concepts


Related reference


Related information

Last updated: 2020-10-04