java - 使用 CCDT 连接 Tomcat 到 MQ 服务器 | 64位

标签 java tomcat ibm-mq

我需要一些帮助,让我的 Tomcat 安装(基于 64 位 Java)连接到使用 CCDT 文件的 MQ 服务器。 MQ Server 是 64 位安装,版本为 7.0.0.9。截至目前,我在应用程序日志中收到以下错误消息-

Caused by: com.ibm.mq.jmqi.local.LocalMQ$3: CC=2;RC=2495;AMQ8598:
-----------------------------------------------------------------------
| Failed to load the WebSphere MQ native JNI library: 'mqjbnd'.
|
| The JVM attempted to load the platform native library 'mqjbnd',
| which was mapped to the filename: 'libmqjbnd.so'.
|
| When attempting to load the library, the JVM reported the error
| message:
| 'no mqjbnd in java.library.path'
|
| The JVM's bit-size is: '64'
|
| The library path which was used to locate this library was:
| '*** Configured java.library.path **********************************
|  "/opt/mqm/java/lib64"
| ********************************************************************'

我试过的步骤如下——

下载并安装 64 位 MQ 客户端

dspmqver -a
Name:        WebSphere MQ
Version:     7.0.1.11
CMVC level:  p701-111-130925
BuildType:   IKAP - (Production)
Platform:    WebSphere MQ for Linux (x86-64 platform)
Mode:        64-bit
O/S:         Linux 2.6.32-358.2.1.el6.x86_64
AMQ8351: WebSphere MQ Java environment has not been configured correctly.

作为我的 Tomcat 安装的 setenv.sh 文件的一部分,我配置了以下内容。 MQ 相关部分以红色突出显示

export JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/opt/mqm/java/lib64"
CLASSPATH=$CLASSPATH:/opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/java/lib/com.ibm.mqjms.jar

export ORACLE_HOME=/apps/oracle/product/11.1.0.7.CL
export LD_LIBRARY_PATH=/apps/oracle/product/11.1.0.7.CL/jdbc/lib/:/apps/install/tomcat-native/lib/

export MQCHLLIB=/apps/install/tomcat7/shared
export MQCHLTAB=AMQCLCHL.TAB
export MQ_JAVA_INSTALL_PATH=/opt/mqm/java
export MQ_JAVA_DATA_PATH=/var/mqm
export MQ_JAVA_LIB_PATH=/opt/mqm/java/lib64

export JAVA_HOME=/apps/install/java/jre1.7.0_45
export JAVA_BINDIR=$JAVA_HOME/bin
export PATH=$JAVA_BINDIR:$PATH

关于如何解决这个问题的想法?

最佳答案

Failed to load the WebSphere MQ native JNI library: 'mqjbnd'.

此错误消息告诉您 MQ 客户端库正在尝试以“绑定(bind)”(非客户端)模式连接到本地(非远程)队列管理器,但找不到所需的共享库。

您设置了 MQCHLLIB 和 MQCHLTAB,但 Java/JMS MQ 层并不关心。您需要使用 MQ JNDI 并在其中指定所有连接信息或添加一个条目以指向您的 CCDT。

create CF(CF_TEST)
alter CF(CF_TEST) TRANSPORT(CLIENT)
alter CF(CF_TEST) CCDT(file:///apps/install/tomcat7/shared AMQCLCHL.TAB)

有关使用 CCDT 文件的 MQ/JMS 的更多信息,请参阅:

http://www-01.ibm.com/support/docview.wss?uid=swg27020862

http://www.ibm.com/developerworks/websphere/library/techarticles/0506_barrago/0506_barrago.html

关于java - 使用 CCDT 连接 Tomcat 到 MQ 服务器 | 64位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22677896/

相关文章:

Java Math.pow(x,2.0) 与 Math.pow(x,2.0000001) 性能对比

java - lucene - 越接近标题开头的术语越重要

eclipse - Maven Webapp 在 Eclipse 中运行但运行模块的基本 java 代码?

ruby - 使用 Ruby 连接到 Websphere MQ Queue 进行测试

ejb-3.0 - 在MQ系列中配置 'retry delay'

java - PCFAgent 查询需要哪些权限?

java - Java 中的椭圆曲线私钥长度

java - 将鼠标悬停在缩略图上时显示完整图像作为弹出/叠加

tomcat - mvn tomcat 的默认服务器 :deploy?

java - autostratup tomcat的问题