Introduction to distributed queue management
Distributed queue management (DQM) is used to define and control communication between queue managers.
Distributed queue management:- Enables you to define and control communication channels between queue managers
- Provides you with a message channel service to move messages from a type of local queue, known as a transmission queue, to communication links on a local system, and from communication links to local queues at a destination queue manager
- Provides you with facilities for monitoring the operation of channels and diagnosing problems, using panels, commands, and programs
Channel definitions associate channel names with transmission queues, communication link identifiers, and channel attributes. Channel definitions are implemented in different ways on different platforms. Message sending and receiving is controlled by programs known as message channel agents (MCAs), which use the channel definitions to start and control communication.
The MCAs in turn are controlled by DQM itself. The structure is platform-dependent, but typically includes listeners and trigger monitors, together with operator commands and panels.
A message channel is a one-way pipe for moving messages from one queue manager to another. Thus a message channel has two end-points, represented by a pair of MCAs. Each end point has a definition of its end of the message channel. For example, one end would define a sender, the other end a receiver.
For details of how to define channels, see:- Monitor and control channels on UNIX, Linux, and Windows
- Monitor and control channels on z/OS
- Monitor and control channels on IBM i
For message channel planning examples, see:
- Message channel planning example for UNIX, Linux, and Windows
- Message channel planning example for IBM i
- Message channel planning example for z/OS
- Message channel planning example for z/OS using queue sharing groups
For information about channel exits, see Channel-exit programs for messaging channels.
- Message sending and receiving
The following figure shows the distributed queue management model, detailing the relationships between entities when messages are transmitted. It also shows the flow for control. - How to send a message to another queue manager
This section describes the simplest way to send a message between queue managers, including prerequisites and authorizations required. Other methods can also be used to send messages to a remote queue manager. - Channel control function
The channel control function provides facilities for you to define, monitor, and control channels. - Safety of messages
In addition to the typical recovery features of IBM MQ, distributed queue management ensures that messages are delivered properly by using a sync point procedure coordinated between the two ends of the message channel. If this procedure detects an error, it closes the channel so that we can investigate the problem, and keeps the messages safely in the transmission queue until the channel is restarted. - What happens when a message cannot be delivered?
When a message cannot be delivered, the MCA can process it in several ways. It can try again, it can return-to-sender, or it can put it on the dead-letter queue. - Triggering channels
IBM MQ provides a facility for starting an application automatically when certain conditions on a queue are met. This facility is called triggering. - Initialization and configuration files
The handling of channel initialization data depends on the IBM MQ platform. - Data conversion
IBM MQ messages might require data conversion when sent between queues on different queue managers. - Writing your own message channel agents
IBM MQ allows you to write your own message channel agent (MCA) programs or to install one from an independent software vendor. - Other things to consider for distributed queue management
Other topics to consider when preparing IBM MQ for distributed queue management. This topic covers Undelivered-message queue, Queues in use, System extensions and user-exit programs, and Running channels and listeners as trusted applications.
Parent topic: Configure distributed queuing
Related concepts
- Message sending and receiving
- Channel control function
- What happens when a message cannot be delivered?
- Initialization and configuration files
- Data conversion
- Writing your own message channel agents
- Other things to consider for distributed queue management
Related information