You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by William Blackburn <wj...@mac.com> on 2006/12/13 18:47:50 UTC

Using Servicemix with ActiveMQ failover does not work

I'm out of my depth - and I apologize for posting this on both lists,  
but I am desperate.

I have configured ActiveMQ in a Master/Slave arrangement according to  
the instructions for 'pure' master/slave. The brokers start with no  
problem and I can immediately start using my servicemix-based  
application. The jmsflow starts up fine with a failover url like:

	failover://(tcp://localhost:61617,tcp://localhost:61618)? 
randomize=false

I then kill the master broker - I can see from the logs that the  
slave is opening its transports and ready to receive messages, but at  
this point my servicemix app stops working. I see in the logs for the  
Slave broker a problem that I don't understand the implications of:


2006-12-13 09:24:50,900 [127.0.0.1:61617] ERROR  
MasterConnector                - Network connection between vm:// 
localhost#0 and tcp://localhost/127.0.0.1:61617 shutdown: null
java.io.EOFException
         at java.io.DataInputStream.readInt(DataInputStream.java:358)
         at org.apache.activemq.openwire.OpenWireFormat.unmarshal 
(OpenWireFormat.java:275)
         at org.apache.activemq.transport.tcp.TcpTransport.run 
(TcpTransport.java:136)
         at java.lang.Thread.run(Thread.java:613)
2006-12-13 09:24:50,903 [127.0.0.1:61617] WARN   
BrokerService                  - Master Failed - starting all connectors
2006-12-13 09:24:51,139 [127.0.0.1:61617] INFO   
TransportServerThreadSupport   - Listening for connections at: tcp:// 
fastgt.local:61618
2006-12-13 09:24:51,213 [127.0.0.1:61617] INFO   
TransportConnector             - Connector default Started
2006-12-13 09:24:51,343 [127.0.0.1:49336] ERROR  
ManagedRegionBroker            - Failed to register subscription  
QueueSubscription:  
consumer=ID:fastgt.local-49287-1166030617711-1:0:1:14,  
destinations=0, dispatched=0, delivered=0, pending=0
javax.management.InstanceAlreadyExistsException:  
org.apache.activemq:BrokerName=localhost,Type=Subscription,active=true,n 
ame=ID_fastgt.local-49287-1166030617711-1_0_1_14
         at com.sun.jmx.mbeanserver.RepositorySupport.addMBean 
(RepositorySupport.java:452)
         at  
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject 
(DefaultMBeanServerInterceptor.java:1410)
         at  
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject 
(DefaultMBeanServerInterceptor.java:936)
         at  
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean 
(DefaultMBeanServerInterceptor.java:337)
         at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean 
(JmxMBeanServer.java:497)
         at  
org.apache.activemq.broker.jmx.ManagedRegionBroker.registerSubscription( 
ManagedRegionBroker.java:264)
         at  
org.apache.activemq.broker.jmx.ManagedRegionBroker.registerSubscription( 
ManagedRegionBroker.java:184)
         at  
org.apache.activemq.broker.jmx.ManagedQueueRegion.createSubscription 
(ManagedQueueRegion.java:46)
         at  
org.apache.activemq.broker.region.AbstractRegion.addConsumer 
(AbstractRegion.java:146)
         at org.apache.activemq.broker.region.RegionBroker.addConsumer 
(RegionBroker.java:297)
         at org.apache.activemq.broker.BrokerFilter.addConsumer 
(BrokerFilter.java:74)
         at org.apache.activemq.advisory.AdvisoryBroker.addConsumer 
(AdvisoryBroker.java:78)
         at org.apache.activemq.broker.BrokerFilter.addConsumer 
(BrokerFilter.java:74)
         at org.apache.activemq.broker.MutableBrokerFilter.addConsumer 
(MutableBrokerFilter.java:87)
         at  
org.apache.activemq.broker.AbstractConnection.processAddConsumer 
(AbstractConnection.java:529)
         at org.apache.activemq.command.ConsumerInfo.visit 
(ConsumerInfo.java:296)
         at org.apache.activemq.broker.AbstractConnection.service 
(AbstractConnection.java:237)
         at org.apache.activemq.broker.TransportConnection$1.onCommand 
(TransportConnection.java:61)
         at org.apache.activemq.transport.ResponseCorrelator.onCommand 
(ResponseCorrelator.java:92)
         at org.apache.activemq.transport.TransportFilter.onCommand 
(TransportFilter.java:67)
         at  
org.apache.activemq.transport.WireFormatNegotiator.onCommand 
(WireFormatNegotiator.java:124)
         at org.apache.activemq.transport.InactivityMonitor.onCommand 
(InactivityMonitor.java:123)
         at org.apache.activemq.transport.TransportSupport.doConsume 
(TransportSupport.java:88)
         at org.apache.activemq.transport.tcp.TcpTransport.run 
(TcpTransport.java:137)
         at java.lang.Thread.run(Thread.java:613)
2006-12-13 09:24:51,468 [127.0.0.1:61617] INFO   
TransportConnector             - Connector vm://localhost Stopped



 From this point on, any new attempt to send an exchange in  
servicemix results in:

javax.jms.JMSException: Cannot send from a session that had not been  
registered: ID:fastgt.local-49287-1166030617711-1:0:1
         at org.apache.activemq.util.JMSExceptionSupport.create 
(JMSExceptionSupport.java:45)
         at org.apache.activemq.ActiveMQConnection.syncSendPacket 
(ActiveMQConnection.java:1118)
         at org.apache.activemq.ActiveMQSession.send 
(ActiveMQSession.java:1555)
         at org.apache.activemq.ActiveMQMessageProducer.send 
(ActiveMQMessageProducer.java:462)
         at org.apache.activemq.ActiveMQMessageProducer.send 
(ActiveMQMessageProducer.java:415)
         at org.apache.servicemix.jbi.nmr.flow.jms.JMSFlow.doRouting 
(JMSFlow.java:501)
         at org.apache.servicemix.jbi.nmr.flow.jms.JMSFlow.doSend 
(JMSFlow.java:460)
         at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.send 
(AbstractFlow.java:121)
         at  
org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket 
(DefaultBroker.java:298)
         at  
org.apache.servicemix.jbi.container.JBIContainer.sendExchange 
(JBIContainer.java:793)
         at  
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend 
(DeliveryChannelImpl.java:375)
         at  
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send 
(DeliveryChannelImpl.java:411)
         at org.apache.servicemix.components.util.PojoSupport.send 
(PojoSupport.java:228)
         at  
com.clairmail.component.sm.SmppServerComponent.handleInMessage 
(SmppServerComponent.java:148)
         at  
com.clairmail.smpp.mblox.DeliverSMHandlerNotifier.notifyMessageHandler 
(DeliverSMHandlerNotifier.java:49)
         at com.clairmail.smpp.mblox.DeliverSMHandlerNotifier.run 
(DeliverSMHandlerNotifier.java:40)
         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask 
(ThreadPoolExecutor.java:650)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run 
(ThreadPoolExecutor.java:675)
         at java.lang.Thread.run(Thread.java:613)


Has anyone successfully got servicemix working with AMQ failover? Any  
advice welcomed, I know I must be missing something.