[
https://issues.apache.org/jira/browse/AMQ-2963?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12977320#action_12977320
]
Peter Chandler commented on AMQ-2963:
-------------------------------------
Thanks for the fix :-)
> 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
> Assignee: Gary Tully
> Fix For: 5.5.0
>
>
> 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.