Aliases allow the creation of parallel routes between a source and a destination. This is sometimes useful when you want to send messages synchronously if possible, but asynchronously if the remote end is not currently connected. You can do this with the setup illustrated in the following diagram:
Here two aliases have been defined on the target queue. One alias will be used to route synchronous traffic to the target queue, one will be used to route asynchronous traffic.
On LocalQM two remote queue definitions have been defined, one pointing at each alias. You can create an asynchronous Remote Queue Definition called Async@TargetQM, and a synchronous Remote Queue Definition called Sync@TargetQM. By choosing the name of the queue that you put to (Sync@TargetQM or Async@TargetQM) you can choose the route that the message follows, even though the destination is the same. First, the resolution of the synchronous route by putting a message to Sync@TargetQM, as shown in the following diagram:
And secondly the asynchronous resolution using AsyncAlias@TargetQM, as shown in the following diagram:
You could choose to view this as a pair of Push Message Routes, as shown in the following diagram:.