从 Camel 连接到 WebSphere MQ 服务器时"Channel not defined remotely"问题



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

AMQ9204:连接主机'10.0.0.122(1414)'被拒绝。[1=com.ibm.mq. jms . 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>

我创建服务器连接通道的方法是转到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)

任何帮助都会很有帮助

Thanks in advance

MQRC 2540表示队列管理器不能识别客户机提供的通道名称。

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

相关内容

最新更新