Author |
Message
|
sarmahdi |
Posted: Mon Oct 31, 2011 6:04 am Post subject: same old UnsatisfiedLinkError: no mqjbnd05 in java-lib-path |
|
|
Newbie
Joined: 31 Oct 2011 Posts: 7
|
Hi all,
I am new to MQ and I want some info regarding an application that I am trying to run on my dev environment. The App uses the API to connect to MQQueueManager.
Code: |
MQEnvironment.hostname = hostName; //a remote host
MQEnvironment.channel = channel;
MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,MQC.TRANSPORT_MQSERIES);
//MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,MQC.TRAN//SPORT_MQSERIES_CLIENT);
|
and when I create a new MQQueueManager() it throws
Code: |
java.lang.UnsatisfiedLinkError: no mqjbnd05 in java.library.path |
Now i have searched thru the forum and the net and most of the posts say to put the jars in the classpath and have them the read write execute access. Now in linux we would
to the files but I am on an XP machine and We have restrictions on the things we can do like installing on the windows drive or execute anything from there.
How do you think I can do that on an XP.
Should I just :
1) set environment variables from the advanced setting on MyComputer Properties in ClassPath OR Path. (or both) (How do you set a SYSTEM and USER variable, i know only CLASSPATH and PATH)
2) I didnot find the mqjbnd05.dll in any of the ibm.mq jars that I have. So how will that solve the issue. Do i need to download any other jar.
I currently have
1. com-ibm-mq-jar
2. com-ibm-mqims-jar
3. connector-jar
4. com-ibm-iiop-jar
5. com-ibm-commonservices-jar
6. com-ibm-mqjni-jar
What else do i need to put in the ClassPath variable.
Also, this mqjbnd05 error shud only come if you have MQ installed in your machine. I use the API to connect to a remote MQ server so why do I have this error.
I will appreciate if anyone can educate me on this.
Thanks
Syed
Last edited by sarmahdi on Mon Oct 31, 2011 6:09 am; edited 1 time in total |
|
Back to top |
|
 |
mqjeff |
Posted: Mon Oct 31, 2011 6:05 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
You are putting the wrong properties.
Use the right properties for the right kind of address. You are mixing between bindings and client connections. |
|
Back to top |
|
 |
Vitor |
Posted: Mon Oct 31, 2011 6:10 am Post subject: Re: same old UnsatisfiedLinkError: no mqjbnd05 in java-lib-p |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
sarmahdi wrote: |
Also, this mqjbnd05 error shud only come if you have MQ installed in your machine. I use the API to connect to a remote MQ server so why do I have this error. |
Because you've told WMQ you want a binding (i.e. local) connection. If you want a connection to a queue mananger on a different box set that & it will use the other jar file not mqjbnd05 (obviously enough). _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
sarmahdi |
Posted: Mon Oct 31, 2011 6:19 am Post subject: |
|
|
Newbie
Joined: 31 Oct 2011 Posts: 7
|
Thanks for the reply guys
if you mean properties by this :
Code: |
//MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,MQC.TRAN//SPORT_MQSERIES_CLIENT); |
then its commented out. I aint using that one I am using the one above.
Code: |
MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,MQC.TRANSPORT_MQSERIES);
|
I am not sure how to actually set it to work to connect to remote MQ Manager. What should I change in my properties to tell it that I am not connecting locally.
Thanks |
|
Back to top |
|
 |
mqjeff |
Posted: Mon Oct 31, 2011 6:23 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
sarmahdi wrote: |
Thanks for the reply guys
if you mean properties by this :
Code: |
//MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,MQC.TRAN//SPORT_MQSERIES_CLIENT); |
then its commented out. I aint using that one I am using the one above.
Code: |
MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,MQC.TRANSPORT_MQSERIES);
|
|
yes.
You have these *BACKWARDS*. |
|
Back to top |
|
 |
Vitor |
Posted: Mon Oct 31, 2011 6:28 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
sarmahdi wrote: |
then its commented out. I aint using that one I am using the one above. |
Yes, I know. Even my Java is that competent. That is about the limit of my Java, but I know that.
sarmahdi wrote: |
I am not sure how to actually set it to work to connect to remote MQ Manager. |
What does the documentation say. Or, what led you to comment out that line and use the alternative?
sarmahdi wrote: |
What should I change in my properties to tell it that I am not connecting locally. |
Answer the question above about why you commented out that line, then answer this:
If an "binding" connection (as supplied by mqjbnd05) is only for a local queue manager, what is the other type of WMQ connection called? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
sarmahdi |
Posted: Mon Oct 31, 2011 6:48 am Post subject: |
|
|
Newbie
Joined: 31 Oct 2011 Posts: 7
|
its called client. I commented out cos the original code was like that and I dindt wanted to put anything new, I just put it in there cos I thought I needed to change it to a client but wasnt sure 100% so didnt used it, I was guessing I shud but I was under the impression ( forgive my lack of any knowledge of MQ systems) that client would mean a local client installation. (like a local oracle client)
I didnt knew .. untill you said binding means local . I thought binding meant connecting to a remote server. (I am sorry I was only setting it up and havent read the documentation on how to use the API totally)
In conclusion:
So you mean to say that as I was thinking, I need to use :
Code: |
MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,MQC.TRANSPORT_MQSERIES_CLIENT);
|
and not the other one.
Another last reason why i wasnt confident on this was that this is code that is running in production and I actually thought i shudnt change to anything new. (Why am I such a coward... )
Thanks.
Syed. |
|
Back to top |
|
 |
zpat |
Posted: Mon Oct 31, 2011 7:02 am Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
|
Back to top |
|
 |
Vitor |
Posted: Mon Oct 31, 2011 7:18 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
sarmahdi wrote: |
I was guessing I shud but I was under the impression ( forgive my lack of any knowledge of MQ systems) that client would mean a local client installation. (like a local oracle client) |
Guessing how things work often blows up in your face. Thinking that you use a local WMQ install like a local Oracle install is much like thinking you can drive a truck because the controls look similar to those in a car. You're mostly right, but there are some key differences that could result in you being upside down in a ditch.
sarmahdi wrote: |
havent read the documentation on how to use the API totally) |
You might want to take a few moments to do that before continuing to code. It only gets more complex.
sarmahdi wrote: |
Another last reason why i wasnt confident on this was that this is code that is running in production and I actually thought i shudnt change to anything new. |
There's no good reason why the production version doesn't use a binding connection. There are good and sufficient why you'd do that (and good & sufficient reasons why you wouldn't).
sarmahdi wrote: |
(Why am I such a coward... ) |
Lack of product knowledge. Spend some time with the documentation; understanding removes fear.  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
sarmahdi |
Posted: Mon Oct 31, 2011 7:21 am Post subject: |
|
|
Newbie
Joined: 31 Oct 2011 Posts: 7
|
zpat wrote: |
http://www-01.ibm.com/support/docview.wss?uid=swg21420737 |
I appreciate the help but as you can see my problem was different, I wasnt actually connecting to a local one so I didnt really need the dll it is saying. only my MQEnvironment was not getting fed the right props.
Why is it used in production is beyond me. but I am going to try to the new property and see if that works. that will take some time though.
but Thanks though. |
|
Back to top |
|
 |
|