I got a stacktrace on this and seems to be that log4j that is creating this problem.
This is what happens when I stop tomcat: --I stop tomcat with the service shutdown command --my program stops activemq broker programmatically as oulined below --after a while, I get a nullpointerexception from log4j class as shown below. Exception in thread "ActiveMQ Transport: tcp://localhost/127.0.0.1:61617" java.lang.NullPointerException at org.apache.log4j.LogManager.getLogger(LogManager.java:188) at org.apache.log4j.Logger.getLogger(Logger.java:104) at org.apache.commons.logging.impl.Log4JLogger.getLogger(Log4JLogger.java:229) at org.apache.commons.logging.impl.Log4JLogger.isDebugEnabled(Log4JLogger.java:239) at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:85) at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65) at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:133) at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122) at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137) at java.lang.Thread.run()V(Unknown Source) --tomcat process hangs. I've to manually kill the tomcat process There is an issue similar to this reported on apache issues repository: http://issues.apache.org/bugzilla/show_bug.cgi?id=40212 What is the best way to resolve this issue? 1) Should I get the activemq code and comment out the call to Log4jLogger.isDebugEnabled from org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:85) 2) Anyother way I can disable logging so I won't get this nullpointerexception? Any suggestions will be highly appreciated. ron55test wrote: > > Hi, > > I've been trying to start and stop ActiveMQ service programmatically...I > wrote some code to start and stop activemq. It works fine on my windows > machine. However, if I run the same program on a linux machine...it works > fine starting but does not stop the activemq service. As a result, the > tomcat process does not stop. > > Here are the details: > --We are building a web application and want to start ActiveMQ service > when the app is deployed and tomcat is started. We want to stop the > activemq service when we stop tomcat. So, my start/stop code is deployed > with the war file and want to run the activemq service within the tomcat > jvm. On our linux machine, we are using JRockit as the JVM. > --Here are my start and stop methods: > > public void start() > { > BrokerService brokerService = new BrokerService(); > try > { > File file = new File(_activemqDataDir); > brokerService.setDataDirectory(file); > brokerService.setBrokerName(_brokerName); > brokerService.addConnector(_brokerURL); > brokerService.start(); > } > catch (Exception e) > { > e.printStackTrace(System.out); > } > } > > public void stop() > { > BrokerService brokerService = > BrokerRegistry.getInstance().lookup(_brokerName); > try > { > if (brokerService != null) > { > brokerService.stop(); > } > else > { > _log.info("Could not stop ActiveMQ broker. It was never > started"); > } > } > catch (Exception e) > { > e.printStackTrace(System.out); > } > } > > --Any help will be highly appreciated. If I cannot stop the activemq > service programmatically, is there any other way I can stop it on our > linux machine. The only way we have been killing the activemq service is > by manually killing the tomcat process. > > Thanks > > > -- View this message in context: http://www.nabble.com/Stopping-ActiveMQ-programmatically-tf2791601.html#a7954950 Sent from the ActiveMQ - User mailing list archive at Nabble.com.