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

    Bridge - Foreign Message (ActiveMQ -> JbossMessaging)

    Aslak Knutsen Master

      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 Knutsen Master

          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 Knutsen Master

            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)
              Tim Fox Master

               

              "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 Knutsen Master

                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)
                  Tim Fox Master

                   

                  "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 Knutsen Master

                    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 Knutsen Master

                      Yes, I'm running CR1.

                      When is CR2 planed?

                      • 8. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
                        Tim Fox Master

                         

                        "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 Knutsen Master

                           

                          <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)
                            Tim Fox Master

                            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.

                            • 12. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
                              Aslak Knutsen Master

                               

                              "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)
                                Ed Sherington Newbie

                                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)
                                  Tim Fox Master

                                   

                                  "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