An alias destination is a type of bus destination. You use an alias destination when you need to use an alternative name for a bus destination. The bus destination can be on the local bus or on a foreign bus. If you use an alias destination, you can also set properties, destination roles, or both.
It is possible to omit the bus name, because the default is the local bus name, but for a system with more than one bus, it is advisable to specify the bus name.
Service integration uses the definition of the foreign bus that is configured on the local bus. This definition includes default values for the destination attributes, such as the default quality of service. These default values apply to all destinations in that foreign bus. For more information, see the topic about point-to-point messaging across multiple buses.
An alias destination maps an alternative name for a bus destination. You can use an alias destination for point-to-point messaging or publish/subscribe messaging. An alias destination maps a bus name and destination name to a target where the bus name, or the destination name, or both, are different. An alias destination can map to a queue destination or a topic space destination. If required, alias destinations can be chained so that the target destination is itself an alias destination.
You configure an alias destination on the local bus. When an application in the local bus uses the alias destination, the specified bus name and destination name are mapped to a new name. If you use an alias destination, you can also set properties, destination roles, or both.
When an application that is connected to a bus specifies a destination name and bus name in its JMS destination object (queue or topic) that match the identifier and bus of an alias destination that is defined in that bus, the destination that the application accesses is the same as if the application specified the target identifier and target bus from the alias destination. You can also use a alias destination that is defined in a foreign bus if you need to redirect messages that arrive over a foreign bus connection to differently named destinations or buses, and you cannot modify the configuration of the source bus.
Each alias destination identifies a target bus destination and target service integration bus.
For example, an application sends a message to a WebSphere MQ application and the reply-to destination name does not comply with the WebSphere MQ naming restrictions. You can define an alias that maps a compliant name to the actual reply-to destination name. The application then specifies the alias destination as the reply-to.
Another example is an application that sends a message through a WebSphere MQ foreign bus to a remote service integration foreign bus when the send-to destination name does not comply with the WebSphere MQ naming restrictions. You can define an alias in the remote bus that maps a compliant name to the actual send-to destination name. The application then specifies the alias destination as the send-to. If you want the sending application to use the actual destination name, you can define an alias in the local bus that maps the actual destination name to the compliant name.
However, it might be simpler to change the JMS destinations that are registered with JNDI to point to the new destination.
When you use an alias destination, you can also set properties (for example, the default quality of service) for the alias destination. When an application uses the alias destination, these properties override the properties of the target destination. If you do not want to override a property, configure the alias destination to inherit the corresponding property from the target destination.
When you use an alias destination, you can also configure destination roles for the alias destination. When the application uses the alias destination, service integration in the local bus uses these roles to control which users and groups in the local bus have access to the target destination. If you do not want to override the security for the target destination, configure the alias destination to delegate the authorization check to the target destination.
The following figure shows a JMS application that sends messages from the local bus, Bus 1, to a destination in a foreign bus, Bus 2. Bus 1 has a foreign bus connection defined, which it uses to forward the message to the foreign bus. The JMS destination does not point to the target queue, but points to Bus X, Queue Y. Bus 1 includes an alias destination that maps Bus X, Queue Y to the target destination Bus 2, Queue 2. Bus 1 gets the destination defaults from the alias destination.
If an application uses an alias destination to access a destination that is defined in a foreign bus, you can configure the alias destination with the specific properties, destination roles, or both that the application requires. This means that you probably do not need to define a foreign destination as well.