我有一个 MQFTE 作业,将文件从一个代理移动到另一个代理。移动文件后,MQFTE 代理将文件拆分为单独的消息。
拆分完成后,需要通过用户出口将消息从一个队列移动到另一个队列。用户出口是通过实现 DestinationTransferEndExit 接口来实现的。
问题是我无法在绑定模式下获得 QueueManager 的句柄。如果我在代理 JVM 之外执行代码,它可以正常工作。
我收到以下错误:
[01/03/2015 13:46:31:107 SAST] 0000001d StdErr E com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2495'.
.
.
.
[01/03/2015 13:46:31:115 SAST] 0000001d StdErr E Caused by: com.ibm.mq.jmqi.local.LocalMQ$3: CC=2;RC=2495;AMQ8598: Failed to load the WebSphere MQ native JNI library: 'mqjbnd'.
.
.
.
[01/03/2015 13:46:31:117 SAST] 0000001d StdErr E Caused by: java.lang.UnsatisfiedLinkError: mqjbnd (Library is already loaded in another ClassLoader)
我执行的代码如下:
MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,
MQC.TRANSPORT_MQSERIES_BINDINGS);
MQQueueManager sourceMgr = new MQQueueManager(aQManagerName);
int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT ;
MQQueue source_queue = sourceMgr.accessQueue(aSourceQName, openOptions);