从camel连接到WebSphere MQ服务器时出现"未定义远程通道"问题

iga*_*cia 6 jms channel apache-camel ibm-mq

我已经配置了两个服务器,一个Active MQ和一个WebSphere MQ 8.0,为了相互通信我在中间配置了一个Apache Camel,它从Active MQ接收消息并将它们发送到WebSphere.现在,Camel能够从Active MQ服务器接收消息,但是当它尝试将它们发送到WebSphere MQ时,它会抛出错误:

引起:com.ibm.mq.jmqi.JmqiException:CC = 2; RC = 2540; AMQ9204:与主机'10 .0.0.122(1414)的连接被拒绝.[1 = com.ibm.mq.jmqi.JmqiException [CC = 2; RC = 2540; AMQ9520:未远程定义通道.[3 = channel.test]],3 = 10.0.0.122(1414),5 = RemoteConnection.analyseErrorSegment]

我能够将Camel与用户连接到WebSphere QueueManager,但不能创建通道,为了连接到WebSphere服务器,camel端的配置是:

    <bean id="weblogicConnectionFactory"
       class="com.ibm.mq.jms.MQConnectionFactory">
   <property name="hostName" value="10.0.0.122"/>
   <property name="port" value="1414"/>
   <property name="queueManager" value="TESTQ"/>
   <property name="channel" value="channel.test"/>
   <property name="transportType" value="1"/>
 </bean>

 <bean id="myProxyConnectionFactory" class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
   <property name="targetConnectionFactory" ref="weblogicConnectionFactory"/>
   <property name="username" value="administrator"/>
   <property name="password" value="control123!"/>
  </bean>

 <bean id="weblogicConfig"
       class="org.apache.camel.component.jms.JmsConfiguration">
   <property name="connectionFactory" ref="weblogicConnectionFactory"/>
   <property name="concurrentConsumers" value="10"/>
 </bean>

 <bean id="weblogic"
       class="org.apache.camel.component.jms.JmsComponent">
   <property name="configuration" ref="weblogicConfig"/>
 </bean>
Run Code Online (Sandbox Code Playgroud)

我创建服务器连接通道的方式是转到WebSphere MQ资源管理器,选择队列管理器,创建新的服务器连接通道,在MCA用户字段中设置适当的用户名.

作为@shashi在下面的回答中的建议,我使用以下输出运行命令DIS CHANNEL():

    1 : DIS CHANNEL('channel.test')
AMQ8414: Display Channel details.
   CHANNEL(channel.test)                   CHLTYPE(SVRCONN)
   ALTDATE(2015-07-22)                     ALTTIME(00.16.25)
   COMPHDR(NONE)                           COMPMSG(NONE)
   DESCR( )                                DISCINT(0)
   HBINT(300)                              KAINT(AUTO)
   MAXINST(999999999)                      MAXINSTC(999999999)
   MAXMSGL(4194304)                        MCAUSER(mqm)
   MONCHL(QMGR)                            RCVDATA( )
   RCVEXIT( )                              SCYDATA( )
   SCYEXIT( )                              SENDDATA( )
   SENDEXIT( )                             SHARECNV(10)
   SSLCAUTH(REQUIRED)                      SSLCIPH( )
   SSLPEER( )                              TRPTYPE(TCP)
Run Code Online (Sandbox Code Playgroud)

任何帮助都会非常有帮助

提前致谢

Sha*_*shi 2

MQRC 2540 表示队列管理器无法识别客户端提供的通道名称。

在 MQ 中,对象名称区分大小写。确保您在 Camel 配置中提供的通道名称与您在 MQ Explorer 中创建的通道名称相匹配。