When to override the PROVIDERVERSION default setting

If a connection factory that was created in the JNDI namespace with a previous version of IBM MQ classes for JMS is used with the new version of IBM MQ classes for JMS, the PROVIDERVERSION property for the connection factory is set to the default value of unspecified and an algorithm is used to determine which IBM MQ messaging provider mode of operation is used. However, there are two cases where we must override the default selection for the PROVIDERVERSION property so that the IBM MQ classes for JMS can work correctly.

Note: The migration mode that is described in this topic is for migration from IBM WebSphere MQ Version 6.0 to IBM WebSphere MQ Version 7.0. It does not apply to migration from later releases.

IBM WebSphere MQ Version 6.0, WebSphere Application Server Version 6.0.x, and WebSphere Message Broker Version 6 are out of support, and therefore this topic is included only for reference purposes.

When the PROVIDERVERSION property is set to the default of unspecified, an algorithm is used to determine which mode of operation to use, as described in PROVIDERVERSION unspecified. However, you cannot use this algorithm in the following two scenarios.
  1. If WebSphere Message Broker and WebSphere Event Broker are in compatibility mode, you must specify a value for the PROVIDERVERSION property for WebSphere Message Broker and WebSphere Event Broker to work correctly.
  2. If we are using WebSphere Application Server Version 6.0.1, WebSphere Application Server Version 6.0.2, or WebSphere Application Server Version 6.1, connection factories are defined by using the WebSphere Application Server administrative console.

    In WebSphere Application Server, the default value of the BROKERVER property on a connection factory is V2. The default value for the BROKERVER property for connection factories that are created by using the JMS administration tool JMSAdmin or IBM MQ Explorer is V1. This property is now unspecified in IBM MQ.

If the BROKERVER property is set to V2, either because it was created by WebSphere Application Server or the connection factory has been used for publish/subscribe before, and has an existing queue manager that has a BROKERCONQ property defined (because it has been used for publish/subscribe messaging before), the IBM MQ messaging provider migration mode is used.

However, if we want the application to use peer-to-peer communication and the application is using an existing queue manager that has ever been used for publish/subscribe, and has a connection factory with BROKERVER set to 2, which is the default setting if the connection factory was created in WebSphere Application Server, the IBM MQ messaging provider migration mode is used. Using IBM MQ messaging provider migration mode in this case is unnecessary; use IBM MQ messaging provider normal mode instead. We can use one of the following methods to work around this:

  • Set BROKERVER to 1 or unspecified. The option that you choose depends on the application.
  • Set PROVIDERVERSION to 8, or 7, which are custom properties in WebSphere Application Server Version 6.1.

    Alternatively, use the client configuration property, or modify the queue manager connected so that it does not have the BROKERCONQ property set, or make the queue unusable.

Parent topic: Configure the JMS PROVIDERVERSION property