[
https://issues.apache.org/jira/browse/AMQ-2963?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12974348#action_12974348
]
Peter Chandler commented on AMQ-2963:
-------------------------------------
Help, Hit the same issue:
<jmsBridgeConnectors>
<jmsQueueConnector name="LargeCompanytoActiveMQBridge"
outboundQueueConnectionFactory="#remoteFactory" >
<inboundQueueBridges>
<inboundQueueBridge inboundQueueName="QUEUE1" />
</inboundQueueBridges>
</jmsQueueConnector>
</jmsBridgeConnectors>
<bean id="remoteFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
<property name="transportType" value="1"/>
<property name="hostName" value="HostName"/>
<property name="port" value="port#"/>
<property name="queueManager" value="queue.manager.1"/>
<property name="channel" value="CHANNEL1"/>
</bean>
When I send data to QUEUE1 on Websphere MQ I get this error in ActiveMQ.
2010-12-22 13:56:43,634 | INFO | JMS Connector LargeCompanytoActiveMQBridge
Started | org.apache.activemq.network.jms.JmsConnector | main
// ...
2010-12-22 13:56:59,820 | ERROR | failed to forward message on attempt: 1
reason: com.ibm.msg.client.jms.DetailedInvalidDestinationException: JMSCMQ0005:
The destination name '://QUEUE1' was not valid. The destination name specified
does not conform to published destination syntax. Correct the specified
destination name and try again. message:
JMSMessage class: jms_text
JMSType: null
JMSDeliveryMode: 2
JMSExpiration: 0
JMSPriority: 4
JMSMessageID: ID:414d512071756575652e6d616e6167657835114d06a30020
JMSTimestamp: 1293044219816
JMSCorrelationID: null
JMSDestination: <ERROR>
JMSReplyTo: null
JMSRedelivered: false
JMSXAppID: amqsput
JMSXDeliveryCount: 1
JMSXUserID: mqm
JMS_IBM_Character_Set: UTF-8
JMS_IBM_Encoding: 273
JMS_IBM_Format: MQSTR
JMS_IBM_MsgType: 8
JMS_IBM_PutApplType: 6
JMS_IBM_PutDate: 20101222
JMS_IBM_PutTime: 18565978
test | org.apache.activemq.network.jms.DestinationBridge | DispatchThread: 1
com.ibm.msg.client.jms.DetailedInvalidDestinationException: JMSCMQ0005: The
destination name '://QUEUE1' was not valid. The destination name specified does
not conform to published destination syntax. Correct the specified destination
name and try again.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at
com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:313)
at
com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:388)
at
com.ibm.msg.client.wmq.common.internal.WMQDestinationURIParser.setUri(WMQDestinationURIParser.java:524)
at
com.ibm.msg.client.wmq.common.internal.WMQDestination.<init>(WMQDestination.java:3148)
at
com.ibm.msg.client.wmq.common.internal.WMQDestination.<init>(WMQDestination.java:3104)
at
com.ibm.msg.client.wmq.factories.WMQFactoryFactory.createProviderDestination(WMQFactoryFactory.java:444)
at
com.ibm.msg.client.jms.admin.JmsDestinationImpl.setProviderDestination(JmsDestinationImpl.java:333)
at
com.ibm.msg.client.jms.admin.JmsDestinationImpl.initialise(JmsDestinationImpl.java:231)
at
com.ibm.msg.client.jms.admin.JmsDestinationImpl.<init>(JmsDestinationImpl.java:196)
at
com.ibm.msg.client.jms.admin.JmsJndiDestinationImpl.<init>(JmsJndiDestinationImpl.java:129)
at com.ibm.mq.jms.MQDestination.<init>(MQDestination.java:191)
at
com.ibm.msg.client.wmq.factories.admin.WMQJmsFactory.createDestination(WMQJmsFactory.java:125)
at
com.ibm.msg.client.jms.internal.JmsMessageImpl.providerDestToJmsDest(JmsMessageImpl.java:2111)
at
com.ibm.msg.client.jms.internal.JmsMessageImpl.getJMSDestination(JmsMessageImpl.java:686)
at com.ibm.jms.JMSMessage.getJMSDestination(JMSMessage.java:605)
at
org.apache.activemq.ActiveMQMessageTransformation.copyProperties(ActiveMQMessageTransformation.java:206)
at
org.apache.activemq.ActiveMQMessageTransformation.transformMessage(ActiveMQMessageTransformation.java:188)
at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1720)
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:231)
at
org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:300)
at
org.apache.activemq.ActiveMQQueueSender.send(ActiveMQQueueSender.java:111)
at
org.apache.activemq.network.jms.QueueBridge.sendMessage(QueueBridge.java:80)
at
org.apache.activemq.network.jms.DestinationBridge.onMessage(DestinationBridge.java:129)
at
com.ibm.mq.jms.MQMessageConsumer$FacadeMessageListener.onMessage(MQMessageConsumer.java:399)
at
com.ibm.msg.client.jms.internal.JmsMessageConsumerImpl$JmsProviderMessageListener.onMessage(JmsMessageConsumerImpl.java:904)
at
com.ibm.msg.client.wmq.internal.WMQAsyncConsumerShadow.honourNoLocal(WMQAsyncConsumerShadow.java:551)
at
com.ibm.msg.client.wmq.internal.WMQAsyncConsumerShadow.consumer(WMQAsyncConsumerShadow.java:385)
at
com.ibm.mq.jmqi.remote.internal.RemoteAsyncConsume.driveConsumer(RemoteAsyncConsume.java:1523)
at
com.ibm.mq.jmqi.remote.internal.RemoteDispatchThread.run(RemoteDispatchThread.java:394)
at
com.ibm.msg.client.commonservices.workqueue.WorkQueueItem.runTask(WorkQueueItem.java:209)
at
com.ibm.msg.client.commonservices.workqueue.SimpleWorkQueueItem.runItem(SimpleWorkQueueItem.java:100)
at
com.ibm.msg.client.commonservices.workqueue.WorkQueueItem.run(WorkQueueItem.java:224)
at
com.ibm.msg.client.commonservices.workqueue.WorkQueueManager.runWorkQueueItem(WorkQueueManager.java:298)
at
com.ibm.msg.client.commonservices.j2se.workqueue.WorkQueueManagerImplementation$ThreadPoolWorker.run(WorkQueueManagerImplementation.java:1220)
> JMSBridgeConnectors does not work with IBM MQ and ActiveMQ 5.4.0
> ----------------------------------------------------------------
>
> Key: AMQ-2963
> URL: https://issues.apache.org/jira/browse/AMQ-2963
> Project: ActiveMQ
> Issue Type: Bug
> Components: Connector
> Affects Versions: 5.3.0, 5.3.1, 5.3.2, 5.4.0, 5.4.1
> Environment: Operating System - Windows XP Professional
> Tomcat v6.0.28
> IBM Websphere MQ v7.0.1.2
> ActiveMQ 5.4.0
> Reporter: Rajeev Verma
>
> We are trying to create a bridge with IBM Websphere Queue and ActiveMQ queue.
> We have defined a broker in activemq.xml with following jmsBridgeConnectors
> information:
> <jmsBridgeConnectors>
> <jmsQueueConnector
> outboundQueueConnectionFactory="#remoteFactory">
> <inboundQueueBridges>
> <inboundQueueBridge inboundQueueName="IBM.TO.ACTIVEMQ"
> localQueueName="IBM.TO.ACTIVEMQ"/>
> </inboundQueueBridges>
> </jmsQueueConnector>
> </jmsBridgeConnectors>
> We are getting below error with activemq 5.4.0 and it works fine with version
> 5.2.0:
> com.ibm.msg.client.jms.DetailedInvalidDestinationException: JMSCMQ0005: The
> destination name '://IBM.TO.ACTIVEMQ' was not valid. The destination name
> specified does not conform to published destination syntax. Correct the
> specified destination name and try again.
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at
> com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:313)
> at
> com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:388)
> at
> com.ibm.msg.client.wmq.common.internal.WMQDestinationURIParser.setUri(WMQDestinationURIParser.java:524)
> at
> com.ibm.msg.client.wmq.common.internal.WMQDestination.<init>(WMQDestination.java:3148)
> at
> com.ibm.msg.client.wmq.common.internal.WMQDestination.<init>(WMQDestination.java:3104)
> at
> com.ibm.msg.client.wmq.factories.WMQFactoryFactory.createProviderDestination(WMQFactoryFactory.java:444)
> at
> com.ibm.msg.client.jms.admin.JmsDestinationImpl.setProviderDestination(JmsDestinationImpl.java:333)
> at
> com.ibm.msg.client.jms.admin.JmsDestinationImpl.initialise(JmsDestinationImpl.java:231)
> at
> com.ibm.msg.client.jms.admin.JmsDestinationImpl.<init>(JmsDestinationImpl.java:196)
> at
> com.ibm.msg.client.jms.admin.JmsJndiDestinationImpl.<init>(JmsJndiDestinationImpl.java:129)
> at com.ibm.mq.jms.MQDestination.<init>(MQDestination.java:186)
> at
> com.ibm.msg.client.wmq.factories.admin.WMQJmsFactory.createDestination(WMQJmsFactory.java:125)
> at
> com.ibm.msg.client.jms.internal.JmsMessageImpl.providerDestToJmsDest(JmsMessageImpl.java:2111)
> at
> com.ibm.msg.client.jms.internal.JmsMessageImpl.getJMSDestination(JmsMessageImpl.java:686)
> at com.ibm.jms.JMSMessage.getJMSDestination(JMSMessage.java:605)
> at
> org.apache.activemq.ActiveMQMessageTransformation.copyProperties(ActiveMQMessageTransformation.java:206)
> at
> org.apache.activemq.ActiveMQMessageTransformation.transformMessage(ActiveMQMessageTransformation.java:188)
> at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1720)
> at
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:231)
> at
> org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:300)
> at
> org.apache.activemq.ActiveMQQueueSender.send(ActiveMQQueueSender.java:111)
> at
> org.apache.activemq.network.jms.QueueBridge.sendMessage(QueueBridge.java:80)
> at
> org.apache.activemq.network.jms.DestinationBridge.onMessage(DestinationBridge.java:129)
> at
> com.ibm.mq.jms.MQMessageConsumer$FacadeMessageListener.onMessage(MQMessageConsumer.java:399)
> at
> com.ibm.msg.client.jms.internal.JmsMessageConsumerImpl$JmsProviderMessageListener.onMessage(JmsMessageConsumerImpl.java:904)
> at
> com.ibm.msg.client.wmq.internal.WMQAsyncConsumerShadow.honourNoLocal(WMQAsyncConsumerShadow.java:550)
> at
> com.ibm.msg.client.wmq.internal.WMQAsyncConsumerShadow.consumer(WMQAsyncConsumerShadow.java:384)
> at
> com.ibm.mq.jmqi.remote.internal.RemoteAsyncConsume.driveConsumer(RemoteAsyncConsume.java:1478)
> at
> com.ibm.mq.jmqi.remote.internal.RemoteDispatchThread.run(RemoteDispatchThread.java:385)
> at
> com.ibm.msg.client.commonservices.workqueue.WorkQueueItem.runTask(WorkQueueItem.java:209)
> at
> com.ibm.msg.client.commonservices.workqueue.SimpleWorkQueueItem.runItem(SimpleWorkQueueItem.java:100)
> at
> com.ibm.msg.client.commonservices.workqueue.WorkQueueItem.run(WorkQueueItem.java:224)
> at
> com.ibm.msg.client.commonservices.workqueue.WorkQueueManager.runWorkQueueItem(WorkQueueManager.java:298)
> at
> com.ibm.msg.client.commonservices.j2se.workqueue.WorkQueueManagerImplementation$ThreadPoolWorker.run(WorkQueueManagerImplementation.java:1220)
> I looked at the code for class ActiveMQsession has a method send which was
> modified after v 5.2.0 and below lines of code were moved before transforming
> the IBM JMS Message to Active MQ message:
> message.setJMSDestination(destination);
> message.setJMSDeliveryMode(deliveryMode);
> long expiration = 0L;
> if (!producer.getDisableMessageTimestamp()) {
> long timeStamp = System.currentTimeMillis();
> message.setJMSTimestamp(timeStamp);
> if (timeToLive > 0) {
> expiration = timeToLive + timeStamp;
> }
> }
> message.setJMSExpiration(expiration);
> message.setJMSPriority(priority);
> message.setJMSRedelivered(false);
> Now code sets the ActiveMQDestination as the JMS destination to IBM Message
> before transformation and we are getting above error when JMS properties are
> getting copied from IBM Message to ActiveMQMessage inside
> ActiveMQMessageTransformation.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.