activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Bain <tb...@alumni.duke.edu>
Subject Re: Exception when stopping an embedded broker
Date Fri, 19 Jun 2015 13:48:51 GMT
I assume this is part of the same network of brokers configuration as your
other questions.

When a broker starts, one of the first things it does is connect to the
other brokers in its configuration, which involves sending commands back
and forth.  This is *after* start completes, so if you stop immediately
after start completes, you'll have stopped before those commands arrive.

Add a sleep (5 seconds?) after start completes before you stop and see if
those exceptions go away.
On Jun 19, 2015 6:07 AM, "pubudu gunawardena" <pubudupg@gmail.com> wrote:

> Sorry the stacktrace in prevoius reply is wrong. Following is the full
> output when running the program.
>
>
> log4j:WARN No appenders could be found for logger
> (org.apache.activemq.broker.jmx.ManagementContext).
> log4j:WARN Please initialize the log4j system properly.
> log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig
> for more info.
> Exception in thread "ActiveMQ VMTransport: vm://localhost#1-1"
> Exception in thread "ActiveMQ VMTransport: vm://localhost#1-2"
> org.apache.activemq.broker.BrokerStoppedException: Broker
> BrokerService[localhost] is being stopped
>     at
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:193)
>     at
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
>     at
> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
>     at
> org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:248)
>     at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
>     at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
>     at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>     at java.lang.Thread.run(Thread.java:745)
> org.apache.activemq.broker.BrokerStoppedException: Broker
> BrokerService[localhost] is being stopped
>     at
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:193)
>     at
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
>     at
> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
>     at
> org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:248)
>     at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
>     at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
>     at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>     at java.lang.Thread.run(Thread.java:745)
> Exception in thread "ActiveMQ VMTransport: vm://localhost#1-5"
> org.apache.activemq.broker.BrokerStoppedException: Broker
> BrokerService[localhost] is being stopped
>     at
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:193)
>     at
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
>     at
> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
>     at
> org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:248)
>     at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
>     at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
>     at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>     at java.lang.Thread.run(Thread.java:745)
>
>
> On Fri, Jun 19, 2015 at 5:36 PM, pubudu gunawardena <pubudupg@gmail.com>
> wrote:
> > Following is the full tracktrace output
> >
> > Exception in thread "main" java.io.IOException: Failed to bind to
> > server socket: tcp://localhost:61617 due to: java.net.BindException:
> > Address already in use
> >     at
> org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:33)
> >     at
> org.apache.activemq.transport.tcp.TcpTransportServer.bind(TcpTransportServer.java:139)
> >     at
> org.apache.activemq.transport.tcp.TcpTransportFactory.doBind(TcpTransportFactory.java:56)
> >     at
> org.apache.activemq.transport.TransportFactorySupport.bind(TransportFactorySupport.java:40)
> >     at
> org.apache.activemq.broker.BrokerService.createTransportConnector(BrokerService.java:2386)
> >     at
> org.apache.activemq.broker.BrokerService.addConnector(BrokerService.java:318)
> >     at
> org.apache.activemq.broker.BrokerService.addConnector(BrokerService.java:308)
> >     at StopTest.main(StopTest.java:11)
> > Caused by: java.net.BindException: Address already in use
> >     at java.net.PlainSocketImpl.socketBind(Native Method)
> >     at
> java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
> >     at java.net.ServerSocket.bind(ServerSocket.java:376)
> >     at java.net.ServerSocket.<init>(ServerSocket.java:237)
> >     at
> javax.net.DefaultServerSocketFactory.createServerSocket(ServerSocketFactory.java:231)
> >     at
> org.apache.activemq.transport.tcp.TcpTransportServer.bind(TcpTransportServer.java:136)
> >     ... 6 more
> >
> >
> > I added the line connector.stop(); to the code as shown below
> >
> >         broker.start();
> >         broker.waitUntilStarted();
> >         connector.stop();
> >         broker.stop();
> >         broker.waitUntilStopped();
> >
> > and the exception does not occur. Maybe that's what was missing?
> >
> > On Fri, Jun 19, 2015 at 4:50 PM, Christopher Shannon
> > <christopher.l.shannon@gmail.com> wrote:
> >> There should be a nested exception that displays what the real error is.
> >> The BrokerStoppedException is the result of another error and it is
> hard to
> >> tell what is going on without the real exception causing the issues.  Is
> >> there any more to the stack trace?
> >>
> >> On Fri, Jun 19, 2015 at 6:36 AM, pubudu gunawardena <pubudupg@gmail.com
> >
> >> wrote:
> >>
> >>> Hi All,
> >>>
> >>> I am using ActiveMQ version 5.11.1. Following is a simple code snippet
> >>> which reproduces the problem I am getting. (what I am trying to
> >>> implement is a restart, but the exceptions are thrown when stopping).
> >>>
> >>>
> >>> import org.apache.activemq.ActiveMQConnection;
> >>> import org.apache.activemq.ActiveMQConnectionFactory;
> >>> import org.apache.activemq.broker.BrokerService;
> >>> import org.apache.activemq.network.jms.JmsQueueConnector;
> >>> import org.apache.activemq.network.jms.OutboundQueueBridge;
> >>>
> >>> public class StopTest {
> >>>     public static void main(String[] args) throws Exception {
> >>>         BrokerService broker = new BrokerService();
> >>>         broker.addConnector("tcp://localhost:61617");
> >>>
> >>>         JmsQueueConnector connector = new JmsQueueConnector();
> >>>         connector.setOutboundQueueConnectionFactory(new
> >>> ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_BROKER_URL));
> >>>         OutboundQueueBridge outboundQueueBridge = new
> >>> OutboundQueueBridge("queue");
> >>>         connector.setOutboundQueueBridges(new OutboundQueueBridge[] {
> >>> outboundQueueBridge });
> >>>         broker.setJmsBridgeConnectors(new JmsQueueConnector[] {
> connector
> >>> });
> >>>
> >>>         broker.start();
> >>>         broker.waitUntilStarted();
> >>>         broker.stop();
> >>>         broker.waitUntilStopped();
> >>>     }
> >>> }
> >>>
> >>>
> >>> I get the following exception
> >>>
> >>> Exception in thread "ActiveMQ VMTransport: vm://localhost#1-1"
> >>> org.apache.activemq.broker.BrokerStoppedException: Broker
> >>> BrokerService[localhost] is being stopped
> >>>     at
> >>>
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:193)
> >>>     at
> >>>
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
> >>>     at
> >>>
> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
> >>>     at
> >>>
> org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:248)
> >>>     at
> >>>
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
> >>>     at
> >>>
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
> >>>     at
> >>>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> >>>     at
> >>>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> >>>     at java.lang.Thread.run(Thread.java:745)
> >>>
> >>> Can someone point out to me what I am not doing correctly?
> >>>
> >>> --
> >>> Thanks,
> >>> Pubudu
> >>>
> >
> >
> >
> > --
> > Thanks,
> > Pubudu
>
>
>
> --
> Thanks,
> Pubudu
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message