连接时拒绝连接:MQJE001:完成代码“2”,原因“2538”

Connection refused while connection : MQJE001: Completion Code '2', Reason '2538'

我正在尝试访问队列。

def mqProps = new Hashtable<String, Object>()
mqProps.put(MQConstants.CHANNEL_PROPERTY, 'CHANNEL')
mqProps.put(MQConstants.PORT_PROPERTY, PORT)
mqProps.put(MQConstants.HOST_NAME_PROPERTY, 'HOST')
mqProps.put(MQConstants.USER_ID_PROPERTY, 'myuser') // is it the correct property for the user? 
mqProps.put(MQConstants.PASSWORD_PROPERTY, 'mypassword') // is it the correct property for the password?

def qMgr = new MQQueueManager('QM', mqProps)

但是我遇到了以下错误

javax.script.ScriptException: com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2538'
...
Caused by: com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2538'.
...
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2538;AMQ9204: Connection to host 'HOST(PORT)' rejected.
...
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2538;AMQ9204: Connection to host 'HOST/address:PORT' rejected.
...
Caused by: java.net.ConnectException: Connection timed out: connect
...

线路发生错误:

def qMgr = new MQQueueManager('QM', mqProps)

你能解释一下这个问题的原因吗?非常感谢。

原因代码 2538 是 MQRC_HOST_NOT_AVAILABLE

您可以使用 IBM MQ 附带的 mqrc 命令行工具快速发现这一点。类型:

mqrc 2538

你会被告知:

    2538  0x000009ea  MQRC_HOST_NOT_AVAILABLE

或者,您可以在 IBM MQ 知识中心进行查找。

阅读知识中心中的解释将向您展示该问题的一些常见可能性。

  • 侦听器尚未在远程系统上启动。
  • 客户端通道定义中的连接名称不正确。
  • 当前网络不可用。
  • 防火墙阻止了端口或特定于协议的流量

也许最常见的错误是队列管理器上的侦听器 运行 使用的端口号与您在客户端应用程序连接详细信息中输入的端口号不同。

您没有在您的问题中向我们展示有关队列管理器上侦听器 运行 的任何详细信息,因此我们不得不将其留给您自己检查。