Hi after more than a month I haven't been able to solve this... I'm currently destroying jencks' JCAConnectors and JCAContainer, which also stop ActiveMQResourceAdapter as a side effect. Then I stop the broker via stop(), followed by the applicationcontext.stop().
Nevertheless I always get the trace below. IMHO the problem is that the ActiveMQConnection tries to send asyncSendPacket(new ShutdownInfo()); but the broker has already shut down the Transport... Is there anyone out there that manages to stop a context cleanly after having exchanged some messages?If I start and stop the broker without any message being sent it just stops fine... FIY I'm using the tcp transport. I hope to get some feedback on this, it's quite hard to present a service that exit with 100s lines of exceptions... Thanks a lot! Francesco [.0.1:61617] WARN org.apache.activemq.ra.ActiveMQManagedConnection - Connection failed: javax.jms.JMSException: java.io.EOFException [.0.1:61617] WARN org.apache.geronimo.connector.outbound.GeronimoConnectionEventListener - connectionErrorOccurred called with null javax.jms.JMSException: java.io.EOFException at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:46) at org.apache.activemq.ActiveMQConnection.onAsyncException(ActiveMQConnection.java:1527) at org.apache.activemq.ActiveMQConnection.onException(ActiveMQConnection.java:1543) at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:96) at org.apache.activemq.transport.ResponseCorrelator.onException(ResponseCorrelator.java:114) at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:96) at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:96) at org.apache.activemq.transport.WireFormatNegotiator.onException(WireFormatNegotiator.java:147) at org.apache.activemq.transport.InactivityMonitor.onException(InactivityMonitor.java:150) at org.apache.activemq.transport.TransportSupport.onException(TransportSupport.java:97) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:150) at java.lang.Thread.run(Thread.java:613) Caused by: java.io.EOFException at java.io.DataInputStream.readInt(DataInputStream.java:358) at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:267) at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:156) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:136) ... 1 more [.0.1:61617] INFO org.apache.activemq.ra.ActiveMQManagedConnection - Error occured during close of a JMS connection. javax.jms.JMSException: The transport is not running. at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:58) at org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1167) at org.apache.activemq.ActiveMQConnection.close(ActiveMQConnection.java:580) at org.apache.activemq.ra.ActiveMQManagedConnection.destroy(ActiveMQManagedConnection.java:225) at org.apache.geronimo.connector.outbound.MCFConnectionInterceptor.returnConnection(MCFConnectionInterceptor.java:57) at org.apache.geronimo.connector.outbound.LocalXAResourceInsertionInterceptor.returnConnection(LocalXAResourceInsertionInterceptor.java:50) at org.apache.geronimo.connector.outbound.SinglePoolMatchAllConnectionInterceptor.internalReturn(SinglePoolMatchAllConnectionInterceptor.java:138) at org.apache.geronimo.connector.outbound.AbstractSinglePoolConnectionInterceptor.returnConnection(AbstractSinglePoolConnectionInterceptor.java:119) at org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor.returnConnection(TransactionEnlistingInterceptor.java:94) at org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.returnConnection(TransactionCachingInterceptor.java:93) at org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.returnConnection(ConnectionHandleInterceptor.java:71) at org.apache.geronimo.connector.outbound.TCCLInterceptor.returnConnection(TCCLInterceptor.java:50) at org.apache.geronimo.connector.outbound.GeronimoConnectionEventListener.connectionErrorOccurred(GeronimoConnectionEventListener.java:81) at org.apache.activemq.ra.ActiveMQManagedConnection.fireErrorOccurredEvent(ActiveMQManagedConnection.java:192) at org.apache.activemq.ra.ActiveMQManagedConnection.onException(ActiveMQManagedConnection.java:416) at org.apache.activemq.ActiveMQConnection$4.run(ActiveMQConnection.java:1532) 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) Caused by: java.io.IOException: The transport is not running. at org.apache.activemq.transport.TransportSupport.checkStarted(TransportSupport.java:103) at org.apache.activemq.transport.tcp.TcpTransport.oneway(TcpTransport.java:117) at org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:141) at org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:80) at org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:93) at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:43) at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60) at org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1165) ... 17 more [.0.1:61617] WARN org.apache.activemq.ra.ActiveMQManagedConnection - Connection failed: javax.jms.JMSException: java.io.EOFException drvillo wrote: > > Hi all > > using AMQ head, with jencks 1.3, and running and embedded broker: > > I can't find a way of shutting the service down, meaning the broker and > the spring context > without exceptions. > > Since I've read that I'm supposed to stop all the clients before shutting > down the broker > actually I'm doing this: > > > > public void onTearDown() throws Exception { > > JCAConnector con = (JCAConnector) > testSupport.getBean("inboundConnectorStage1"); > > con.destroy(); > con = (JCAConnector) > testSupport.getBean("mockInboundConnectorStage2"); > con.destroy(); > JCAContainer cont = (JCAContainer) > testSupport.getBean("jencksJCAContainer"); > cont.destroy(); > > XBeanBrokerService broker = (XBeanBrokerService) > testSupport.getBean("broker"); > broker.stop(); > } > > followed by an > applicationContext.close(); > > The two JCAConnectors above are the only ones started. > > Nevertheless the logs show that a ServerSession is requested after > destroying them: > > DEBUG org.apache.activemq.broker.region.AbstractRegion - Removing > consumer: ID:obimac.local-49248-1166791529603-3:1:-1:2 > DEBUG org.apache.activemq.broker.region.AbstractRegion - Removing > consumer: ID:obimac.local-49248-1166791529603-3:1:-1:1 > DEBUG org.apache.activemq.broker.TransportConnection - Stopping > connection: /127.0.0.1:49250 > DEBUG org.apache.activemq.broker.TransportConnection - Stopped connection: > /127.0.0.1:49250 > DEBUG org.apache.activemq.broker.region.AbstractRegion - Removing > consumer: ID:obimac.local-49248-1166791529603-3:0:-1:2 > DEBUG org.apache.activemq.broker.region.AbstractRegion - Removing > consumer: ID:obimac.local-49248-1166791529603-3:0:-1:1 > DEBUG org.apache.activemq.broker.TransportConnection - Stopping > connection: /127.0.0.1:49251 > DEBUG org.apache.activemq.broker.TransportConnection - Stopped connection: > /127.0.0.1:49251 > DEBUG org.apache.activemq.ra.ServerSessionPoolImpl - ServerSession > requested. > DEBUG org.apache.activemq.ra.ServerSessionPoolImpl - ServerSession > requested. > INFO org.apache.activemq.broker.BrokerService - ActiveMQ Message Broker > (brokerConfigTest, ID:obimac.local-49248-1166791529603-0:0) is shutting > down > DEBUG org.apache.activemq.broker.TransportConnection - Stopping > connection: /127.0.0.1:49252 > DEBUG org.apache.activemq.broker.TransportConnection - Stopped connection: > /127.0.0.1:49252 > INFO org.apache.activemq.broker.TransportConnector - Connector tcp > Stopped > WARN org.apache.activemq.ra.ActiveMQManagedConnection - Connection > failed: javax.jms.JMSException: java.io.EOFException > DEBUG org.apache.activemq.ra.ActiveMQManagedConnection - Cause: > javax.jms.JMSException: java.io.EOFException > at > org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:46) > at > org.apache.activemq.ActiveMQConnection.onAsyncException(ActiveMQConnection.java:1527) > at > org.apache.activemq.ActiveMQConnection.onException(ActiveMQConnection.java:1543) > at > org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:96) > at > org.apache.activemq.transport.ResponseCorrelator.onException(ResponseCorrelator.java:114) > at > org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:96) > at > org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:96) > at > org.apache.activemq.transport.WireFormatNegotiator.onException(WireFormatNegotiator.java:147) > at > org.apache.activemq.transport.InactivityMonitor.onException(InactivityMonitor.java:150) > at > org.apache.activemq.transport.TransportSupport.onException(TransportSupport.java:97) > at > org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:150) > at java.lang.Thread.run(Thread.java:613) > Caused by: java.io.EOFException > at java.io.DataInputStream.readInt(DataInputStream.java:358) > at > org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:267) > at > org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:156) > at > org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:136) > ... 1 more > INFO org.apache.activemq.broker.BrokerService - ActiveMQ JMS Message > Broker (brokerConfigTest, ID:obimac.local-49248-1166791529603-0:0) stopped > WARN > org.apache.geronimo.connector.outbound.GeronimoConnectionEventListener - > connectionErrorOccurred called with null > javax.jms.JMSException: java.io.EOFException > at > org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:46) > at > org.apache.activemq.ActiveMQConnection.onAsyncException(ActiveMQConnection.java:1527) > at > org.apache.activemq.ActiveMQConnection.onException(ActiveMQConnection.java:1543) > at > org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:96) > at > org.apache.activemq.transport.ResponseCorrelator.onException(ResponseCorrelator.java:114) > at > org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:96) > at > org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:96) > at > org.apache.activemq.transport.WireFormatNegotiator.onException(WireFormatNegotiator.java:147) > at > org.apache.activemq.transport.InactivityMonitor.onException(InactivityMonitor.java:150) > at > org.apache.activemq.transport.TransportSupport.onException(TransportSupport.java:97) > at > org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:150) > at java.lang.Thread.run(Thread.java:613) > Caused by: java.io.EOFException > at java.io.DataInputStream.readInt(DataInputStream.java:358) > at > org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:267) > at > org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:156) > at > org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:136) > ... 1 more > INFO org.springframework.context.support.ClassPathXmlApplicationContext - > Closing application context > [org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=4167406] > DEBUG > org.apache.geronimo.connector.outbound.SinglePoolConnectionInterceptor - > returning connectionnull > INFO org.springframework.beans.factory.support.DefaultListableBeanFactory > - Destroying singletons in > {org.springframework.beans.factory.support.DefaultListableBeanFactory > defining beans > [transactionContextManager,geronimo,transactionManager,connectionManager,jmsResourceAdapter,jmsManagedConnectionFactory,jmsConnectionFactory,jencksJCAContainer,broker,stage1Queue,stage2Queue,stage3Queue,dataSource,hcDao,wdDao,wdServiceTarget,wdService,dbHelper,controller,sendSeed,hstcntBundle,hostcountProperties,resolver,service,inboundConnectorStage1,stage1,sendStage1,stage2,mockInboundConnectorStage2]; > root of BeanFactory hierarchy} > INFO org.apache.activemq.ra.ActiveMQManagedConnection - Error occured > during close of a JMS connection. > javax.jms.JMSException: The transport is not running. > at > org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:58) > at > org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1167) > at > org.apache.activemq.ActiveMQConnection.close(ActiveMQConnection.java:580) > at > org.apache.activemq.ra.ActiveMQManagedConnection.destroy(ActiveMQManagedConnection.java:225) > at > org.apache.geronimo.connector.outbound.MCFConnectionInterceptor.returnConnection(MCFConnectionInterceptor.java:57) > at > org.apache.geronimo.connector.outbound.LocalXAResourceInsertionInterceptor.returnConnection(LocalXAResourceInsertionInterceptor.java:50) > at > org.apache.geronimo.connector.outbound.SinglePoolMatchAllConnectionInterceptor.internalReturn(SinglePoolMatchAllConnectionInterceptor.java:138) > at > org.apache.geronimo.connector.outbound.AbstractSinglePoolConnectionInterceptor.returnConnection(AbstractSinglePoolConnectionInterceptor.java:119) > at > org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor.returnConnection(TransactionEnlistingInterceptor.java:94) > at > org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.returnConnection(TransactionCachingInterceptor.java:93) > at > org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.returnConnection(ConnectionHandleInterceptor.java:71) > at > org.apache.geronimo.connector.outbound.TCCLInterceptor.returnConnection(TCCLInterceptor.java:50) > at > org.apache.geronimo.connector.outbound.GeronimoConnectionEventListener.connectionErrorOccurred(GeronimoConnectionEventListener.java:81) > at > org.apache.activemq.ra.ActiveMQManagedConnection.fireErrorOccurredEvent(ActiveMQManagedConnection.java:192) > at > org.apache.activemq.ra.ActiveMQManagedConnection.onException(ActiveMQManagedConnection.java:416) > at > org.apache.activemq.ActiveMQConnection$4.run(ActiveMQConnection.java:1532) > 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) > Caused by: java.io.IOException: The transport is not running. > at > org.apache.activemq.transport.TransportSupport.checkStarted(TransportSupport.java:103) > at > org.apache.activemq.transport.tcp.TcpTransport.oneway(TcpTransport.java:117) > at > org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:141) > at > org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:80) > at > org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:93) > at > org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:43) > at > org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60) > at > org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1165) > ... 17 more > INFO org.apache.xbean.spring.context.ResourceXmlApplicationContext - > Closing application context > [org.apache.xbean.spring.context.ResourceXmlApplicationContext;hashCode=12706611] > DEBUG org.apache.xbean.spring.context.ResourceXmlApplicationContext - > Publishing event in context > [org.apache.xbean.spring.context.ResourceXmlApplicationContext;hashCode=12706611]: > org.springframework.context.event.ContextClosedEvent[source=org.apache.xbean.spring.context.ResourceXmlApplicationContext: > display name > [org.apache.xbean.spring.context.ResourceXmlApplicationContext;hashCode=12706611]; > startup date [Fri Dec 22 13:45:28 CET 2006]; child of > [org.springframework.context.support.ClassPathXmlApplicationContext: > display name > [org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=4167406]; > startup date [Fri Dec 22 13:45:27 CET 2006]; root of context hierarchy]] > INFO org.springframework.beans.factory.support.DefaultListableBeanFactory > - Destroying singletons in > {org.springframework.beans.factory.support.DefaultListableBeanFactory > defining beans [org.apache.activemq.xbean.XBeanBrokerService]; parent: > org.springframework.beans.factory.support.DefaultListableBeanFactory > defining beans > [transactionContextManager,geronimo,transactionManager,connectionManager,jmsResourceAdapter,jmsManagedConnectionFactory,jmsConnectionFactory,jencksJCAContainer,broker,stage1Queue,stage2Queue,stage3Queue,dataSource,hcDao,wdDao,wdServiceTarget,wdService,dbHelper,controller,sendSeed,hstcntBundle,hostcountProperties,resolver,service,inboundConnectorStage1,stage1,sendStage1,stage2,mockInboundConnectorStage2]; > root of BeanFactory hierarchy} > > > > > Is there any way of having a clean shutdown? > With the vm transport a useShutdownHook=true would do the job, but with > tcp I can't get any further... > > Thanks for any suggestion, > Francesco > -- View this message in context: http://www.nabble.com/Cannot-shutdown-cleanly-tf2870519.html#a8713472 Sent from the ActiveMQ - User mailing list archive at Nabble.com.