When a producing or consuming application is remote from its destination,
remote queue points are used to manage the flow of messages between the messaging
engine where the destination is located, and the messaging engine to which
the application is attached.
The following diagram illustrates the use of remote queue points in point-to-point
messaging. The producing application attaches to messaging engine ME1, but
the bus destination targeted by the application has a queue point that resides
on ME2. The queue point on ME2 is represented at runtime by a remote queue
point on ME1. The remote queue point receives messages from the application
and then reliably transmits them to the queue point on ME2. Likewise, the
consuming application attaches to ME3 and consumes messages from the queue
point on ME2 through a remote queue point on ME3.
Figure 1. Point-to-point
message production and consumption using remote queue points.
The sequence of steps
involved in remote message production is as follows:
- The producing application, attached to ME1, sends a message to the queue
destination, which has a queue point defined on ME2.
- Messages are queued up on the remote queue point on ME1 before transmission
to the queue point on ME2.
- The message is sent to the queue point on ME2 as soon as possible. ME1
remembers the existence of the message until ME2 confirms that it has received
the message.
The sequence of steps involved in remote message consumption is as follows:
- The consuming application, attached to ME3, attempts to consume a message
from the queue destination.
- ME3 sends a message request to the queue point on ME2.
- When a message that satisfies the criteria of the message request is available
at the queue point on ME2, the message is sent to the remote queue point on
ME3.
- The message is delivered from the remote queue point to the consuming
application. If the application consumes the message, the message is deleted
from the queue point on ME2. If the application does not consume the message,
the message is made available again on the queue point on ME2 for other applications
to consume. In either case, the message request is completed and removed from
the remote queue point on ME3.