1 2 Previous Next 17 Replies Latest reply on Aug 16, 2007 3:09 AM by timfox

    Bridge - Foreign Message (ActiveMQ -> JbossMessaging)

    aslak

      I'm having some problems getting a ActiveMQ -> JbossMessaging bridge working.

      In the 1.3.0 release, the foreign destination was lost on the message due to it not being a JbossDestination
      when the message copying happened(ProducerAspect, new JbossMessage()), resulting in a NullPointerException in the

      ServerConnectionEndpoint.sendMessage..
      dest.isQueue()

      Looking at the 1.4.0.CR1 code, the restriction on JbossMessage needing a JbossDestination has changed. So now the destination is set, but it is a ActiveMqTopic and results in a ClassCastException in

      ServerConnectionEndpoint.sendMessage:
      JBossDestination dest = (JBossDestination)msg.getJMSDestination();



      Any ideas?

      -aslak-

        • 1. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
          aslak

          In this case, the 1.3.0 behavior seems to be more correct.

          Since the foreign destination is not known to Jboss there is no need to set it.

          The producer has the correct JbossDestination, but it is set on the message before it is converted to a JbossMessage, meaning it ends up being ignored.

          • 2. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
            aslak

            I've tried changed the ProducerAspect to set the producer destination on messageToSend after the message has been copied. It stoped complaining about the ClassCast...

            but the JDBCPersistenceManager.handleBeforeCommit1PC failes inserting the message reference due to a database foreign key constraint on message id.

            Around line 1671, it tries to insert the MessageRef before inserting the Message. Changing the order seem to work..

            .. not sure what other errors I might have introduced with these changes but..

            -aslak-

            • 3. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
              timfox

               

              "aslak" wrote:

              Looking at the 1.4.0.CR1 code, the restriction on JbossMessage needing a JbossDestination has changed. So now the destination is set, but it is a ActiveMqTopic and results in a ClassCastException in

              ServerConnectionEndpoint.sendMessage:
              JBossDestination dest = (JBossDestination)msg.getJMSDestination();



              Maybe I'm misunderstand you, but this makes sense to me - you can't use JBoss Mesaging to send to a ActiveMQ topic - JBoss Messaging doesn't understand the Active MQ wire protocol (and vice versa).

              • 4. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
                aslak

                hmm... spoke to soon..

                The order issue I found was when in batch mode.

                Same batch mode issue is also in
                JDBCPersistenceManager.handleBeforePrepare(List, List, Transaction)


                There seem to be the same in non batch mode as well..

                INSERT_MESSAGE_REF is inserted before INSERT_MESSAGE.

                • 5. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
                  timfox

                   

                  "aslak" wrote:
                  hmm... spoke to soon..

                  The order issue I found was when in batch mode.

                  Same batch mode issue is also in
                  JDBCPersistenceManager.handleBeforePrepare(List, List, Transaction)


                  There seem to be the same in non batch mode as well..

                  INSERT_MESSAGE_REF is inserted before INSERT_MESSAGE.


                  I guess you must be using CR1, this is fixed in CR2

                  • 6. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
                    aslak

                    I have setup a JbossMessaging Bridge to listen to a ActiveMQ queue via a ActiveMQ JMSProvider configured on Jboss.

                    The Bridge reads the sourceDestination messages from ActiveMQ fine, it's sending this ActiveMQ Message object to the targetProducer/targetDestination that is the problem.


                    Is this not the scenario commented in the ProducerAspect code:
                    // JMS 1.1 Sect. 3.11.4: A provider must be prepared to accept, from a client,
                    // a message whose implementation is not one of its own.

                    • 7. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
                      aslak

                      Yes, I'm running CR1.

                      When is CR2 planed?

                      • 8. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
                        timfox

                         

                        "aslak" wrote:
                        I have setup a JbossMessaging Bridge to listen to a ActiveMQ queue via a ActiveMQ JMSProvider configured on Jboss.

                        The Bridge reads the sourceDestination messages from ActiveMQ fine, it's sending this ActiveMQ Message object to the targetProducer/targetDestination that is the problem.


                        Is this not the scenario commented in the ProducerAspect code:
                        // JMS 1.1 Sect. 3.11.4: A provider must be prepared to accept, from a client,
                        // a message whose implementation is not one of its own.


                        Aslak - can you just explain your issue again (slow, step by step) - I'm having trouble understanding what it is.



                        • 9. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
                          aslak

                           

                          <connection-factories>
                          
                           <mbean code="org.jboss.jms.jndi.JMSProviderLoader"
                           name="jboss.mq:service=JMSProviderLoader,name=ActiveMQJMSProvider">
                           <attribute name="ProviderName">ActiveMQJMSProvider</attribute>
                           <attribute name="ProviderAdapterClass">
                           org.jboss.jms.jndi.JNDIProviderAdapter
                           </attribute>
                           <!-- The combined connection factory -->
                           <attribute name="FactoryRef">ConnectionFactory</attribute>
                           <!-- The queue connection factory -->
                           <attribute name="QueueFactoryRef">ConnectionFactory</attribute>
                           <!-- The topic factory -->
                           <attribute name="TopicFactoryRef">ConnectionFactory</attribute>
                           <attribute name="Properties">
                           java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory
                           java.naming.provider.url=tcp://xx.xx.xx.xx:61616
                           queue.inbound=OM.from
                           queue.outbound=OM.to
                           </attribute>
                          
                           </mbean>
                          </connection-factories>
                          


                          
                           <mbean code="org.jboss.jms.server.bridge.BridgeService"
                           name="com.nordpool:service=Bridge,name=BridgeFromOM"
                           xmbean-dd="xmdesc/Bridge-xmbean.xml">
                          
                           <attribute name="SourceProviderLoader">jboss.mq:service=JMSProviderLoader,name=ActiveMQJMSProvider</attribute>
                          
                           <attribute name="TargetProviderLoader">jboss.messaging:service=JMSProviderLoader,name=JMSProvider</attribute>
                          
                           <attribute name="SourceDestinationLookup">inbound</attribute>
                          
                           <attribute name="TargetDestinationLookup">topic/npmq.in</attribute>
                          
                           <attribute name="SourceUsername">xx</attribute>
                          
                           <attribute name="SourcePassword">xx</attribute>
                          
                           <attribute name="TargetUsername">xx/attribute>
                          
                           <attribute name="TargetPassword">xx</attribute>
                          
                           <attribute name="QualityOfServiceMode">0</attribute>
                          
                           <attribute name="Selector"></attribute>
                          
                           <attribute name="MaxBatchSize">1</attribute>
                          
                           <attribute name="MaxBatchTime">1</attribute>
                          
                           <attribute name="SubName"></attribute>
                          
                           <attribute name="ClientID"></attribute>
                          
                           <attribute name="FailureRetryInterval">1000</attribute>
                          
                           <attribute name="MaxRetries">2</attribute>
                          
                           </mbean>
                          



                          Messaging Bridge:
                          source -> ActiveMQ queue via ActiveMQJMSProvider configured to talk to the ActiveMQServer
                          target -> JbossTopic on JbossMessaging

                          1. The bridges source consumer receives a ActiveMQMessage from the ActiveMQProvider
                          2. The bridge tries to send the message to the target JbossProducer.
                          3. The JbossProducer figures out it is a foreign message and converts the message to a JbossMessage. The JbossProducers target JbossDestination is lost in the translation. (to be correct, the ActiveMQDestination is set on the JbossMessage and the ServerConnection failes casting it.)



                          • 10. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
                            timfox

                            There is another issue with the bridge, also due to be fixed in CR2 (out in the next week probably).

                            Not sure if itis related, in any case we wil investigate this in the next few days.

                            Thanks.

                            • 11. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
                              timfox
                              • 12. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
                                aslak

                                 

                                "timfox" wrote:
                                "aslak" wrote:


                                INSERT_MESSAGE_REF is inserted before INSERT_MESSAGE.


                                I guess you must be using CR1, this is fixed in CR2


                                Is the database fix not commited?

                                I can't see it in: https://svn.jboss.org/repos/messaging/trunk



                                • 13. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
                                  sherington

                                  I think I am seeing the same problem or something similar.

                                  I have posted my results here in case it helps with any resolution.

                                  My understanding is that a foreign JMS provider should be supported - so either this should work or my understanding is wrong!

                                  Setup:

                                  JBoss-4.2.1.GA (clustered)
                                  JBossMessaging-1.4.0CR1 (automatically installed to JBoss 4.2.1 as per instructions)
                                  ActiveMQ-4.1.1

                                  Background:

                                  I have two failing scenarios, both of which involve a message bridge between an ActiveMQ broker and a JBoss server instance on different boxes.

                                  The first scenario is to configure the JBoss Messaging bridge to pull messages from a remote ActiveMQ queue and send them to a local message queue.

                                  The second scenario is to configure the ActiveMQ messaging bridge to pull messages from a local ActiveMQ queue and send them to a remote JBoss message queue.

                                  The two scenarios are mutually exclusive of course.

                                  I am pretty confident that I have correctly set up the configuration files and the bridge service.

                                  In both scenarios I can see messages successfully being sent to the local queue and I can even see the respective bridge picking up the messages and attempting to transport them across the bridge.

                                  Results:

                                  First results (JBoss Messaging bridge from ActiveMQ):

                                  This is the JBoss server log after I send a message to the remote ActiveMQ queue...

                                  13:02:18,640 INFO [Server] JBoss (MX MicroKernel) [4.2.1.GA (build: SVNTag=JBoss_4_2_1_GA date=200707131605)] Started in 41s:531ms
                                  13:04:03,234 INFO [BridgeService] Started bridge BridgeService. Source: dynamicQueues/TestQueue Target: /queue/BridgeTargetQueue
                                  13:04:08,281 WARN [Bridge] Failed to send + acknowledge batch, closing JMS objects
                                  org.jboss.jms.exception.MessagingJMSException: Failed to invoke
                                   at org.jboss.jms.client.delegate.DelegateSupport.handleThrowable(DelegateSupport.java:247)
                                   at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:202)
                                   at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:157)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate.org$jboss$jms$client$delegate$ClientSessionDelegate$send$aop(ClientSessionDelegate.java:447)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145266547759487588.java)
                                   at org.jboss.jms.client.container.SessionAspect.handleSend(SessionAspect.java:631)
                                   at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect28.invoke(SessionAspect28.java)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145266547759487588.java)
                                   at org.jboss.jms.client.container.FailoverValveInterceptor.invoke(FailoverValveInterceptor.java:91)
                                   at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145266547759487588.java)
                                   at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
                                   at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145266547759487588.java)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate.send(ClientSessionDelegate.java)
                                   at org.jboss.jms.client.container.ProducerAspect.handleSend(ProducerAspect.java:243)
                                   at org.jboss.aop.advice.org.jboss.jms.client.container.ProducerAspect46.invoke(ProducerAspect46.java)
                                   at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_3961598017717988886.java)
                                   at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
                                   at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
                                   at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_3961598017717988886.java)
                                   at org.jboss.jms.client.delegate.ClientProducerDelegate.send(ClientProducerDelegate.java)
                                   at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:164)
                                   at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:207)
                                   at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:145)
                                   at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:136)
                                   at org.jboss.jms.server.bridge.Bridge.sendBatch(Bridge.java:1197)
                                   at org.jboss.jms.server.bridge.Bridge.access$1700(Bridge.java:63)
                                   at org.jboss.jms.server.bridge.Bridge$BatchTimeChecker.run(Bridge.java:1481)
                                   at java.lang.Thread.run(Thread.java:619)
                                  Caused by: java.lang.ClassCastException: org.apache.activemq.command.ActiveMQQueue cannot be cast to org.jboss.jms.destination.JBossDestination
                                   at org.jboss.jms.server.container.SecurityAspect.check(SecurityAspect.java:219)
                                   at org.jboss.jms.server.container.SecurityAspect.handleSend(SecurityAspect.java:150)
                                   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                                   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                                   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                                   at java.lang.reflect.Method.invoke(Method.java:597)
                                   at org.jboss.aop.advice.PerInstanceAdvice.invoke(PerInstanceAdvice.java:121)
                                   at org.jboss.jms.server.endpoint.advised.SessionAdvised$send_6145266547759487588.invokeNext(SessionAdvised$send_6145266547759487588.java)
                                   at org.jboss.jms.server.container.ServerLogInterceptor.invoke(ServerLogInterceptor.java:105)
                                   at org.jboss.jms.server.endpoint.advised.SessionAdvised$send_6145266547759487588.invokeNext(SessionAdvised$send_6145266547759487588.java)
                                   at org.jboss.jms.server.endpoint.advised.SessionAdvised.send(SessionAdvised.java)
                                   at org.jboss.jms.wireformat.SessionSendRequest.serverInvoke(SessionSendRequest.java:85)
                                   at org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:165)
                                   at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:734)
                                   at org.jboss.remoting.transport.local.LocalClientInvoker.invoke(LocalClientInvoker.java:101)
                                   at org.jboss.remoting.Client.invoke(Client.java:1550)
                                   at org.jboss.remoting.Client.invoke(Client.java:530)
                                   at org.jboss.remoting.Client.invoke(Client.java:518)
                                   at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:186)
                                   ... 28 more
                                  13:04:08,609 WARN [Bridge] Will retry after a pause of 5000 ms
                                  

                                  org.jboss.jms.server.container.SecurityAspect.java:
                                  216 private void check(Destination dest, CheckType checkType, ServerConnectionEndpoint conn)
                                  217 throws JMSSecurityException
                                  218 {
                                  219 JBossDestination jbd = (JBossDestination)dest; <-------------
                                  220
                                  221 if (jbd.isTemporary())
                                  


                                  Second results (Active MQ bridge to JBoss):

                                  This is the ActiveMQ broker log after I send a message to the ActiveMQ queue...

                                  INFO BrokerService - ActiveMQ JMS Message Broker (localhost, ID:CFX002.cfis-49696-1186750424461-1:0) started
                                  ERROR JMSWireFormat - Failed to write packet
                                  java.lang.ClassCastException
                                   at org.jboss.jms.destination.JBossDestination.writeDestination(JBossDestination.java:62)
                                   at org.jboss.jms.message.JBossMessage.write(JBossMessage.java:1031)
                                   at org.jboss.jms.wireformat.SessionSendRequest.write(SessionSendRequest.java:96)
                                   at org.jboss.jms.wireformat.JMSWireFormat.write(JMSWireFormat.java:237)
                                   at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.versionedWrite(MicroSocketClientInvoker.java:969)
                                   at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:557)
                                   at org.jboss.remoting.transport.bisocket.BisocketClientInvoker.transport(BisocketClientInvoker.java:353)
                                   at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:122)
                                   at org.jboss.remoting.Client.invoke(Client.java:1550)
                                   at org.jboss.remoting.Client.invoke(Client.java:530)
                                   at org.jboss.remoting.Client.invoke(Client.java:518)
                                   at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:186)
                                   at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:157)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate.org$jboss$jms$client$delegate$ClientSessionDelegate$send$aop(Client
                                  SessionDelegate.java:447)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145
                                  266547759487588.java)
                                   at org.jboss.jms.client.container.SessionAspect.handleSend(SessionAspect.java:631)
                                   at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect28.invoke(SessionAspect28.java)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145
                                  266547759487588.java)
                                   at org.jboss.jms.client.container.FailoverValveInterceptor.invoke(FailoverValveInterceptor.java:91)
                                   at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145
                                  266547759487588.java)
                                   at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
                                   at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145
                                  266547759487588.java)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate.send(ClientSessionDelegate.java)
                                   at org.jboss.jms.client.container.ProducerAspect.handleSend(ProducerAspect.java:243)
                                   at org.jboss.aop.advice.org.jboss.jms.client.container.ProducerAspect39.invoke(ProducerAspect39.java)
                                   at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_39
                                  61598017717988886.java)
                                   at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
                                   at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
                                   at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_39
                                  61598017717988886.java)
                                   at org.jboss.jms.client.delegate.ClientProducerDelegate.send(ClientProducerDelegate.java)
                                   at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:164)
                                   at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:150)
                                   at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:201)
                                   at org.apache.activemq.network.jms.QueueBridge.sendMessage(QueueBridge.java:87)
                                   at org.apache.activemq.network.jms.DestinationBridge.onMessage(DestinationBridge.java:134)
                                   at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:854)
                                   at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:99)
                                   at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:166)
                                   at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:117)
                                   at org.apache.activemq.thread.PooledTaskRunner.access$100(PooledTaskRunner.java:26)
                                   at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:44)
                                   at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
                                   at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
                                   at java.lang.Thread.run(Thread.java:595)
                                  ERROR SocketClientInvoker - Got marshalling exception, exiting
                                  java.io.IOException
                                   at org.jboss.jms.destination.JBossDestination.writeDestination(JBossDestination.java:62)
                                   at org.jboss.jms.message.JBossMessage.write(JBossMessage.java:1031)
                                   at org.jboss.jms.wireformat.SessionSendRequest.write(SessionSendRequest.java:96)
                                   at org.jboss.jms.wireformat.JMSWireFormat.write(JMSWireFormat.java:237)
                                   at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.versionedWrite(MicroSocketClientInvoker.java:969)
                                   at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:557)
                                   at org.jboss.remoting.transport.bisocket.BisocketClientInvoker.transport(BisocketClientInvoker.java:353)
                                   at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:122)
                                   at org.jboss.remoting.Client.invoke(Client.java:1550)
                                   at org.jboss.remoting.Client.invoke(Client.java:530)
                                   at org.jboss.remoting.Client.invoke(Client.java:518)
                                   at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:186)
                                   at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:157)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate.org$jboss$jms$client$delegate$ClientSessionDelegate$send$aop(Client
                                  SessionDelegate.java:447)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145
                                  266547759487588.java)
                                   at org.jboss.jms.client.container.SessionAspect.handleSend(SessionAspect.java:631)
                                   at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect28.invoke(SessionAspect28.java)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145
                                  266547759487588.java)
                                   at org.jboss.jms.client.container.FailoverValveInterceptor.invoke(FailoverValveInterceptor.java:91)
                                   at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145
                                  266547759487588.java)
                                   at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
                                   at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145
                                  266547759487588.java)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate.send(ClientSessionDelegate.java)
                                   at org.jboss.jms.client.container.ProducerAspect.handleSend(ProducerAspect.java:243)
                                   at org.jboss.aop.advice.org.jboss.jms.client.container.ProducerAspect39.invoke(ProducerAspect39.java)
                                   at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_39
                                  61598017717988886.java)
                                   at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
                                   at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
                                   at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_39
                                  61598017717988886.java)
                                   at org.jboss.jms.client.delegate.ClientProducerDelegate.send(ClientProducerDelegate.java)
                                   at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:164)
                                   at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:150)
                                   at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:201)
                                   at org.apache.activemq.network.jms.QueueBridge.sendMessage(QueueBridge.java:87)
                                   at org.apache.activemq.network.jms.DestinationBridge.onMessage(DestinationBridge.java:134)
                                   at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:854)
                                   at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:99)
                                   at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:166)
                                   at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:117)
                                   at org.apache.activemq.thread.PooledTaskRunner.access$100(PooledTaskRunner.java:26)
                                   at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:44)
                                   at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
                                   at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
                                   at java.lang.Thread.run(Thread.java:595)
                                  ERROR DestinationBridge - failed to forward message on attempt: 1 reason: org.jboss.jms.exception.MessagingNetworkFai
                                  lureException message: ActiveMQTextMessage {commandId = 5, responseRequired = true, messageId = ID:XXXXXXXXXX-1277-1186741192984-1:0:
                                  1:1:1, originalDestination = null, originalTransactionId = null, producerId = ID:XXXXXXXXXX-1277-1186741192984-1:0:1:1, destination =
                                   queue://BridgeTargetQueue, transactionId = null, expiration = 0, timestamp = 1186750453371, arrival = 0, correlationId = null, re
                                  plyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed
                                   = false, userID = null, content = null, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 604, pro
                                  perties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, text = Message 1 @ Fri Aug 10 11:19:54 BST 2007
                                  }
                                  org.jboss.jms.exception.MessagingNetworkFailureException
                                   at org.jboss.jms.client.delegate.DelegateSupport.handleThrowable(DelegateSupport.java:221)
                                   at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:202)
                                   at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:157)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate.org$jboss$jms$client$delegate$ClientSessionDelegate$send$aop(Client
                                  SessionDelegate.java:447)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145
                                  266547759487588.java)
                                   at org.jboss.jms.client.container.SessionAspect.handleSend(SessionAspect.java:631)
                                   at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect28.invoke(SessionAspect28.java)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145
                                  266547759487588.java)
                                   at org.jboss.jms.client.container.FailoverValveInterceptor.invoke(FailoverValveInterceptor.java:91)
                                   at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145
                                  266547759487588.java)
                                   at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
                                   at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate$send_6145266547759487588.invokeNext(ClientSessionDelegate$send_6145
                                  266547759487588.java)
                                   at org.jboss.jms.client.delegate.ClientSessionDelegate.send(ClientSessionDelegate.java)
                                   at org.jboss.jms.client.container.ProducerAspect.handleSend(ProducerAspect.java:243)
                                   at org.jboss.aop.advice.org.jboss.jms.client.container.ProducerAspect39.invoke(ProducerAspect39.java)
                                   at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_39
                                  61598017717988886.java)
                                   at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
                                   at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
                                   at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_39
                                  61598017717988886.java)
                                   at org.jboss.jms.client.delegate.ClientProducerDelegate.send(ClientProducerDelegate.java)
                                   at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:164)
                                   at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:150)
                                   at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:201)
                                   at org.apache.activemq.network.jms.QueueBridge.sendMessage(QueueBridge.java:87)
                                   at org.apache.activemq.network.jms.DestinationBridge.onMessage(DestinationBridge.java:134)
                                   at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:854)
                                   at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:99)
                                   at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:166)
                                   at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:117)
                                   at org.apache.activemq.thread.PooledTaskRunner.access$100(PooledTaskRunner.java:26)
                                   at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:44)
                                   at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
                                   at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
                                   at java.lang.Thread.run(Thread.java:595)
                                  Caused by: java.rmi.MarshalException: Failed to communicate. Problem during marshalling/unmarshalling; nested exception is:
                                   java.io.IOException
                                   at org.jboss.remoting.transport.socket.SocketClientInvoker.handleException(SocketClientInvoker.java:122)
                                   at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:644)
                                   at org.jboss.remoting.transport.bisocket.BisocketClientInvoker.transport(BisocketClientInvoker.java:353)
                                   at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:122)
                                   at org.jboss.remoting.Client.invoke(Client.java:1550)
                                   at org.jboss.remoting.Client.invoke(Client.java:530)
                                   at org.jboss.remoting.Client.invoke(Client.java:518)
                                   at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:186)
                                   ... 34 more
                                  Caused by: java.io.IOException
                                   at org.jboss.jms.destination.JBossDestination.writeDestination(JBossDestination.java:62)
                                   at org.jboss.jms.message.JBossMessage.write(JBossMessage.java:1031)
                                   at org.jboss.jms.wireformat.SessionSendRequest.write(SessionSendRequest.java:96)
                                   at org.jboss.jms.wireformat.JMSWireFormat.write(JMSWireFormat.java:237)
                                   at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.versionedWrite(MicroSocketClientInvoker.java:969)
                                   at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:557)
                                   ... 40 more
                                  


                                  org.jboss.jms.destination.JBossDestination.java:

                                  60 public static void writeDestination(DataOutputStream out, Destination dest) throws IOException
                                  61 {
                                  62 JBossDestination jb = (JBossDestination)dest; <-------------
                                  


                                  Hope this is useful!

                                  • 14. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
                                    timfox

                                     

                                    "aslak" wrote:
                                    In this case, the 1.3.0 behavior seems to be more correct.


                                    Yes, but we are having to work around an active mq bug here, see http://jira.jboss.com/jira/browse/JBMESSAGING-988 for more details.

                                    1 2 Previous Next