2011-09-12 68 views
3

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

在客户端机器,我们使用的是64位Linux JDK 25年6月1日

Java的版本

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)是否需要在那个目录中?

如果有人给我回答上述问题,我会很感激,我已经投入了很多时间在这个,但没有喜悦。

回答

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 

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

. /opt/mqm/java/bin/setjmsenv64 

采购合适的setjmsenv或setjmsenv64脚本后,你会得到什么样的结果?

+0

我在那里找不到文件。 ls -l命令/opt/mqm/java/lib/libmqjbnd.so
LS:/opt/mqm/java/lib/libmqjbnd.so:没有这样的文件或目录 –

+0

下面是是组件列表中有。 rpm -qa | grep的MQSeries的 MQSeriesSamples-7.0.1-6 MQSeriesClient-7.0.1-6 MQSeriesJava-7.0.1-6 MQSeriesRuntime-7.0.1-6 我不知道的是,这些部件应具备的文件或有不?? –

+0

根据评论更新我的回复。有问题的文件用于绑定模式连接,所以我不希望在客户端安装中找到它。有些东西正在寻找它似乎是本地行为的一部分,其中客户端和绑定模式都尝试过。我怀疑一个配置问题是什么导致它无法识别它是一个仅客户端安装。 –

2

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

0

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

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