-
1. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
aslak Aug 9, 2007 3:24 AM (in response to 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 Aug 9, 2007 6:29 AM (in response to 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 Aug 9, 2007 8:57 AM (in response to aslak)"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 Aug 9, 2007 9:15 AM (in response to 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 Aug 9, 2007 9:18 AM (in response to aslak)"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 Aug 9, 2007 9:21 AM (in response to 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 Aug 9, 2007 9:23 AM (in response to aslak)Yes, I'm running CR1.
When is CR2 planed? -
8. Re: Bridge - Foreign Message (ActiveMQ -> JbossMessaging)
timfox Aug 9, 2007 9:30 AM (in response to aslak)"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 Aug 9, 2007 9:45 AM (in response to 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 Aug 9, 2007 9:49 AM (in response to aslak)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 Aug 10, 2007 1:16 AM (in response to 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 Aug 10, 2007 8:32 AM (in response to aslak)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 Aug 14, 2007 9:18 AM (in response to aslak)"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.