Enterprise Integration Zone is brought to you in partnership with:

Tharindu holds a first class honors degree in computer science and engineering from the University of Moratuwa, Sri Lanka. He also received a professional postgraduate diploma in marketing from the CIM, UK, where he is an associate member. Tharindu currently works at WSO2. He is a Associate Tech Lead and a member of the data technologies management committee, focusing on big data, analytics, and business activity monitoring (BAM). Tharindu is a DZone MVB and is not an employee of DZone and has posted 15 posts at DZone. You can read more from them at their website. View Full User Profile

Solving the IBM MQ Client Error – No mqjbnd in java.library.path

03.28.2013
| 3581 views |
  • submit to reddit
If you come across this issue when you try to connect a JMS client to IBM MQ (v7.0.x.x), this has nothing to do with any environment variables or VM arguments, at least it wasn’t for me (There are quite a lot of those articles out there, that makes you think this is the problem).

The fix for this will has to be done on the server side. Open the MQ Explorer. Now, if you have not done so already, you need to add your JNDI directory to JMS Administered Objects. In the Connection Factories,  you will note that your factories’ transport type is actually “Binding”. You need to right-click and go to the switch transport option which will have the “MQ Client” option that needs to be selected. Now the transport type will be “Client”. Do this to all Connection Factories that you are connecting to. Now, your configuration will look something like below:

Screen Shot 2013-03-20 at 5.28.49 PM

Now, run your client again, and the error should go away. HTH.

Published at DZone with permission of Tharindu Mathew, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Magnus Palmér replied on Fri, 2013/03/29 - 7:04pm

Just a quick comment, what you say actually depends upon if you are using the client to connect to a remote queuemanager or if you connect to a local queuemanager.

Client to a remote queuemanager, then you are correct.

But if you have a Java client that connects to a local queuemanger you need to make sure that the mqjbnd.dll actually is in the java library path.

What sometimes confuses is that the needed JMS jar-file  "com.ibm.mqjms.jar" is in the MQ_JAVA_INSTALL_PATH\lib but the 64-bit dll is located under mqjbnd.dll\lib64

You should be fine by adding the MQ_JAVA_LIB_PATH to the java.library.path (for instance using -Djava.libarary.path="%MQ_JAVA_LIB_PATH%"

(On *nix you need to run the appropriate setjmsenv(64) )

IBM WMQ Info Center link 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.