首页 > 解决方案 > 连接时连接被拒绝:MQJE001:完成代码“2”,原因“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)

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

标签: jmsibm-mq

解决方案


原因代码 2538 是MQRC_HOST_NOT_AVAILABLE

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

mqrc 2538

你会被告知:

    2538  0x000009ea  MQRC_HOST_NOT_AVAILABLE

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

阅读 Knowledge Center 中的解释将向您展示该问题的许多常见可能性。

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

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

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


推荐阅读