1. 程式人生 > >Java連線MQ報錯,通道協商失敗 MQJE001: 完成程式碼為“2”,原因為“2059

Java連線MQ報錯,通道協商失敗 MQJE001: 完成程式碼為“2”,原因為“2059

我也曾經遇到過這個錯誤,當時佇列管理器,佇列,通道都一一建立,但就是報錯

HostName=192.168.8.46
Channel=CH1
QManager=WNMS3_QM

MQJE001: 完成程式碼為“2”,原因為“2059”。
com.ibm.mq.MQException: MQJE001: 完成程式碼為“2”,原因為“2059”。
at com.ibm.mq.MQManagedConnectionJ11.<init>(MQManagedConnectionJ11.java:229)
at com.ibm.mq.MQClientManagedConnectionFactoryJ11._createManagedConnection(MQClientManagedConnectionFactoryJ11.java:500)
at com.ibm.mq.MQClientManagedConnectionFactoryJ11.createManagedConnection(MQClientManagedConnectionFactoryJ11.java:541)
at com.ibm.mq.StoredManagedConnection.<init>(StoredManagedConnection.java:95)
at com.ibm.mq.MQSimpleConnectionManager.allocateConnection(MQSimpleConnectionManager.java:182)
at com.ibm.mq.MQQueueManagerFactory.obtainBaseMQQueueManager(MQQueueManagerFactory.java:870)
at com.ibm.mq.MQQueueManagerFactory.procure(MQQueueManagerFactory.java:756)
at com.ibm.mq.MQQueueManagerFactory.constructQueueManager(MQQueueManagerFactory.java:704)
at com.ibm.mq.MQQueueManagerFactory.createQueueManager(MQQueueManagerFactory.java:169)
at com.ibm.mq.MQQueueManager.<init>(MQQueueManager.java:594)
at TestSend.main(TestSend.java:32)
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2059;AMQ9503: 通道協商失敗。 [3=CH1

]
at com.ibm.mq.jmqi.remote.internal.system.RemoteConnection.initSess(RemoteConnection.java:1435)
at com.ibm.mq.jmqi.remote.internal.system.RemoteConnection.connect(RemoteConnection.java:991)
at com.ibm.mq.jmqi.remote.internal.system.RemoteConnectionPool.getConnection(RemoteConnectionPool.java:293)
at com.ibm.mq.jmqi.remote.internal.RemoteFAP.jmqiConnect(RemoteFAP.java:1371)
at com.ibm.mq.MQSESSION.MQCONNX_j(MQSESSION.java:924)
at com.ibm.mq.MQManagedConnectionJ11.<init>(MQManagedConnectionJ11.java:224)
... 10 more

解決辦法:經過我仔細分析,並上一些IBM官方網站檢視資料,應該是程式建立佇列管理器設定字元編碼問題造成的

MQEnvironment.CCSID = 1383;   //mq伺服器安裝預設的字符集編碼