ibm-mq - amqsbcg 未从 MQ 客户端获取消息

标签 ibm-mq

我设法从 MQ 客户端向 MQ 服务器发送消息。在 MQ 客户端中,我输入 amqsputc [queue_local] [name_qmgr] 并在输入消息后返回 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

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

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 表示它是该程序的客户端版本。

amqsbcg = Server Binding version
amqsbcgc = Client version

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

解决方案是使用 amqsgetcamqsbcgc 而不是 amqsgetamqsbcg

关于ibm-mq - amqsbcg 未从 MQ 客户端获取消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46147199/

相关文章:

java - 无法使用连接模式 'QUEUE-NAME' 和主机连接到队列管理器 'Client'

linux - 在 MQ (Linux) 的队列中转储消息

ibm-mq - 用于 Apple 芯片的 IBM MQ

java - MQ 重新连接不适用于 Wildfly。如何正确配置呢?

ibm-mq - WebSphere MQ q 程序读取/写入文件

c++ - put() 中忽略了 WebSphere MQ 6 消息分段选项?

java - WebSphere MQ 确认和回复队列

ibm-mq - 在 MQ 8.0.0.3 中通过 AMQP/MQ Light 确保交付

java.lang.ClassNotFoundException : com. ibm.disthub2.impl.client.SessionConfig

java - IBM MQ Java 类中的持久订阅