Interoperation with IBM MQ: Comparison of key features
There are three different ways that we can send messages between WebSphere Application Server and an IBM MQ network. This topic compares the key features of each of the three ways.
- Configure the IBM MQ messaging provider
- Use IBM MQ links to connect a bus to an IBM MQ network
- Use IBM MQ server to integrate IBM MQ queues into a bus
IBM MQ messaging provider IBM MQ link (Deprecated) IBM MQ server Interoperate with IBM MQ V6 or later Use MQ link to interoperate with any supported version or release of IBM MQ, on any platform. Interoperate with IBM MQ for z/OS V6 or later, or IBM MQ V7 or later. No use of service integration buses. Use service integration buses. Use service integration buses. WAS regards the IBM MQ messaging provider as a JMS messaging provider. The IBM MQ messaging provider is regarded by the IBM MQ network as an IBM MQ client attaching to the queue manager or queue-sharing group.
Each end of the IBM MQ link appears in a natural form to the other end, so the IBM MQ network appears to service integration as a foreign bus and the service integration bus appears as a virtual queue manager to the IBM MQ network. The IBM MQ server regards the IBM MQ queue manager or queue-sharing group as a bus member, or a mechanism for queuing messages for the service integration bus. A queue is viewed as a bus destination. The IBM MQ server is regarded by the IBM MQ network as an IBM MQ client attaching to the queue manager or queue-sharing group.
Provides multiple connections between WAS application servers and IBM MQ queue managers or queue-sharing groups. Connections are established as and when required to allow WAS applications to access IBM MQ queues. Provides a single connection between a service integration bus and an IBM MQ network (comprising one or more interconnected IBM MQ queue managers or queue-sharing groups). This single connection is used to transfer all the messages that are exchanged between the service integration network and the IBM MQ network. The link acts as a funnel, routing messages through the gateway messaging engine or queue manager. To establish multiple links from a service integration network, we can define multiple foreign buses to represent different queue managers or queue-sharing groups on the IBM MQ network. Provides multiple connections between messaging engines in a service integration bus and IBM MQ queue managers or queue-sharing groups. Connections are established as and when required, to allow WAS applications to access IBM MQ queues. A connection can be configured to use properties of the message bus to which it belongs, giving the potential for each IBM MQ server to be bus-specific. Connection between the WAS and the IBM MQ network can use a TCP/IP communication link or, if the WAS is running on the same image as the IBM MQ queue manager, it can use a direct call interface (this is called bindings mode). The channel for the connection is a bidirectional MQI channel. Connection between the service integration bus network and the IBM MQ network uses a TCP/IP communication link. The sender and receiver channels for the connection are message channels. Connection between the service integration bus network and the IBM MQ network can use a TCP/IP communication link or, if the WAS application server is running on the same image as the IBM MQ queue manager, it can use a direct call interface (this is called bindings mode). The channel for the connection is a bidirectional MQI channel. For IBM MQ for z/OS, messages can be stored on shared queues. If a queue manager fails, messages can still be retrieved from a different queue manager (so no single point of failure exists). If the communication link fails temporarily, messages are stored by IBM MQ or the service integration bus and are delivered when the communication link recovers. For IBM MQ for z/OS, messages can be stored on shared queues. If a queue manager fails, messages can still be retrieved from a different queue manager (so no single point of failure exists). Applications
Does not integrate the service integration bus with the IBM MQ network. Service integration bus mediations running in WAS cannot process messages from an IBM MQ queue, and IBM MQ applications cannot use IBM MQ servers to put messages to, or get messages from, service integration bus queue-type destinations. Integrates the service integration bus with the IBM MQ network through a gateway queue manager. Traffic can be indirect, routed to a mapped queue. Allows closer integration; messaging applications can directly produce messages to, and consume messages from IBM MQ queues. WAS applications can send messages to IBM MQ queues. Sent messages are immediately added to the queue. If the IBM MQ queue is unavailable, applications cannot send messages. WAS applications can send messages to IBM MQ queues. Sent messages are stored by the service integration bus for transmission to IBM MQ (this is called store and forward messaging). Applications can continue to send messages if the IBM MQ queue is unavailable. WAS applications can send messages to IBM MQ queues. Sent messages are immediately added to the queue. If the IBM MQqueue is unavailable, applications cannot send messages. WAS applications can receive messages from IBM MQ queues. The applications can use message consumers to receive messages, and message-driven beans can be configured to process messages as soon as they arrive at the IBM MQ queue. WAS applications cannot receive messages from IBM MQ queues, because the queues are destinations in a foreign bus. For messages to pass from IBM MQ to WAS applications, IBM MQ applications must send the messages to a suitable destination in the service integration bus used by the WAS applications. WAS applications can receive messages from IBM MQ queues. The applications can use message consumers to receive messages, and message-driven beans can be configured to process messages as soon as they arrive at the IBM MQ queue. Also, service integration bus mediations running in WAS can process messages as they arrive at an IBM MQ queue. WAS applications can publish messages to IBM MQ topics and subscribe to messages on IBM MQ topics in the same way as applications in the IBM MQ environment. We can set up a publish/subscribe bridge on the IBM MQ link, so that WAS applications and IBM MQ applications can publish or subscribe to selected topics that exist in both the IBM MQ environment and the WAS environment. An IBM MQ server provides connections with queues for point-to-point messaging. A topic for publish/subscribe messaging cannot be associated with an IBM MQ server. Messages are stored on queues, not messaging engines; one or many WAS applications can access the messages, even when the applications are running on different servers. Messages are stored on messaging engines. Messages are stored on queues, not messaging engines; one or many WAS applications can access the messages, even when the applications are running on different servers. Messages are pulled from the queue by a consuming application, and pushed by a producing application. Messages are pushed across the link, regardless of whether a consumer is ready. Messages are pulled from the queue by a WAS consumer, and pushed by a WAS producer. Does not support mediations. Does not support mediations. Supports different mediation scenarios for modifying message content, or routing, and for logging. Optimum load balancing is easier to achieve because applications can pull messages from the IBM MQ network. Messages are pushed to applications from the IBM MQ network, but workload balancing options are available in WAS. Optimum load balancing is easier to achieve because applications can pull messages from the IBM MQ network. Administration and security
Configured and managed using the administrative console. Configured and managed using the administrative console. Configured and managed using the administrative console. Automatically discovers queues on the IBM MQ network during configuration and administration. Administration is carried out in IBM MQ. In WAS define JMS artefacts such as destinations, connection factories, listener ports, and activation specifications. Cooperative administrative domains for IBM MQ and WAS:
- Mutually agree definitions of channels, foreign destinations and buses, to reflect IBM MQ connectivity
- Both ends of the link must be started
- Administrators can stop or start a link
Independent administrative domains for IBM MQ and WAS:
- Separate authority
- Temporal decoupling of administrative changes
We might have to define server connection channels in IBM MQ. We must define partner channel definitions in IBM MQ. We might have to define server connection channels in IBM MQ. Permission for WAS applications and mediations to send messages to, and receive messages from, a particular IBM MQ is controlled by IBM MQ administration. Permission for WAS applications to send messages to a particular IBM MQ queue is controlled by service integration bus administration. Permission for IBM MQ applications to send messages to service integration destinations is controlled by IBM MQ administration.
Permission for WAS applications and mediations to send messages to, and receive messages from, a particular IBM MQ queue is controlled by service integration bus administration. Permission for WAS (which includes permission for its applications and mediations) to access IBM MQ queues is controlled by IBM MQ administration.
For WAS v7 and later, listener ports are stabilized. We should plan to migrate the IBM MQ message-driven bean deployment configurations from using listener ports to using activation specifications. For more information about how to configure activation specifications for non-ASF mode, see Configure activation specifications for non-ASF mode. However, we should not begin this migration until we are sure the application does not have to work on application servers earlier than WAS v7. For example, if we have an application server cluster with some members at v6.1 and some at a later version, we should not migrate applications on that cluster to use activation specifications until after we migrate all the application servers in the cluster to the later version.
IBM MQ messaging provider (no bus)
MQ network (foreign bus using IBM MQ links)
MQ server (bus member with queue manager or queue-sharing group)
Related:
Interoperate with IBM MQ V6 or later. High availability and workload sharing IBM MQ link Interoperation using an IBM MQ link