MQ Resource Adapter and MQ Exits

It is always interesting to see what IBM Support thinks of issues and their resolution. 🙂

Case in point: https://developer.ibm.com/messaging/2017/08/01/using-channel-exits-jee-application-servers/

Background: Several months ago, a long-time customer of MQ Authenticate User Security Exit (MQAUSX) was deploying a JBoss V7 server and needed to configure the MQAUSX client-side security exit to be used for authentication to the queue manager where the MQAUSX server-side security exit is located.

I had the customer follow the standard JEE method of updating the CLASSPATH but MQ complained that the client-side security exit could not be found. For days and days, we tried every combination of CLASSPATH, PATH, etc that I could think to get MQ to find the MQAUSXJ.jar file. But it always failed.

The thing that was becoming very clear, when a JEE application uses the MQ Resource Adapter (aka wmq.jmsra.rar), the environment becomes a closed system for MQ related items. I got the bright idea of hacking the MQ Resource Adapter and putting the MQAUSXJ.jar inside it then re-bundling the MQ Resource Adapter. The customer deployed the ‘new and improved’ MQ Resource Adapter and everything worked. 🙂

The only problem, the customer did not liked the idea of hacking the MQ Resource Adapter and inserting the MQAUSXJ.jar file into it. So they opened a PMR with IBM.

As noted in the IBM blog posting, IBM Support came up with 3 solutions. The only viable solution was the first option of setting the JVM environment variable of com.ibm.mq.cfg.ClientExitPath.JavaExitsClasspath.

i.e. Windows
com.ibm.mq.cfg.ClientExitPath.JavaExitsClasspath=C:/Capitalware/MQAUSX/MQAUSXJ.jar

i.e. Unix/Linux
com.ibm.mq.cfg.ClientExitPath.JavaExitsClasspath=/var/mqm/exits64/MQAUSXJ.jar

I have updated the MQAUSX manual to reflect this information.

IBM Support’s description of the 2nd customer isn’t exactly correct (they were using both send and receive exits). This customer was using WAS (WebSphere Application Server) with the MQ Resource Adapter and wanted to use MQ Channel Encryption (MQCE) for both send and receive exits.

At first, my brain did not connect the JBoss V7 channel security exit issues with this new issue of WAS channel send and receive exits not working. I didn’t make the connection that both customers were using the MQ Resource Adapter. So, the customer opened a PMR with IBM and basically received the same response as the other customer received and then the bells went off in my head. (MQ Resource Adapter is a closed system as it relates to MQ items.)

I have updated the MQCE manual to reflect this information.

i.e. Windows
com.ibm.mq.cfg.ClientExitPath.JavaExitsClasspath=C:/Capitalware/MQCE/MQCEJ.jar

i.e. Unix/Linux
com.ibm.mq.cfg.ClientExitPath.JavaExitsClasspath=/var/mqm/exits64/MQCEJ.jar

So, here’s the bottom-line: if you use the MQ Resource Adapter (aka wmq.jmsra.rar) in your JEE application and want to also use MQ exits then you need to add the JVM environment variable of com.ibm.mq.cfg.ClientExitPath.JavaExitsClasspath with the path and filename of the JAR file that contains the classes for the MQ exits.

Regards,
Roger Lacroix
Capitalware Inc.

This entry was posted in Capitalware, IBM MQ, Java, JMS, Linux, MQ Authenticate User Security Exit, MQ Channel Encryption, Unix, Windows.

Comments are closed.