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

Reply via email to