Websphere MQ客户端安装

时间:2011-09-12 19:23:09

标签: jms ibm-mq

我正在开发一个项目,其中MQ客户端(支持PAC 7)安装在一台64位Linux计算机上,并将消息发送到服务器。

在客户端计算机上,我们使用的是64位Linux JDK 1.6.25

java -version

 java version "1.6.0_25"

我有以下环境变量设置

 MQSERVER='my_channel/tcp/SRVD10995(1414)'
 MQ_INSTALL_ROOT=/var/mqm/
 MQ_JAVA_DATA_PATH=/var/mqm/
 MQ_JAVA_INSTALL_PATH=/opt/mqm/java/
 MQ_JAVA_LIB_PATH=/opt/mqm/java/lib64
 LD_LIBRARY_PATH=/opt/mqm/java/lib64
 CLASSPATH= /opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/java/lib/com.ibm.mqjms.jar:/opt/mqm/samp/jms/samples:/opt/mqm/samp/wmqjava/samples

但是当我运行以下命令时

dspmqver -p 6

对于本机库,我看到以下消息:

 Name:        IBM WebSphere MQ
 Version:     7.0.1.6
 CMVC Level:  k701-106-110721 mqjbnd=CC=2;RC=2495;AMQ8568: The native JNI library 'mqjbnd' was not found. [3=mqjbnd]::no mqjbnd in java.library.path
 Build Type:  Production

当我执行JMS代码连接到服务器时,我也收到相同的错误消息。我没有libmqjbnd.so不在/ opt / mqm / java / lib64文件夹中,甚至不在32位文件夹中。

我有几个问题:

1)如何解决客户端安装此问题? 2)库文件(.so)是否需要在该目录中?

如果有人向我提供上述问题的答案,我将感激不尽,我已经投入了很多时间,但没有快乐。

3 个答案:

答案 0 :(得分:2)

在这个具体问题here上有一个技术说明。如果在那里提供的解决方案无法解决您的问题,请告诉我们。

更新:我注意到你的CLASSPATH指向32位库和指向64位库的其他变量之间不匹配。 WMQ提供了为您as described in the Infocenter设置变量的脚本:

On a UNIX system, you can use the script setjmsenv (if you are using a 32-bit 
JVM) or setjmsenv64 (if you are using a 64-bit JVM) to set the environment
variables. On AIX, these scripts are in the /usr/mqm/java/bin directory and,
on HP-UX, Linux, and Solaris, they are in the /opt/mqm/java/bin directory.

许多人在他们的.profile中提供脚本。你试过这些吗?请记住,只需运行脚本......

/opt/mqm/java/bin/setjmsenv64

...不会导致在当前shell中设置env变量。必须使用点语法来源脚本,如下所示:

. /opt/mqm/java/bin/setjmsenv64

在获取适当的setjmsenv或setjmsenv64脚本后会得到什么结果?

答案 1 :(得分:2)

是否需要库取决于您希望如何向服务器发送消息。 WebSphere MQ允许您在绑定模式和客户端模式之间进行选择。绑定模式使用带有某些IPC的库,而客户端模式纯粹基于Java和TCP。 如果您的编程语言是Java,那么我会选择客户端模式。

答案 2 :(得分:0)

当您忘记设置主机,端口,...的属性时,也会出现此消息。 这是在独立MQ客户端的情况下。

MQEnvironment.hostname = "mqm.onZos.myCompany.com";
MQEnvironment.port = 1234;
MQEnvironment.channel = "SYSTEM.MYCH.NAME";