Enhanced features of the IBM MQ messaging provider
The IBM MQ messaging provider enables WAS applications and clients to connect to and use IBM MQ resources in a JMS-compliant manner. This provider includes the enhanced features described in this topic.
IBM MQ channel compression
Data sent over the network between WAS and IBM MQ can be compressed, reducing the amount of data that is transferred. Channel compression can be beneficial in the following situations:
- If a cost is incurred that is proportional to the amount of data transferred over a network. For example, nodes in a network might span a leased line for which a utilization charge is applied.
- If the rate at which messaging data can be transferred across a network is the limiting factor in the performance of an application.
- If compressing the data might reduce the cost of its encryption and decryption.
To use IBM MQ channel compression, configure the message compression properties of an existing connection factory or activation specification. See appropriate step within Configure JMS resources for the IBM messaging provider.
For more information, see the IBM MQ topic Channel compression in the IBM MQ information center that is part of the IBM MQ library.
IBM MQ client channel definition table
The client channel definition table reduces the effort required to configure a connection to a queue manager. The IBM MQ administrator can create a single table of all the IBM MQ channels supported by queue managers in the enterprise, then in WAS we configure a connection to a queue manager by identifying the client channel definition table and providing any additional information not already contained within the table.
We can also use the client channel definition table to provide a basic failover capability, by specifying that a connection is attempted against several queue managers listed in the table. Each suitable channel definition is tried in turn until a queue manager connection is successfully established.
Use the client channel definition table, with IBM MQ messaging provider activation specifications and connection factories, to select the client channel definition to use when establishing a connection to IBM MQ. The table can be configured to select from a number of queue managers, depending on their availability.
When we use a client channel definition table, note the following restrictions:
- If our client channel definition table can select from more than one queue manager, we might not be able to recover global transactions. Activation specifications and connection factories that specify a client channel definition table must either do so without ambiguity as to the target queue manager, or must avoid using the resources with applications that enlist in global transactions.
- If our client channel definition table contains channel definitions that reference native IBM MQ channel exits, the use of these channel definitions is not supported in the WAS environment.
For more information about client channel definition tables, see the developerWorks article IBM MQ V6 Java and JMS clients and the client channel definition table, and the IBM MQ topic Client channel definition table.
To use a client channel definition table, specify it when we create a new activation specification or connection factory.
Client channel exits
Client channel exits are pieces of Java code that you develop, and that run in the application server at key points during the life cycle of an IBM MQ channel. Your code can change the runtime characteristics of the communications link between the IBM MQ messaging provider and the IBM MQ queue manager.
Only client channel exits written in Java are supported for use within the WAS environment.
See the IBM MQ topic Channel exit programs. For a list of the channel exits that work with the IBM MQ messaging provider, see the client connection channel row of the table in the IBM MQ topic What are channel exit programs?.
To use client channel exits, configure the client transport properties of an existing connection factory or activation specification.
Transport-level encryption using SSL
Transport-level encryption using SSL is the supported way to configure SSL for JMS resources associated with the IBM MQ messaging provider. The SSL configuration is associated with the communication link for the connection factory or activation specification. You either define the SSL information in the connection factory, or the IBM MQ administrator defines the SSL information in an associated client channel definition table.
Automatic selection of the IBM MQ transport type
The IBM MQ messaging provider supports the following ways to connect to an IBM MQ queue manager:
- Bindings mode (or call attach)
- Bindings mode attachment is only possible if the queue manager is located on the same physical machine as the WAS. Bindings mode attachment, where available, typically offers better performance.
- Client mode (or socket attach)
- Client mode attachment can be used wherever the IBM MQ queue manager and WAS can establish a network connection to one another.
- Bindings mode, then client mode (automatic selection)
- This method tries a bindings mode connection first and, if that fails, a client mode connection is tried.
Every node in a WebSphere Application Server cluster shares identical configuration information. With automatic selection of the IBM MQ transport type, all the servers in a cluster can be configured to automatically select their transport. This has the effect any clustered server that is co-located with a queue manager establishes a bindings mode connection to the queue manager, whereas other servers in the cluster establish client mode connection to the queue manager.
Related:
Introduction: Messaging resources Choose a messaging provider Configure JMS resources for the IBM messaging provider