ActiveMQ exception on stop

Configuration: Redhat 5.3, Sun Java 1.6.31, ActiveMQ 5.4.2

I get an exception every time I stop activemq ($> service activqq stop)

ACTIVEMQ_HOME: /opt/apache/apache-activemq-5.4.2 ACTIVEMQ_BASE: /opt/apache/apache-activemq-5.4.2 Connecting to JMX URL: service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi ERROR: java.lang.RuntimeException: Failed to execute stop task. Reason: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: java.net.ConnectException: Connection refused] java.lang.RuntimeException: Failed to execute stop task. Reason: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: java.net.ConnectException: Connection refused] at org.apache.activemq.console.command.ShutdownCommand.runTask(ShutdownCommand.java:107) at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57) at org.apache.activemq.console.command.AbstractJmxCommand.execute(AbstractJmxCommand.java:316) at org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:143) at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57) at org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:85) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.activemq.console.Main.runTaskClass(Main.java:251) at org.apache.activemq.console.Main.main(Main.java:107) ERROR: java.lang.Exception: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: java.net.ConnectException: Connection refused] java.lang.Exception: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: java.net.ConnectException: Connection refused] at org.apache.activemq.console.command.ShutdownCommand.runTask(ShutdownCommand.java:108) at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57) at org.apache.activemq.console.command.AbstractJmxCommand.execute(AbstractJmxCommand.java:316) at org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:143) at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57) at org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:85) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.activemq.console.Main.runTaskClass(Main.java:251) at org.apache.activemq.console.Main.main(Main.java:107) Caused by: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: java.net.ConnectException: Connection refused] at javax.management.remote.rmi.RMIConnector.connect(Unknown Source) at javax.management.remote.JMXConnectorFactory.connect(Unknown Source) at javax.management.remote.JMXConnectorFactory.connect(Unknown Source) at org.apache.activemq.console.command.AbstractJmxCommand.createJmxConnector(AbstractJmxCommand.java:214) at org.apache.activemq.console.command.AbstractJmxCommand.createJmxConnection(AbstractJmxCommand.java:237) at org.apache.activemq.console.command.ShutdownCommand.runTask(ShutdownCommand.java:71) ... 11 more Caused by: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: java.net.ConnectException: Connection refused] at com.sun.jndi.rmi.registry.RegistryContext.lookup(Unknown Source) at com.sun.jndi.toolkit.url.GenericURLContext.lookup(Unknown Source) at javax.naming.InitialContext.lookup(Unknown Source) at javax.management.remote.rmi.RMIConnector.findRMIServerJNDI(Unknown Source) at javax.management.remote.rmi.RMIConnector.findRMIServer(Unknown Source) ... 17 more Caused by: java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: java.net.ConnectException: Connection refused at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source) at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source) at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source) at sun.rmi.server.UnicastRef.newCall(Unknown Source) at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) ... 22 more Caused by: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.<init>(Unknown Source) at java.net.Socket.<init>(Unknown Source) at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown Source) at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown Source) ... 27 more 

The process is still dying, but not elegantly. Any suggestions?

+9
activemq jmx
source share
2 answers

I found a fix, but I'm not sure if it solves the root problem. After starting ActiveMQ, I checked if port 1099 was really open using the following command:

 $> netstat -lptun | grep 1099 

This command does not display anything, indicating that the port is not open (when starting ActiveMQ). This means that even though ActiveMQ is running, it does not listen for any JMX connections (since the script will try to stop it). After some inspection, I found a link that led me to the file {ACTIVEMQ_HOME} /conf/activemq.xml . This file contains the following section:

  <!-- The managementContext is used to configure how ActiveMQ is exposed in JMX. By default, ActiveMQ uses the MBean server that is started by the JVM. For more information, see: http://activemq.apache.org/jmx.html --> <managementContext> <managementContext createConnector="false"/> </managementContext> 

Setting createConnector = "true" solved my problems (this will start the MBean server in the JVM when ActiveMQ starts). The shutdown output now looks like this (as expected):

 ... ACTIVEMQ_HOME: /opt/apache/apache-activemq-5.4.2 ACTIVEMQ_BASE: /opt/apache/apache-activemq-5.4.2 Connecting to JMX URL: service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi Stopping broker: localhost .. FINISHED 

In addition, after changing this flag, I can verify that the default JMX port (1099) is open after starting ActiveMQ

 $> netstat -lptun | grep 1099 tcp 0 0 :::1099 :::* LISTEN 30033/java 
+24
source share

I met the same problem above and it successfully resolved the problem, activemq-5.11.0

0
source share

All Articles