amqsbcg 没有从 MQ 客户端获取消息

amqsbcg not getting messages from MQ Client

我设法将消息从 MQ 客户端发送到 MQ 服务器。在 MQ 客户端中,我 amqsputc [queue_local] [name_qmgr] 并在输入消息后 return Sample AMQSPUT0 end 这意味着它已正确发送。但是当我尝试使用 amqsbcg [queue_local] [name_qmgr] 在 MQ 服务器中查看消息时,它会抛出一条错误消息:

Sample AMQSGET0 start
MQCONNX ended with reason code 2058

当队列管理器不存在或名称拼写错误时会出现此错误,但事实并非如此。

当我验证本地队列时它显示 CURDEPTH(1),这意味着队列中有一条消息(已送达)。但我不知道为什么它不允许我收到消息。在队列管理器错误文件中,它只显示如下内容:

the channel AMQ.... connection ended

我检查了我为此测试配置的频道:

AMQ8414: Display Channel details.
CHANNEL(A03ZCIWAS)                      CHLTYPE(SVRCONN)
ALTDATE(2017-09-07)                     ALTTIME(00.35.17)
CERTLABL( )                             COMPHDR(NONE)
COMPMSG(NONE)                        
DESCR(Server-connection to ...)
DISCINT(0)                              HBINT(300)
KAINT(AUTO)                             MAXINST(100)
MAXINSTC(90)                            MAXMSGL(4194304)
MCAUSER(nobody)                         MONCHL(QMGR)
RCVDATA( )                              RCVEXIT( )
SCYDATA( )                              SCYEXIT( )
SENDDATA( )                             SENDEXIT( )
SHARECNV(10)                            SSLCAUTH(REQUIRED)
SSLCIPH( )                              SSLPEER( )
TRPTYPE(TCP)                         
AMQ8414: Display Channel details.
CHANNEL(A03ZCIWAS)                      CHLTYPE(CLNTCONN)
AFFINITY(PREFERRED)                     ALTDATE(2017-09-07)
ALTTIME(02.40.42)                       CERTLABL( )
CLNTWGHT(0)                             COMPHDR(NONE)
COMPMSG(NONE)                           CONNAME(XX.XX.XX.XX)
DEFRECON(NO)                         
DESCR(Client connection to ....)
HBINT(300)                              KAINT(AUTO)
LOCLADDR( )                             MAXMSGL(4194304)
MODENAME( )                             PASSWORD( )
QMNAME(AEDMQ03A)                        RCVDATA( )
RCVEXIT( )                              SCYDATA( )
SCYEXIT( )                              SENDDATA( )
SENDEXIT( )                             SHARECNV(10)
SSLCIPH( )                              SSLPEER( )
TPNAME( )                               TRPTYPE(TCP)
USERID( )   

CONNAME(xx.xx.xx.xx) 是 MQServer 的正确 IP 地址,变量 MQSERVER 设置如下:

MQSERVER=[channel_svrconn]/tcp/'ip_adress_MQServer(1414)'

端口也很好

您提供的输出表明您正在执行 amqsget 而不是 amqsbcgc

我注意到您的问题提到 amqsbcg 而不是 amqsbcgc。示例名称末尾的 c 表示它是程序的 client 版本。

amqsbcg = Server Binding version
amqsbcgc = Client version

如果您执行 amqsgetamqsbcg 并指定一个非同一服务器本地的队列管理器,您将收到 2058.

解决方案是使用amqsgetcamqsbcgc代替amqsgetamqsbcg