As we upgrade MQ servers in the landscape, how will this effect PI's JMS adapters? What should we do if we have multiple MQ server versions in our landscape?
In this blog, we will take a look at some of the compatibility issues between the different releases of MQ when integrating with PI.
Background Info:
When using the PI technical adapters to integrate with 3rd party data sources, e.g. database and messaging systems, we must include the drivers, or libraries, of those systems in either aii_af_jmsproviderlib.sda for PI 7.0/XI 3.0 or com.sap.aii.adapter.lib.sda for PI 7.1+.
Most of the drivers for these systems are backward compatible. This means that when using the lastest driver version, we should also be able to access all previous versions of the same database or messaging system.
Unfortunately, this is not the case for IBM MQ.
Here, we have examined 3 different driver versions of MQ: 5.3, 6.0 and 7.0. Using the drivers of these different versions to access MQ server 5.3 and 7.0.
Required Drivers:
For the different releases of the MQ, different sets of drivers (client libraries or jar files) are required:
- 5.3:
com.ibm.mq.jar
com.ibm.mqjms.jar
- 6.0:
com.ibm.mq.jar
com.ibm.mqjms.jar
connector.jar
dhbcore.jar
rmm.jar
- 7.0:
CL3Export.jar
CL3Nonexport.jar
dhbcore.jar
rmm.jar
connector.jar
fscontext.jar
providerutil.jar
com.ibm.mqjms.jar
com.ibm.mq.headers.jar
com.ibm.mq.jar
com.ibm.mq.jmqi.jar
com.ibm.mq.pcf.jar
(It is possible a few of the above jar files may not be needed. We did verify which ones.)
Compatibility Findings:
Below are our finding when testing the different sets of drivers on a PI 7.1 system, accessing MQ 5.3 and MQ 7.0 servers. I do not believe the PI version will make any different for this test.
Recommendation:
MQ6 drivers or client libraries are most suitable when multiple versions of MQ servers are used in the landscape.
If only a single version of MQ server is used, then that version's driver or client libraries should be used.