How the WebSphere MQ link enables messaging engines
on a service integration bus to exchange messages with a WebSphere MQ network.
The figure below shows a high level view of the function of a WebSphere
MQ link: it allows messages to be exchanged between a WebSphere Application
Server and a WebSphere MQ network. Subsequent figures add more detail to this
simple representation.
Figure 1. Exchanging messages between WebSphere Application Server and a
WebSphere MQ network.
A WebSphere MQ link is a configurable object that describes the attributes
required to connect to, and send or receive messages to or from, a WebSphere
MQ queue manager. It is an administrative entity in WebSphere Application Server,
not in WebSphere MQ. A WebSphere MQ link connects to a specific foreign bus
which represents a WebSphere MQ network. A WebSphere MQ link is defined on
a WebSphere Application Server messaging engine in a service integration bus.
The messaging engine that supports the WebSphere MQ link is known as the WebSphere
MQ link engine.
- The WebSphere MQ link engine inside the WebSphere Application Server can
exchange messages with a WebSphere MQ queue manager. To the WebSphere MQ link
engine, the WebSphere MQ queue manager appears to be a foreign bus. To the
queue manager, the WebSphere MQ link engine appears to be another WebSphere
MQ queue manager.
The figure below shows a bus on a WebSphere Application
server and how a messaging engine on the bus can have a WebSphere MQ link.
WebSphere MQ appears as a foreign bus with a gateway queue manager with a
connection to the WebSphere MQ link.
Figure 2. Exchanging messages between
a service integration bus, and a foreign bus in a WebSphere MQ network.
- A WebSphere MQ link engine is the messaging engine through which other
messaging engines on the same bus send messages to, and receive messages from,
a WebSphere MQ queue manager. This queue manager acts as a gateway to other
WebSphere MQ queue managers. This gateway queue manager is represented as
a foreign bus when you configure the WebSphere MQ link.
The figure below
shows how messages exchanged between the messaging engine with the WebSphere
MQ link and the gateway queue manager, can be sent and received by other messaging
engines on the same bus, and other queues on the gateway queue manager.
Figure 3. Exchanging messages between messaging engines on one bus and queues
on a foreign bus.
- A WebSphere MQ link can have definitions for a WebSphere MQ link sender
or a WebSphere MQ link receiver or both. The link sender and receiver emulate
the behavior of WebSphere MQ sender and receiver channels. For more information
about sender channels, see WebSphere MQ link sender.
For more information about receiver channels, see WebSphere MQ link receiver.
The figure below goes to greater detail and shows
the sender and receiver channels that enable the messaging engine with the
WebSphere MQ link and the gateway queue manager to exchange messages.
Figure 4. Exchanging messages between WebSphere MQ link sender and receiver channels,
and a gateway queue manager with receiver and sender channels.
- The WebSphere MQ link can have a publish/subscribe bridge, which allows
the publication of messages and establishment of subscription to topics between
the WebSphere Application Server and a broker in the WebSphere MQ network.
The bridge, consisting of one or more broker profiles and topic mappings can
be configured after you define the WebSphere MQ link.
- When sending messages to WebSphere MQ through the WebSphere MQ link, you
can include additional fields unique to WebSphere Application Server messaging
technology in the MQRFH2 header, inside a container called the sib folder.
The MQRFH2 header contains information about the structure of the message
and its intended consumers.
A WebSphere MQ application can look at or manipulate
the contents of the sib folder if desired. You can read more about MQRFH2
fields in Mapping of additional MQRFH2 header fields in service integration.
- Alias destinations can be used to route messages across the WebSphere
MQ link to a WebSphere MQ queue, which has a name restriction of 48 characters.
Alias destinations are used to map between unrestricted WebSphere Application Server names,
and WebSphere MQ names restricted to 48 characters.
The figure below shows
how an alias destination can translate to a foreign destination and be passed
to a WebSphere MQ queue which in turn has an alias.
Figure 5. Exchanging
messages between alias destinations, foreign destinations and remote queues.
- The WebSphere MQ link communicates with WebSphere MQ using WebSphere MQ
format and protocols. To identify the supported version of WebSphere MQ, see
the Supported hardware and software Web page at http://www.ibm.com/support/docview.wss?rs=180&uid=swg27006921.
- WebSphere MQ exits (for example, for data conversion) are not supported
by the WebSphere MQ link so we recommend that WebSphere MQ sender channels
specify CONVERT(YES) so that data is converted to the UTF-8 character set
before being sent to the WebSphere MQ link.
If you delete a WebSphere MQ link, with the result that messages destined
for WebSphere MQ are in doubt, an entry will be made in the WebSphere Application
Server log and you will need to redirect or delete the messages. You can read
more about in doubt transactions in Resolving indoubt transactions.
If
there is a publish/subscribe broker profile and topic mappings defined on
the WebSphere MQ link you must close down and delete them before deleting
the WebSphere MQ link. See Deleting a WebSphere MQ link.
- Although you can directly link two messaging engines using a WebSphere
MQ link, you are strongly discouraged from doing so, even though each will
believe the other is a WebSphere MQ bus. The WebSphere MQ link, in this case,
performs unwanted conversions of message attributes and also imposes limitations
on naming.
- A WebSphere MQ link cannot be used to link to clusters in a WebSphere
MQ network.
To define a WebSphere MQ link see Defining a WebSphere MQ link.