Disable IBM MQ functionality in WAS
If we do not need to use IBM MQ functionality in an application server we can disable it using either the administrative console or an administrative command. We can also disable IBM MQ functionality in a client process by specifying a custom property.
When a WebSphere Application Server process or an application client process starts, and while this process is running, an amount of processing is performed to allow it to support IBM MQ-related functionality such as the IBM MQ messaging provider. By default this processing is performed regardless of whether any IBM MQ-related functionality is ever used. If we do not need to take advantage of any IBM MQ functionality, it is possible to disable all IBM MQ functionality in an application server or client process to give increased performance.
Disable IBM MQ functionality in a WAS process has the following effects:
- No IBM MQ messaging provider functionality is available on that particular server:
- Any defined IBM MQ messaging provider resources are not bound into JNDI, and so are unavailable to look up from inside the affected application server process, from other application server processes or application clients.
- It is still possible to define IBM MQ messaging provider resources. However the test connection button on either the create connection factory or create activation specification wizard, depending on the scope at which IBM MQ has been disabled, does not work.
- Any message driven beans that use message listener ports configured with IBM MQ messaging provider resources do not start.
- Any message driven beans that use IBM MQ messaging provider activation specifications do not start.
- It is not possible to recover any indoubt XA transactions involving IBM MQ messaging provider resources.
- Any attempt to look up an IBM MQ messaging provider resource from a remote server that does not have IBM MQ functionality disabled fails.
- It is not possible to use the IBM MQ queue connection properties function.
- No IBM MQ link functionality is available on that particular server:
- It is not possible to stop or start any IBM MQ links.
- It is not possible to stop or start any IBM MQ receiver channels.
- It is not possible to stop, start, or reset any IBM MQ sender channels.
- It is not possible to send messages to an IBM MQ queue manager. Any messages sent to a foreign bus based on an IBM MQ link remain on the transmission item stream for that IBM MQ link.
- It is not possible to receive messages from an IBM MQ queue manager.
- The inbound channel chains used by the IBM MQ link do not start.
- It is not possible to resolve indoubt sender channels.
- Attempts to use the Test connection functionality of the foreign bus connection that uses the IBM MQ link fail.
- It is not possible to fully delete an IBM MQ link, as any stored state about indoubt messages cannot be processed.
- No IBM MQ server functionality is available on that particular server:
- It is not possible to send messages to IBM MQ.
- It is not possible to receive messages from IBM MQ.
- The Test connection button does not work.
- No IBM MQ client link functionality works:
- It is not possible to stop or start any IBM MQ client links.
- It is not possible to send messages using an IBM MQ client link.
- It is not possible to receive messages using an IBM MQ client link.
- The inbound channel chains used by the IBM MQ link do not start.
- IBM MQ resource adapters do not start.
- IBM MQ Base Java functionality is unavailable.
- Any attempt to use any classes provided by IBM MQ fails.
Disable IBM MQ functionality in a WAS client process has the following effects:
- Any attempt to look up an IBM MQ messaging provider resource from a remote server that does not have IBM MQ functionality disabled fails.
- IBM MQ Base Java functionality is not available.
- Any attempt to make use of any classes provided by IBM MQ fails.
Tasks
- To disable IBM MQ functionality in a WAS process, complete one of the following steps:
- Use the administrative console, select the Disable IBM MQ check box on the required IBM MQ messaging provider panel.
- Use the manageWMQ administrative command with the disableWMQ flag.
In a single server environment, we can only disable IBM MQ at the server scope. When we have saved our changes and restarted the application server, all IBM MQ functionality is disabled on that server.
In a network deployment environment, we can disable IBM MQ at all scopes in order to give fine grained configuration flexibility:
- At the cell scope, all IBM MQ functionality is disabled on all application servers in the cell.
- At the node scope, all IBM MQ functionality is disabled on all application servers that are part of that node.
- At the cluster scope, all IBM MQ functionality is disabled on all application servers in that cluster.
- At the server scope, all IBM MQ functionality is disabled in that particular application server.
The value of the Disable IBM MQ check box at a higher scope takes precedence over the value at a lower scope. For example, if we do not select the check box at the server scope but do select it for a higher (for example, cell) scoped IBM MQ messaging provider, the value at the cell scope takes precedence and IBM MQ functionality is therefore disabled in all application servers in the cell, regardless of whether the check box is selected at the server scope. The changes take effect when we have saved them and restarted all affected processes in the cell.
- To disable IBM MQ functionality in a WAS client process, specify the custom property com.ibm.ejs.jms.disableWMQSupport=true.
Example
Consider the following example: A network deployment configuration with two nodes: node1 and node2. Node1 has two servers on it, server1 and server2. Node2 has a single server on it, server3. Server3 and server1 are part of a cluster, cluster1. The IBM MQ messaging provider panel at cluster1 scope has the IBM MQ disabled check box selected and the changes saved. When cluster1 has been restarted, all IBM MQ functionality is disabled on server3 and server1.
It is worth noting that it is possible to have IBM MQ functionality disabled on all processes in a network deployment configuration without all scopes having IBM MQ functionality disabled. Using the scenario in the previous example, if all nodes in the topology (deployment manager node, node1 and node2) have IBM MQ functionality disabled, then all the processes in the topology also have IBM MQ functionality disabled.
What to do next
When the server starts, it is possible to detect whether IBM MQ functionality has been disabled on that server because messages with the following IDs are output:
- WMSG2016I is output when the server starts if IBM MQ has been disabled.
- CWSIC3650I is output once for any configured IBM MQ links running on the server.
- CWSIC3713I is output once for any configured IBM MQ client links running on the server.
IBM MQ messaging provider Configure custom properties for the IBM MQ resource adapter JMS provider settings IBM MQ servers [Collection] IBM MQ server [Settings] IBM MQ client links [Collection] Foreign bus connections [Collection] IBM MQ links [Collection]