How to support multiple versions of websphere mq? - jms

I have a Java application (which comunicate via JMS, connects using client mode) which need to support multiple versions of the websphere mq (v6,v7.1) (some clients want to remain on version 6 and others to upgrade to version 7). The problem can be solved if i will create two bundles with specific code/configuration for each version. But i want to avoid this. So there is a solution to avoid this problem?
For example to have the latest clients jar(v7) as dependency and work with older mq(v6) also or vice-versa?
Can somebody point me to some documentation which presents the compatibility between the client jars and mq versions.

Yes, MQ v7 clients can connect to MQ v6 queue manager. But note all features that are specific to V7 will not work when connecting V6 queue manager.
I would like remind you, MQ v6 is already out of support. You have to migrate to at least V7.0.1 and possibly latest fix pack.

Related

Is it possible for an IBM mq queue manager at version 7.5+ to send messages to a Websphere mq at version 7.0?

I'm looking at upgrading one end of two connected Websphere mq v7.0.1.0 queue managers to the latest version (v9.2 at time of writing). Is there any way to connect the two queue managers at different versions i.e. 7.0.1.0 <=> 9.2?
Initial investigation would suggest only v7.5+ queue managers can communicate with different versions. Are there alternative routes to making this work?

Can I upgrade my MQ version to 9.0 while still using WAS 8.5.5?

My employer has an application running on WAS server 8.5.5. It uses MQ client adapter to connect to a MQ setup on version 7. Now my employer is upgrading to version 9 on the MQ but want to retain the WAS server at 8.5.5. Is this possible? In one of the IBM articles I saw the following:
The IBM MQ Version 9.0 resource adapter cannot be deployed into earlier versions of WebSphere Application Server, as these versions are not Java™ EE 7 certified.
If your question is specifically on traditional WAS (rather than Liberty profile), then the answer is yes.
tWAS bundles a level of MQ resource adapter, and this bundled RA inherits the support lifecycle of the application server. [This support does not apply to other versions of the MQ resource adapter that have been manually applied to the tWAS installation, and so using the bundled RA is generally recommended.]
Any supported MQ client can communicate with any supported MQ queue manager, as either side will negotiate the version of MQ communication flows in use down to the mutually appropriate level. This means that the MQ 7.1 resource adapter can communicate with a version 9.0 queue manager, although of course any connections that this client makes will not be eligible to use functionality added to the product after 7.1.

Do Apache ActiveMQ client and server have to use the same jar file versions?

Can clients using v5.10.2 client jar files connect to an ActiveMQ v5.15.5 server?
Based on my research they will both follow the JMS v1.1 spec and so should work, though obviously missing out on some of the improvements in the newer version.
The use case is clients running older versions of Java and therefore limited to older client jar files.
Note: this implicitly answers the question but as it's not explicit am leaving my question here for somebody authoritative to answer explicitly.
JMS is not a protocol it is an API specification.
ActiveMQ client's use the OpenWire protocol which does offer cross version compatibility so Older 5.x clients should work with newer 5.x brokers. That said the combinations aren't tested so while in theory it can work in practice it is best to upgrade the clients along with the broker whenever possible.

Client jar file version for IBM MQ7 and MQ8

Our product will support IBM MQ7 and MQ8 based on client requirement. Now, we like to know latest client jar version that we may use for our application?
We would like to use JMS 1.1 specification. I have found following link for MQ 7.5 JAR-
http://www.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.dev.doc/q120070_.htm
Is it sufficient if we use above mentioned client jar to connect MQ 7 and MQ 8 server?
Application will use JRE 1.7 and WAS liberty 8.5.5.9.
If you are using WebSphere Liberty as your application server, then you will need to the MQ JCA Resource Adapter (MQ-RA) to make use of MQ JMS messaging. Liberty (unlike traditional WebSphere Application Server) does not ship a copy of the MQ-RA, but you can download and install one pretty easily and then link to it from within the Liberty server's server.xml configuration file. Here's a link to explain how to do this:
http://www-01.ibm.com/support/docview.wss?uid=swg21633761
Now, Liberty can use a copy of the WebSphere MQ V7.5.0.5 (or later) Resource Adapter, which only supports the JMS 1.1 API, and the Liberty feature you will want to enable with that version is "wmqJmsClient-1.1".
However, I would suggest you consider the latest version of the IBM MQ-RA (at the time of writing this is V9.0.0.0). The MQ V8.0.0.3 and V9 RAs support both the JMS 1.1 "classic" API as well as the newer 2.0 "simplified" API. Therefore you can use the newer MQ-RA levels but your JMS 1.1 application will still work perfectly fine. If using a V8 or V9 IBM MQ-RA, then the Liberty feature to enable to is "wmqJmsClient-2.0".
The V7.5, V8 and V9 MQ Resource Adapters can connect to any MQ queue manager version; the major or maintenance versions between the JMS client and the MQ server do not need to match.
For reference, here are a couple of links I recommend reading over as well:
http://www.ibm.com/support/knowledgecenter/SSFKSJ_9.0.0/com.ibm.mq.dev.doc/q031610_.htm
http://www.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.wlp.nd.doc/ae/twlp_dep_msg_wmq.html
http://www.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.wlp.nd.doc/ae/rwlp_restrict.html
I hope this helps!

Version of MQ in WAS 8.5.5

I'm trying to migrate an EJB application from WAS 6 to WAS 8.5.5 and seems to not work entirely, doesn't respond correctly to the message-selector filter I'm using in ejb-jar.xml.
Can somebody tell me the version of MQ server supported in WAS 8.5.5 ?
The version of the MQ client (in the MQ Resource Adapter form) in WAS 8.5.5 is MQ 7.1. This page provides the list of the exact version of the client for each WAS level: https://www-304.ibm.com/support/docview.wss?rs=171&uid=swg21248089
The MQ server supported can be any currently supported version i.e. you can use MQ Server 8/7.5./7.1/7/6 etc with a MQ 7.1 client. However, there are features that might not be available if you are using a certain combination client/server.
For your issue it is probably best to post a new question with the actual error you are seeing.
If you have a Websphere MQ full installation, MQ 8.0 is already out but please check the following information about WAS 8.5 and MQ 7.5: http://www-01.ibm.com/support/knowledgecenter/prodconn_1.0.0/com.ibm.scenarios.wmqwasmig2v85.doc/topics/ts_mqv7cons.htm?lang=el
There are two alternatives depending on what you want to migrate before the other : MQ or WAS.

Resources