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)
任何帮助都会非常有帮助
提前致谢
MQRC 2540 表示队列管理器无法识别客户端提供的通道名称。
在 MQ 中,对象名称区分大小写。确保您在 Camel 配置中提供的通道名称与您在 MQ Explorer 中创建的通道名称相匹配。