Queues used for specific purposes by IBM MQ
IBM MQ uses some local queues for specific purposes related to its operation.
We must define these queues before IBM MQ can use them.
- Initiation queues
-
Initiation queues are queues that are used in triggering. A queue manager puts a trigger message on an initiation queue when a trigger event occurs. A trigger event is a logical combination of conditions that is detected by a queue manager. For example, a trigger event might be generated when the number of messages on a queue reaches a predefined depth. This event causes the queue manager to put a trigger message on a specified initiation queue. This trigger message is retrieved by a trigger monitor, a special application that monitors an initiation queue. The trigger monitor then starts the application program that was specified in the trigger message.
If a queue manager is to use triggering, at least one initiation queue must be defined for that queue manager. See Manage objects for triggering, runmqtrm, and Starting IBM MQ applications using triggers
- Transmission queues
-
Transmission queues are queues that temporarily store messages that are destined for a remote queue manager. We must define at least one transmission queue for each remote queue manager to which the local queue manager is to send messages directly. These queues are also used in remote administration; see Remote administration from a local queue manager. For information about the use of transmission queues in distributed queuing, see IBM MQ distributed queuing techniques.
Each queue manager can have a default transmission queue. If a queue manager that is not part of a cluster puts a message onto a remote queue, the default action is to use the default transmission queue. If there is a transmission queue with the same name as the destination queue manager, the message is placed on that transmission queue. If there is a queue manager alias definition, in which the RQMNAME parameter matches the destination queue manager, and the XMITQ parameter is specified, the message is placed on the transmission queue named by XMITQ. If there is no XMITQ parameter, the message is placed on the local queue named in the message.
- Cluster transmission queues
-
Each queue manager within a cluster has a cluster transmission queue called SYSTEM.CLUSTER.TRANSMIT.QUEUE, and a model cluster transmission queue, SYSTEM.CLUSTER.TRANSMIT.MODEL.QUEUE. Definitions of these queues are created by default when you define a queue manager. If the queue manager attribute, DEFCLXQ, is set to CHANNEL, a permanent dynamic cluster transmission queue is automatically created for each cluster-sender channel that is created. The queues are called SYSTEM.CLUSTER.TRANSMIT. ChannelName. We can also define cluster transmission queues manually.
A queue manager that is part of the cluster sends messages on one of these queues to other queue managers that are in the same cluster.
During name resolution, a cluster transmission queue takes precedence over the default transmission queue, and a specific cluster transmission queue takes precedence over SYSTEM.CLUSTER.TRANSMIT.QUEUE.
- Dead-letter queues
-
A dead-letter (undelivered-message) queue is a queue that stores messages that cannot be routed to their correct destinations. A message cannot be routed when, for example, the destination queue is full. The supplied dead-letter queue is called SYSTEM.DEAD.LETTER.QUEUE.
For distributed queuing, define a dead-letter queue on each queue manager involved.
- Command queues
-
The command queue, SYSTEM.ADMIN.COMMAND.QUEUE, is a local queue to which suitably authorized applications can send MQSC commands for processing. These commands are then retrieved by an IBM MQ component called the command server. The command server validates the commands, passes the valid ones on for processing by the queue manager, and returns any responses to the appropriate reply-to queue.
A command queue is created automatically for each queue manager when that queue manager is created.
- Reply-to queues
- When an application sends a request message, the application that receives the message can send back a reply message to the sending application. This message is put on a queue, called a reply-to queue, which is normally a local queue to the sending application. The name of the reply-to queue is specified by the sending application as part of the message descriptor.
- Event queues
-
Instrumentation events can be used to monitor queue managers independently of MQI applications.
When an instrumentation event occurs, the queue manager puts an event message on an event queue. This message can then be read by a monitoring application, which might inform an administrator or initiate some remedial action if the event indicates a problem.
Note: Trigger events are different from instrumentation events. Trigger events are not caused by the same conditions, and do not generate event messages.
For more information about instrumentation events, see Instrumentation events.
Parent topic: Queues