Here are different types of queues and their uses.
Queue Manager
- A queue manager is a program that provides messaging services to applications. Applications that use the Message Queue Interface (MQI) can put and get messages from queues.
- The queue manager ensures that messages are sent to the correct queue or are routed to another queue manager. The queue manager processes both the MQI calls that are issued to it, and the commands that are submitted to it (from whatever source).
- The queue manager generates the appropriate completion codes for each call or command.
Queues
- A queue is a container for messages. Messages can be retrieved from, or added to, the queue, one at a time, by applications that are connected to the queue manager that owns the queue.
- A queue has a limited capacity in terms of both the maximum number of messages it can hold and the maximum length of those messages.
- A queue instance is fully qualified by its queue manager and queue name.
Different Types of Queues:
Local Queues
A queue is local if the queue manager to which the application program is connected owns it. It is used to store messages for programs that use the same queue manager.
Cluster Queues
A cluster queue is a local queue that is known throughout a cluster of queue managers, that is, any queue manager that belongs to the cluster can send messages to it without the need of a remote definition or defining channels to the queue manager that owns it.
Remote Queues
- A queue is “remote” if it is owned by a different queue manager. A remote queue definition is the local definition of a remote queue. A remote queue is not a real queue. It is a structure that contains some of the characteristics of a queue hosted by a different queue manager.
- The application programmer can use the name of a remote queue just as he or she can use the name of a local queue. The MQSeries administrator defines where the queue actually is. Remote queues are associated with a transmission queue. A program cannot read messages from a remote queue.You don’t need a remote queue definition for a cluster queue
Transmission Queues
- This is a local queue with a special purpose. A remote queue is associated with a transmission queue. Transmission queues are used as an intermediate step when sending messages to queues that are owned by a different queue manager.
- Typically, there is only one transmission queue for each remote queue manager (or machine). All messages written to queues owned by a remote queue manager are actually written to the transmission queue for this remote queue manager. The messages will then be read from the transmission queue and sent to the remote queue manager.