WSO2 EI 6.3.0 не может соединиться с IBM Websphere MQ v8 с помощью JMS - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь соединить WSO2 Enterprise Integrator с IBM Websphere MQ v 8.0.0.5 с помощью JMS Transport. Цель состоит в том, чтобы иметь возможность получать / публиковать сообщения в очередях, которые создаются в IBM Websphere MQ через WSO2 Enterprise Integrator с использованием протокола JMS.

Ссылка:

Я перешел по этой ссылке , предоставленной официальной документацией WSO2. Я точно выполнил все шаги, но при развертывании прокси-сервера JMS Listener он становится неисправной службой, и на консоли отображается следующая ошибка:

Ошибка трассировки стека:

com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED').
    at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:203)
    at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:412)
    at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:8475)
    at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:7913)
    at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl._createConnection(JmsConnectionFactoryImpl.java:299)
    at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:236)
    at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6024)
    at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:136)
    at com.ibm.mq.jms.MQQueueConnectionFactory.createConnection(MQQueueConnectionFactory.java:209)
    at org.apache.axis2.transport.jms.JMSUtils.createConnection(JMSUtils.java:786)
    at org.apache.axis2.transport.jms.JMSListener.checkJMSConnection(JMSListener.java:155)
    at org.apache.axis2.transport.jms.JMSListener.startEndpoint(JMSListener.java:99)
    at org.apache.axis2.transport.jms.JMSListener.startEndpoint(JMSListener.java:54)
    at org.apache.axis2.transport.base.AbstractTransportListenerEx.startListeningForService(AbstractTransportListenerEx.java:154)
    at org.apache.axis2.transport.base.AbstractTransportListener.internalStartListeningForService(AbstractTransportListener.java:213)
    at org.apache.axis2.transport.base.AbstractTransportListener$2.serviceAdded(AbstractTransportListener.java:126)
    at org.apache.axis2.transport.base.tracker.AxisServiceTracker.serviceAdded(AxisServiceTracker.java:212)
    at org.apache.axis2.transport.base.tracker.AxisServiceTracker$1.serviceUpdate(AxisServiceTracker.java:98)
    at org.apache.axis2.engine.AxisConfiguration.notifyObservers(AxisConfiguration.java:666)
    at org.apache.axis2.engine.AxisConfiguration.addServiceGroup(AxisConfiguration.java:420)
    at org.apache.axis2.engine.AxisConfiguration.addService(AxisConfiguration.java:350)
    at org.apache.synapse.core.axis2.ProxyService.buildAxisService(ProxyService.java:750)
    at org.wso2.carbon.proxyadmin.service.ProxyServiceAdmin.addProxyService(ProxyServiceAdmin.java:273)
    at org.wso2.carbon.proxyadmin.service.ProxyServiceAdmin.addProxy(ProxyServiceAdmin.java:710)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

Сервисный код прокси, как указано в документации:

<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="MyJMSProxy"
       transports="jms"
       startOnLoad="true"
       trace="disable">
   <description/>
   <target>
      <inSequence>
         <log level="full"/>
         <drop/>
      </inSequence>
   </target>
   <parameter name="transport.jms.Destination">LocalQueue1</parameter>
</proxy>

Конфигурация файла Axis2: Ниже приведены конфигурации axis2 для транспортного приемника и транспортного слушателя.

Транспортный приемник:

    <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
  <parameter name="default" locked="false">
    <parameter name="java.naming.factory.initial" locked="false">com.sun.jndi.fscontext.RefFSContextFactory</parameter>
    <parameter name="java.naming.provider.url" locked="false">file:/C:/jndidirectory</parameter>
    <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">MyQueueConnectionFactory</parameter>
    <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
    <parameter name="transport.jms.UserName" locked="false">omerk</parameter>
    <parameter name="transport.jms.Password" locked="false">password</parameter>
  </parameter>


  <parameter name="myQueueConnectionFactory1" locked="false">
    <parameter name="java.naming.factory.initial" locked="false">com.sun.jndi.fscontext.RefFSContextFactory</parameter>
    <parameter name="java.naming.provider.url" locked="false">file:/C:/jndidirectory</parameter>
    <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">MyQueueConnectionFactory</parameter>
    <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
    <parameter name="transport.jms.UserName" locked="false">omerk</parameter>
    <parameter name="transport.jms.Password" locked="false">password</parameter>
  </parameter>
</transportReceiver>

Транспортный приемник:

<transportSender name="jms" class="org.apache.axis2.transport.jms.JMSSender">
  <parameter name="default" locked="false">
    <parameter name="vender.class.loader.enabled">false</parameter>
    <parameter name="java.naming.factory.initial" locked="false">com.sun.jndi.fscontext.RefFSContextFactory</parameter>
    <parameter name="java.naming.provider.url" locked="false">file:/C:/jndidirectory</parameter>
    <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">MyQueueConnectionFactory</parameter>
    <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
    <parameter name="transport.jms.UserName" locked="false">omerk</parameter>
    <parameter name="transport.jms.Password" locked="false">password</parameter>
  </parameter>

  <parameter name="myQueueConnectionFactory1" locked="false">
    <parameter name="java.naming.factory.initial" locked="false">com.sun.jndi.fscontext.RefFSContextFactory</parameter>
    <parameter name="java.naming.provider.url" locked="false">file:/C:/jndidirectory</parameter>
    <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">MyQueueConnectionFactory</parameter>
    <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
    <parameter name="transport.jms.UserName" locked="false">omerk</parameter>
    <parameter name="transport.jms.Password" locked="false">password</parameter>
  </parameter>
</transportSender>

Исследования Пока:

Я попытался найти его в Google, и, очевидно, он показывает, что он не может определить имя диспетчера очереди. Но я не могу понять, где добавить эту информацию и как? Я попытался добавить его в Параметры уровня обслуживания JMS-прокси, но это не сработало. Так что любое понимание будет полезно.

1 Ответ

0 голосов
/ 21 марта 2019

* 1002 возможных неисправностей *

Для устранения неполадок, когда я проверял журналы ошибок IBM Websphere MQ. ИТ выдавал следующую ошибку:

AMQ5534: User ID 'omerk' authentication failed

EXPLANATION:
The user ID and password supplied by the 'carbon.bootstrap.Bootstrap' program
could not be authenticated. 

Решение:

Для моего решения аутентификация не была обязательной. Поэтому я в основном отключил аутентификацию моего администратора очередей, выполнив следующие команды.

ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(NONE)

REFRESH SECURITY TYPE(CONNAUTH)

ЭТО сработало для меня и решило мою проблему.

...