A WebSphere MQ link
connects one service integration messaging engine, called the gateway
messaging engine, to one WebSphere MQ queue
manager or queue-sharing group, called the gateway queue manager.
All messaging engines in the service integration bus use the gateway
messaging engine to route messages to and from the WebSphere MQ network; all queue
managers and queue-sharing groups in the WebSphere MQ network use the
gateway queue manager to route messages to and from the service integration
bus.
Typically, a
WebSphere MQ link
consists of two TCP/IP connections:
- The WebSphere MQ link
sender channel, which carries messages from service integration to WebSphere MQ.
- The WebSphere MQ link
receiver channel, which carries messages from WebSphere MQ to service integration.
WebSphere MQ calls
these TCP/IP connections message channels, a receiver channel which
connects to the
WebSphere MQ link
sender channel and a sender channel which connects to the
WebSphere MQ link receiver channel.
The following figure shows a configuration like the one just described,
with a WebSphere MQ link
sender channel called BUS1.TO.QM01 and a
WebSphere MQ link receiver channel
called QM01.TO.BUS1.
If you only require messages to flow in one direction, you
need only define one TCP/IP connection. For example, a WebSphere MQ link sender channel
in service integration that connects to a receiver channel in WebSphere MQ is enough to support
message flow from service integration to WebSphere MQ. However, this
sample builds a configuration that allows messages to flow in both
directions.
Sample configuration context
The purpose
of this sample is to connect a
WebSphere Application Server configuration to
a
WebSphere MQ configuration
so that asynchronous messages can flow in both directions between
the two messaging systems. The sample assumes that you have already
set up a
WebSphere Application Server configuration
like this:
- An application server called server1 located on a node called
London. In a Network Deployment, server1 might be one of several servers
in a cell and might be one of several servers in a cluster, but this
sample is equally applicable to a base deployment containing just
one application server.
- The IP host name for the server London is LONDON.
- A service integration bus called BUS1.
- server1 is a member of BUS1; the messaging engine it contains
is called London.server1-BUS1.
- A queue-type bus destination called ServiceIntegrationQueue1,
which is one of the destinations in BUS1.
The sample also assumes that you already have a
WebSphere MQ configuration like
this:
- Queue managers called QM01 and QM02 which are part of a network
of interconnected WebSphere MQ queue
managers and queue-sharing groups. If you have only one queue manager
then you can ignore references to QM02 in this sample.
- The IP host name for the server where QM01 runs is PARIS.
- A queue called WMQ11 which is located on QM01 and a queue called
WMQ21 which is located on QM02. There might be many other queues defined
in the WebSphere MQ network
but this sample is concerned only with the two WebSphere MQ queues that you
are going to access from WebSphere Application Server.
You select London.server1-BUS1 to be the gateway messaging
engine and QM01 to be the gateway queue manager.
Sample configuration for the connections
This
section describes the settings that you or your
WebSphere MQ administrator need
to configure for the connections:
- The commands that your WebSphere MQ administrator uses
to configure the WebSphere MQ components
that correspond to the WebSphere MQ link:
- The sender channel
- The receiver channel
- The transmission queue
For JMS programs, the WebSphere MQ administrator also
defines a JMS destination that identifies the queue in the service
integration bus. Refer to the WebSphere MQ documentation for
more details about these commands.
- The parameters that you need when you use the WebSphere Application Server administrative
console to configure:
- The foreign bus which represents the network of WebSphere MQ queue managers
and queue-sharing groups
- The WebSphere MQ link
which represents the connection to that network
- JMS destinations that identify queues in the WebSphere MQ network
After you configure and activate these components your
applications can exchange messages between WebSphere Application Server service integration
messaging and WebSphere MQ messaging.
Optionally you can configure additional administrative artifacts that
allow you more detailed control over the queues and destinations,
see Sample configuration for the destinations.
- WebSphere MQ command
to configure the sender channel
DEFINE CHL(QM01.TO.BUS1) +
CHLTYPE(SDR) +
TRPTYPE(TCP) +
CONNAME('LONDON(5558)') +
XMITQ(BUS1)
Your WebSphere MQ administrator chooses
the name for the sender channel, which in this sample is QM01.TO.BUS1. The
CONNAME parameter specifies the IP host and port of the gateway messaging
engine.
The XMITQ parameter specifies the name of the transmission
queue, which is normally the same as the virtual queue manager name
of the service integration bus, which is preferably the same as the
bus name.
- WebSphere MQ command
to configure the receiver channel
DEFINE CHL(BUS1.TO.QM01) +
CHLTYPE(RCVR) +
TRPTYPE(TCP)
Your WebSphere MQ administrator chooses
the name for the receiver channel, which in this sample is BUS1.TO.QM01.
- WebSphere MQ command
to configure the transmission queue
DEFINE QL(BUS1) +
USAGE(XMITQ)
Your WebSphere MQ administrator chooses
the name for the transmission queue, but it is convenient to use the
name of the service integration bus BUS1. If the service integration
bus name is not a valid WebSphere MQ queue
manager name then the WebSphere Application Server administrator
must define a different virtual queue manager name for use here.
- WebSphere MQ JMSAdmin
command to configure the JMS destination
DEFINE Q(ServiceIntegrationQueue1) +
QMGR(BUS1) +
QUEUE(ServiceIntegrationQueue1)
Your WebSphere MQ JMS applications
can use this JMS destination to send messages to the service integration
bus destination ServiceIntegrationQueue1 in BUS1.
- WebSphere Application Server parameters
for the foreign bus
- You configure a foreign bus as part of the topology of the service
integration bus that connects to it. For this sample, the service
integration bus is BUS1 and the foreign bus uses the following settings:
Name |
QM01 (use the name of the gateway queue manager) |
Description |
This is our WebSphere MQ network |
Routing type |
Direct, WebSphere MQ link |
Leave all other settings to default.
- WebSphere Application Server parameters
for the WebSphere MQ link
- You configure a WebSphere MQ link
as a property of its gateway messaging engine. For this sample, the
gateway messaging engine is London.server1-BUS1 and the WebSphere MQ link uses the following
settings for the general properties:
Name |
Foreign bus name: QM01 |
TO.QM01 Description |
Link our WebSphere MQ network |
Queue manager name |
BUS1 (use the name of the local bus) |
Leave all other general property settings to default.The
WebSphere MQ link uses the following
settings for the sender channel properties:
Sender channel name |
BUS1.TO.QM01 |
Host name |
PARIS Port: 1414 (default) |
Leave all other sender channel property settings to
default.
The
WebSphere MQ link
uses the following settings for the receiver channel properties:
Receiver channel name |
QM01.TO.BUS1 |
Leave all other receiver channel property settings to
default.
- WebSphere Application Server parameters
for JMS destinations
- You configure JMS destinations to allow service integration JMS
applications to access queues in the WebSphere MQ network. This sample
needs JMS destinations for queue WMQ11 on queue manager QM01, and
for queue WMQ21 on queue manager QM02.
Note that these JMS destinations
are WebSphere MQ queues
but for the purposes of this sample you are accessing these queues
from service integration JMS programs so you need to define JMS destinations
for the default messaging provider (service integration) not for the WebSphere MQ JMS provider.
For
WMQ11, configure the following parameters:
Name |
WMQ11 |
JNDI name |
jms/WMQ11 |
Bus name |
QM01 |
Queue name |
WMQ11 |
Leave all other settings to default.
For WMQ21,
configure the following parameters:
Name |
WMQ21 |
JNDI name |
jms/WMQ21 |
Bus name |
QM01 |
Queue name |
WMQ21@QM02 |
Leave all other settings to default.
Sample configuration for the destinations
The
sample JMS destinations in Sample configuration for the connections
point directly to the corresponding
WebSphere MQ queues and service
integration destinations. If you prefer, you can configure additional
components so that:
- The WebSphere MQ JMS
destination points to a WebSphere MQ queue
(actually a remote or alias queue) which points to the service integration
destination.
- The service integration JMS destinations point to service integration
destinations (actually foreign or alias destinations) which point
to the WebSphere MQ queues.
Refer to the WebSphere MQ documentation
for information about when and how to define remote and alias queues.
- WebSphere Application Server parameters
for foreign destinations
- You configure foreign destinations for WebSphere MQ queues to allow
control over how service integration applications access each queue.
For example, you can configure foreign destinations for each of two
queues and specify that service integration includes an MQRFH2 header
in messages to one queue but not to the other.
You configure foreign
destinations as destination resources of the service integration bus.
For
WMQ11, configure the following parameters:
Identifier |
WMQ11 |
Bus |
QM01 |
Leave all other settings to default.
For WMQ21,
configure the following parameters:
Identifier |
WMQ21@QM02 |
Bus |
QM01 |
Leave all other settings to default.
After you
define these foreign destinations you can, for example, set the _MQRFHAllowed
custom property for either destination or both, as required.