In WebSphere MQ, intercommunication means sending messages from one queue manager to another. The receiving queue manager could be on the same machine or another; nearby or on the other side of the world. It could be running on the same platform as the local queue manager, or could be on any of the platforms supported by WebSphere MQ. This is called a distributed environment. WebSphere MQ handles communication in a distributed environment such as this using Distributed Queue Management (DQM).
The local queue manager is sometimes called the source queue manager and the remote queue manager is sometimes called the target queue manager or the partner queue manager.
Figure 1 shows an overview of the components of distributed queuing.
Figure 1. Overview of the components of distributed queuing
![]() |
If a message is to be sent to a remote queue manager, the local queue manager needs definitions for a transmission queue and a channel.
Each end of a channel has a separate definition, defining it, for example, as the sending end or the receiving end. A simple channel consists of a sender channel definition at the local queue manager and a receiver channel definition at the remote queue manager. These two definitions must have the same name, and together constitute one channel.
There is also a message channel agent (MCA) at each end of a channel.
Each queue manager should have a dead-letter queue (also known as the undelivered message queue). Messages are put on this queue if they cannot be delivered to their destination.
Figure 2 shows the relationship between queue managers, transmission queues, channels, and MCAs.
![]() |
If your application requires messages to be returned from the remote queue manager, you need to define another channel, to run in the opposite direction between the queue managers, as shown in Figure 3.
Figure 3. Sending messages in both directions
![]() |
An alternative to the traditional WebSphere MQ network is the use of clusters. Clusters are supported on WebSphere MQ for AIX, iSeries, HP-UX, Solaris, z/OS, and Windows, and MQSeries V5.1 for Compaq Tru64 UNIX, and OS/2 Warp only.
A cluster is a network of queue managers that are logically associated in some way. You can group queue managers in a cluster so that queue managers can make the queues that they host available to every other queue manager in the cluster. Assuming you have the necessary network infrastructure in place, any queue manager can send a message to any other queue manager in the same cluster without the need for explicit channel definitions, remote-queue definitions, or transmission queues for each destination. Every queue manager in a cluster has a single transmission queue that transmits messages to any other queue manager in the cluster. Each queue manager needs to define only one cluster-receiver channel and one cluster-sender channel.
Figure 4 shows the components of a cluster called CLUSTER:
Figure 4. A cluster of queue managers
![]() |
As with distributed queuing, you use the MQPUT call to put a message to a queue at any queue manager. You use the MQGET call to retrieve messages from a local queue.
For further information about clusters, see the WebSphere MQ Queue Manager Clusters book.