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 figure 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 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 by 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.