Post by email@example.com Post by Jason Williams Post by firstname.lastname@example.org
I'm in the process of creating a new JMS Connector Assembly line to connect to a MQ Server to retrieve MQ Messages. We are using JMS Server Type: WebSPHEREESB. I have put all of the server information and port, but when I try and do a simple connect, I get the following error: "java.lang.NoClassDefFourndError: com.ibm.websphee.sib.api.jms.JmsConnectionFactory". I'm not very familiar with the JMS Connector as this is my first time using such a connector. I also tried with the IBM_MQ Connector, which also connects to the same MQ Backend Server, but get a similar error: "java.lang.NoClassDefFoundError: come/ibm/mq/mjs/MQQueueConnectionFactory.
Would like to know if anyone has any insight into this type of connection when trying to get MQ messages from a WebSPhere MQ Messaging Provider that is uing a MQ VIP, versus using a standard Queue Manager.
The class references are MQ related. The MQ jars aren't provided with the TDI/SDI installation. Therefore you'll need to obtain the MQ jars and place them with the TDI classpath. I recently went through this when setting up SDI 7.2 to connect to MQ9. Here are my notes. The jars may vary based on the version of MQ Server.
1. Refer to 'IBM MQ 9.0 Client' at https://developer.ibm.com/messaging/mq-downloads/
2. Download the related java client files 'IBM MQ V9.0.5 CD Clients' -> '126.96.36.199-IBM-MQC-Redist-Java'
3. After unpacking the package, copy the lib/com.ibm.mq.allclient.jar and lib/jms.jar files to the SDI/jars/3rdparty/IBM/mq
java.lang.UnsupportedClassVersionError.JVMCFRE003 bad major version; class=com/ibm/mq/mjs/MQQueueConnectionFactory, offset=6. I only get this when I change the mode of the connector to: CallReply. If I do "AddOnly, Iterator, or lookup, I still get the "java.lang.NoClassDefFoundError: com/ibm/mq/jms/MQQueueConnectionFactory" error, even after placing all of the MQ Jars under TDI\jars\3rdParty\IBM\mq". If you can provide any additional insights, that would be helpful.
I normally see 'bad major version' messages when the jar is compiled with a later version than the Java version used by TDI. I'd look at updating the TDI JVM to one of the latest
The latest supported TDI JVM can be found on the Recommended Fixes page (http://www-01.ibm.com/support/docview.wss?uid=swg27010509). The specific jvm link will be found within your specific TDI section of the page. With any TDI JVM upgrade, you will need to reconfigure any resource which has copied items into the TDI JVM runtime. For example, the setup/configuration process of the ISAM PD Runtime which the TAM Combo adapter uses, would need to be reran so their resources are copied into the TDI JVM.
In regard to the java.lang.NoClassDefFoundError, I suspect it's just a missing jar from the classpath. In reviewing the MQ9 jars...I see the MQQueueConnectionFactory class is part of the com.ibm.mq.allclient.jar.