WAS连接MQ以及JNI查找的问题

WAS是通过JNI的方式连接MQ,对于JNI连接的问题我们都可以按以下方式检查。

1)首先要求须虚拟机和MQ都是64bit或32bit,不可混用。
java -version
如果显示的版本中包含了64bit的字样,则是64位的java,否则是32位的。
dump -X32_64 -ov /usr/mqm/java/lib64/libmqjbnd05.so|grep Magic
或 file libmqjbnd05.so
查看对应的lib是64bit还是32bit

2)检查CLASSPATH是否有对应的jar包。
可以通过打印System.getProperties("java.class.path")确认。

3)检查LIBPATH是否有对应的so文件
env|grep LIBPATH(AIX)
env|grep LD_LIBRARY_PATH(linux)
也可通过打印System.getProperties("java.library.path")确认。java.library.path也可以通过kill -3查看javacore文件


具体到WAS连接MQ如果报错无法找到MQ的CLASS,则按如下的顺序检查:
(1)检查WAS版本是64位还是32位:
/usr/IBM/WebSphere/AppServer/java/bin/java -version

如果显示的版本中包含了64bit的字样,则是64位的WAS,否则是32位的。

(2)检查/usr/IBM/WebSphere/AppServer/lib 目录下是否已包含了MQ的类com.ibm.mq.jar ,以及 libmqjbnd05.so
如果没有,则请从MQ安装目录下拷贝:
cp /usr/mqm/java/lib/com.ibm.mq.jar /usr/IBM/WebSphere/AppServer/lib
cp /usr/mqm/java/lib64/libmqjbnd05.so /usr/IBM/WebSphere/AppServer/lib

(3)修改/usr/IBM/WebSphere/AppServer/profile//bin/setupCmdLine.sh 中的AIX启动环境变量部分,增加
LIBPATH=$LIBPATH:/usr/mqm/lib64

(4)检查java.library.path中是否包含系统libpath(例如/usr/lib/)以及是否有MQ的so文件,如果有使用dltmqlnk /usr/lib/命令删除。参考:[url]http://www.mqseries.net/phpBB2/viewtopic.php?t=54232&sid=2eff95d42dc0158e0e1d1a71a0e3bdf1[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值