简体   繁体   English

WSO2 EI 6.3.0无法使用JMS与IBM Websphere MQ v8连接

[英]WSO2 EI 6.3.0 unable to connect with IBM Websphere MQ v8 using JMS

I am trying to connect WSO2 Enterprise Integrator with IBM Websphere MQ v 8.0.0.5 by JMS Transport. 我正在尝试通过JMS Transport将WSO2 Enterprise Integrator与IBM Websphere MQ v 8.0.0.5连接。 The purpose is to be able to receive/publish messages on Queues that are made in IBM Websphere MQ via WSO2 Enterprise Integrator using JMS Protocol. 目的是能够使用JMS协议通过WSO2 Enterprise Integrator在IBM Websphere MQ中的队列上接收/发布消息。

Link: 链接:

I followed this link provided by WSO2 official documentation. 我遵循了WSO2官方文档提供的此链接 I followed all the steps exactly but when I deploy the JMS Listener Proxy, it becomes a faulty service and It shows me the following error on the console: 我完全遵循了所有步骤,但是当我部署JMS侦听器代理时,它变成了错误的服务,并且在控制台上向我显示了以下错误:

Error Stack Trace: 错误堆栈跟踪:

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 Service Code as mentioned in documentation: 代理服务代码,如文档中所述:

<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 File Configuration: Following are axis2 configurations for transport receiver and transport listener. Axis2文件配置:以下是传输接收器和传输侦听器的axis2配置。

Transport Receiver: 运输接收器:

    <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>

Transport Listener: 运输听众:

<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>

Research So far: 迄今为止的研究:

I tried googling it and apparently it is showing that It is not able to figure out the Queue Manager Name. 我尝试使用谷歌搜索,显然它表明它无法弄清队列管理器名称。 But I am unable to figure out where to add this information and how? 但我无法弄清楚在哪里添加这些信息以及如何添加? I tried adding it on the JMS Proxy Service Level Parameters but it didn't work. 我尝试在JMS代理服务级别参数上添加它但它不起作用。 So any insight would be helpful. 因此,任何见解都会有所帮助。

TroubleShooting 故障排除

For Troubleshooting, when I checked the Error logs of IBM Websphere MQ. 对于故障诊断,当我检查了IBM Websphere MQ的错误日志时。 IT was giving the following error: IT发出以下错误:

AMQ5534: User ID 'omerk' authentication failed

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

Solution: 解:

For my solution the authentication was not a requirement. 对于我的解决方案,身份验证不是必需的。 So I basically disabled the authentication of my queue manager by running the following commands. 因此,我基本上通过运行以下命令来禁用队列管理器的身份验证。

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

REFRESH SECURITY TYPE(CONNAUTH)

IT worked for me and solved my problem. IT为我工作并解决了我的问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM