我有兩個Linux服務器,一個與MQ服務器8.0.0.6版本,另一個安裝在MQ客戶端8.0.0.4。部署在客戶端(在WebSphere Application)的應用程序是無法連接到MQ服務器,它給了我一個錯誤,指出:無法從MQ客戶端連接到MQ QMGR(客戶端模式)
JMSWMQ0018: Failed to connect to queue manager 'AEDMQ03A' with connection mode 'Client' and host name 'hostname(1414)'
我隊列管理AEDMQ03A運行MQ服務器的驗證, AEDMQ03A偵聽端口1414上運行,我也可以建立從客戶機到服務器通過telnet MQhost(在MQSERVER)的連接1414
我查QMGR AEDMQ03A渠道與:
DISPLAY CHANNEL(AEDMQ03A,*) ALL
但我沒有找到任何渠道m AEDMQ03A到MQ客戶端主機。我知道,創建頻道的命令是:
DEFINE CHANNEL(JAVA.CHANNEL) CHLTYPE(SVRCONN) TRPTYPE(TCP)
在它會像DEFINE CHANNEL(AEDMQ03A.X) CHLTYPE(Y) TRPTYPE(TCP)
這種特殊情況下,但我不太清楚什麼對X變量類型,因爲在MQ客戶端不存在qmgrs創建。如果我想要從MQ客戶端連接到MQServer,我不知道應該使用哪種通道類型。
我創建了一個本地隊列(QUEUE_TEST),以測試從MQ客戶端到qmanager AEDMQ03A的MQ服務器的連接。我做了以下內容:
1)啓動AEDMQ03A隊列管理器,也取得了一定的監聽器啓動過
2)使用以下命令創建的SVRCONN通道:
DEFINE CHANNEL(A03ZCIWAS) CHLTYPE(SVRCONN) TRPTYPE(TCP)
在客戶端:
set the MQSERVER=A03ZCIWAS/TCP/'ip_adress_MQServer(1414)'
,然後當我與./amqsputc QUEUE_TEST AEDMQ03A
嘗試它給我的錯誤:
MQCONNX ended with reason code 2035
我知道這個錯誤是權限的問題,我試着用setmqaut -m AEDMQ03A -t qmgr -g mqm +alladm +set
解決它,但它仍然給了我同樣的錯誤。
你在客戶端指定什麼渠道。通道在SVRCONN類型的隊列管理器上定義。在客戶端上指定連接時要使用的頻道名稱。在某些情況下,您可以使用客戶端通道定義表(CCDT),該表是一個二進制文件,其中包含引用爲CLNTCONN通道的內容,但不需要在隊列管理器上創建它們。 – JoshMc
如果您想查看哪些頻道正在運行,您可以使用類似「DIS CHS(*)」的命令。 – JoshMc
在隊列管理器上檢查'/ var/mqm/qmgrs/AEDMQ03A/errors/AMQERR01.LOG'下的日誌,看看在客戶端嘗試連接時是否收到錯誤。它可能是「找不到頻道」或類似的東西。 – JoshMc