2016-04-04 4 views
1

У меня есть приложение с пружинным сердечником с конфигурацией ниже.Ошибка подключения MQ 2058

Я использую 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 Клиентское приложение. Эта программа может подключаться к этому диспетчеру очереди и считывать с нее сообщения.

Что еще может быть неправильным?

ответ

0

A 2058 предполагает, что имя менеджера очереди неверно. По словам технота от IBM, это самая распространенная причина, однако есть и другие.

Следующий отрывок взят из этого technote:

Ensure that the queue manager name is specified correctly on:

  • MQCONN API calls
  • QREMOTE object definitions
  • Client connection channel definitions

Debugging QCF, TCF, or Client connection problems are much more complex.

  • Ensure that the connection request is routed to the intended machine and queue manager.
  • Verify that the listener program is starting the channel on the correct queue manager.
  • Ensure that the specifications for the client environment variables are correct.
  • mqserver
  • mqchllib
  • mqchltab

If you are using a client channel table (amqclchl.tab), then verify that your client connection channel definition has the correct queue manager name (QMNAME) specified.

  • Specify the correct queue manager name.
  • Correct channel routing problems.
  • Correct inetd listener configuration problems.
  • Correct client related configuration problems.

 Смежные вопросы

  • Нет связанных вопросов^_^