activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Tully (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (AMQ-2963) JMSBridgeConnectors does not work with IBM MQ and ActiveMQ 5.4.0
Date Tue, 04 Jan 2011 13:03:47 GMT

     [ https://issues.apache.org/jira/browse/AMQ-2963?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Gary Tully resolved AMQ-2963.
-----------------------------

       Resolution: Fixed
    Fix Version/s: 5.5.0
         Assignee: Gary Tully

reverted part of fix for https://issues.apache.org/jira/browse/AMQ-2029 as destination name
format is provider specific so it is only applicable to the transformed message.
r1055021

> 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.


Mime
View raw message