Issues relating to addressing bus destinations across the WebSphere MQ link

This topic describes how to handle the issues relating to addressing a service integration bus destination from WebSphere® MQ, and a WebSphere queue from a service integration bus.

The name characteristics and naming structure of the service integration bus and WebSphere MQ are not the same. WebSphere MQ essentially has a two-level addressing structure:

Each of these names is limited to 48 characters. The equivalents for the service integration bus are the messaging engine name and destination name, but the scope of a destination is not limited to a particular messaging engine. Both destination and messaging engine have a scope that spans the bus, so the service integration bus uses bus name and destination to uniquely address a particular target destination.

The service integration bus does not enforce the 48 character limit for names that is imposed by WebSphere MQ. Messages from a WebSphere MQ application sent to a bus destination with a name greater than 48 characters must have some means of using the shorter name (used in WebSphere MQ) to address the long name (used in the service integration bus). The service integration bus uses an alias destination to map between the shorter name and the long name. For more information about alias destinations, see Alias destinations.

An alias can also be used to send a message from a WebSphere Application Server application using a long name (greater than 48 characters) and route it to a WebSphere MQ queue. however, there is still an issue addressing a queue on an arbitrary queue manager in an MQ network. In the service integration bus environment, you specify the bus name (the WebSphere MQ link bus name) and the destination name, so there has to be a special format for a destination which allows you to specify the queue manager name: <queue>@<queue manager>. These destination names will only be parsed by the WebSphere MQ link, which uses the value to determine what values to place in the target queue and queue manager fields of the message header.

For example, you could define an alias on the local bus called "MyLongQueueNameWithMoreThanFortyEightCharactersInTheName", and set the target bus to the name of the foreign bus representing the MQ network and the target identifier to "QUEUE1@QM2" to address the WebSphere MQ queue called QUEUE1 on the queue manager QM2 in the WebSphere MQ network.

There are two fields in the JMS API that are used for sharing information about the destination to which a message is sent (JMSDestination) and the destination to which replies should be sent (JMSReplyTo). The JMSReplyTo field of a JMS message passing from a service integration bus to WebSphere MQ (or from WebSphere MQ to a service integration bus) is automatically mapped so that a consuming application in WebSphere MQ can reply to the original WebSphere Application Server application.




Related concepts
Learning about programming for interoperability with WebSphere MQ using WebSphere MQ Links
Concept topic    

Terms of Use | Feedback

Last updated: Aug 29, 2010 5:25:00 PM CDT
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=vela&product=was-base-dist&topic=cjcAL11_
File name: cjcAL11_.html