【问题标题】:Mq Connection error 2058MQ 连接错误 2058
【发布时间】:2016-04-04 09:11:38
【问题描述】:

我有一个带有以下配置的 spring 核心应用程序。

我正在使用 UserCredentialsConnectionFactoryAdapter、MQQueueConnectionFactory 和 jms-listener。

    <jms:listener-container container-type="default"
    connection-factory="userConnectionFactory" acknowledge="auto">
        <jms:listener destination="${QUEUE_NAME_IN_GEN}" ref="messageListener"
        method="onMessage" />
    </jms:listener-container>

    <bean id="userConnectionFactory"
    class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
        <property name="targetConnectionFactory">
            <ref bean="mqConnectionFactory" />
        </property>
        <property name="username" value="${MQ_USER_ID}" />
    </bean>

    <bean id="mqConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
    <property name="hostName">
        <value>${MQ_HOST_NAME}</value>
    </property>
    <property name="port">
        <value>${MQ_PORT}</value>
    </property>
    <property name="queueManager">
        <value>${QUEUE_MANAGER}</value>
    </property>
    <property name="transportType">
        <value>1</value>
    </property>
</bean>

在应用程序启动时,侦听器完美地启动了一台机器。 当我在不同的服务器上尝试使用相同的工件时,侦听器无法启动并出现以下错误:

[org.springframework.jms.listener.DefaultMessageListenerContainer#0-1] ERROR org.springframework.jms.listener.DefaultMessageListenerContainer.refreshConnectionUntilSuccessful(DefaultMessageListenerContainer.java:909) - Could not refresh JMS Connection for destination 'R.ABCDEF' - retrying in 5000 ms. Cause: MQJMS2005: failed to create MQQueueManager for 'myhost:dev'; nested exception is com.ibm.mq.MQException: MQJE001: An MQException occurred: Completion Code 2, Reason 2058
MQJE036: Queue manager rejected connection attempt

为了弄清楚这是否与第二台服务器上的 Unix 帐户权限问题有关,我编写了一个简单的 MQ 客户端应用程序。这个程序可以连接到这个队列管理器并从中读取消息。

还有什么问题?

【问题讨论】:

    标签: java spring ibm-mq mq


    【解决方案1】:

    2058 表明队列管理器名称不正确。根据 IBM 的技术说明,这是最常见的原因,但还有其他原因。

    以下摘录自此technote

    确保正确指定队列管理器名称:

    • MQCONN API 调用
    • QREMOTE 对象定义
    • 客户端连接通道定义

    调试 QCF、TCF 或客户端连接问题要复杂得多。

    • 确保将连接请求路由到预期的机器和队列管理器。
    • 验证侦听器程序是否在正确的队列管理器上启动通道。
    • 确保客户端环境变量的规范正确。
    • MQ 服务器
    • mqchllib
    • mqchltab

    如果您使用的是客户端通道表 (amqclchl.tab),请验证您的客户端连接通道定义是否指定了正确的队列管理器名称 (QMNAME)。

    • 指定正确的队列管理器名称。
    • 纠正通道路由问题。
    • 更正 inetd 侦听器配置问题。
    • 更正与客户端相关的配置问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-19
      • 2017-02-03
      相关资源
      最近更新 更多