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.
For a full description of these attributes, see Attributes for queues.
- Local queues
Transmission, initiation, dead-letter, command, default, channel, and event queues are types of local queue.- Remote queues
To a program, a queue is remote if it is owned by a different queue manager to the one to which the program is connected.- Alias queues
An alias queue is an IBM MQ object used to access another queue or a topic. This means that more than one program can work with the same queue, accessing it using different names.- Dynamic and Model queues
This information provides an insight into dynamic queues, properties of temporary and permanent dynamic queues, uses of dynamic queues, some considerations when using dynamic queues, and model queues.- Ways of defining queues
We can create a queue by using IBM MQ commands (MQSC), PCF commands, or by using platform-specific interfaces.- Queues used for specific purposes by IBM MQ
IBM MQ uses some local queues for specific purposes related to its operation.Parent topic: Object types
Related concepts
Related reference
- Comparison between shared queues and cluster queues
Related information