This topic describes the WebSphere MQ link which
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 in-doubt 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.