あるエージェントから別のエージェントにファイルを移動する MQFTE ジョブを受け取りました。ファイルが移動されると、ファイルは MQFTE エージェントによって個々のメッセージに分割されます。
分割が完了したら、ユーザー出口によってメッセージをあるキューから別のキューに移動する必要があります。ユーザー出口は、DestinationTransferEndExit インターフェースを実装することによって実装されます。
問題は、バインディング モードで QueueManager へのハンドルを取得できないことです。Agent 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);