Monday, May 9, 2016

When stop ActiveMQ server, it gives an error

Environment - Active MQ 5.11
                          Oracle jdk1.8.0_72

Preconditions: Active MQ should be installed. 

Situation: Stop ActiveMq service.

Error:

 dilshani@dilshani-ThinkPad-X1-Carbon-3rd:~$ sudo /etc/init.d/activemq stop  
 INFO: Loading '/etc/default/activemq'  
 INFO: Using java '/usr/lib/jvm/java-7-oracle/bin/java'  
 INFO: changing to user 'activemq' to invoke java  
 INFO: Waiting at least seconds for regular process termination of pid '7966' :   
 Java Runtime: Oracle Corporation 1.7.0_80 /usr/lib/jvm/java-7-oracle/jre  
  Heap sizes: current=117248k free=116018k max=1745920k  
   JVM args: -Dactivemq.classpath=/opt/apache-activemq-5.11.1/conf: -Dactivemq.home=/opt/apache-activemq-5.11.1 -Dactivemq.base=/opt/apache-activemq-5.11.1 -Dactivemq.conf=/opt/apache-activemq-5.11.1/conf -Dactivemq.data=/opt/apache-activemq-5.11.1/data  
 Extensions classpath:  
  [/opt/apache-activemq-5.11.1/lib,/opt/apache-activemq-5.11.1/lib/camel,/opt/apache-activemq-5.11.1/lib/optional,/opt/apache-activemq-5.11.1/lib/web,/opt/apache-activemq-5.11.1/lib/extra]  
 ACTIVEMQ_HOME: /opt/apache-activemq-5.11.1  
 ACTIVEMQ_BASE: /opt/apache-activemq-5.11.1  
 ACTIVEMQ_CONF: /opt/apache-activemq-5.11.1/conf  
 ACTIVEMQ_DATA: /opt/apache-activemq-5.11.1/data  
 Connecting to pid: 7966  
 INFO: failed to resolve jmxUrl for pid:7966, using default JMX url  
 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:116)  
      at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)  
      at org.apache.activemq.console.command.AbstractJmxCommand.execute(AbstractJmxCommand.java:387)  
      at org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:150)  
      at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)  
      at org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:104)  
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)  
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
      at java.lang.reflect.Method.invoke(Method.java:606)  
      at org.apache.activemq.console.Main.runTaskClass(Main.java:262)  
      at org.apache.activemq.console.Main.main(Main.java:115)  
 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:117)  
      at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)  
      at org.apache.activemq.console.command.AbstractJmxCommand.execute(AbstractJmxCommand.java:387)  
      at org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:150)  
      at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)  
      at org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:104)  
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)  
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
      at java.lang.reflect.Method.invoke(Method.java:606)  
      at org.apache.activemq.console.Main.runTaskClass(Main.java:262)  
      at org.apache.activemq.console.Main.main(Main.java:115)  
 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(RMIConnector.java:369)  
      at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:268)  
      at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:227)  
      at org.apache.activemq.console.command.AbstractJmxCommand.createJmxConnector(AbstractJmxCommand.java:279)  
      at org.apache.activemq.console.command.AbstractJmxCommand.createJmxConnection(AbstractJmxCommand.java:302)  
      at org.apache.activemq.console.command.ShutdownCommand.runTask(ShutdownCommand.java:81)  
      ... 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(RegistryContext.java:118)  
      at com.sun.jndi.toolkit.url.GenericURLContext.lookup(GenericURLContext.java:203)  
      at javax.naming.InitialContext.lookup(InitialContext.java:411)  
      at javax.management.remote.rmi.RMIConnector.findRMIServerJNDI(RMIConnector.java:1929)  
      at javax.management.remote.rmi.RMIConnector.findRMIServer(RMIConnector.java:1896)  
      at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:286)  
      ... 16 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(TCPEndpoint.java:619)  
      at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)  
      at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)  
      at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:341)  
      at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)  
      at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:114)  
      ... 21 more  
 Caused by: java.net.ConnectException: Connection refused  
      at java.net.PlainSocketImpl.socketConnect(Native Method)  
      at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)  
      at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)  
      at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)  
      at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)  
      at java.net.Socket.connect(Socket.java:579)  
      at java.net.Socket.connect(Socket.java:528)  
      at java.net.Socket.<init>(Socket.java:425)  
      at java.net.Socket.<init>(Socket.java:208)  
      at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)  
      at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:147)  
      at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)  
      ... 26 more  
 ...................  



Solution:

1. Go to {ACTIVEMQ_HOME}/conf/activemq.xml

2. Edit as follows:

<!-- 
     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>

Change managementContext createConnector="false" as managementContext createConnector="true"


3. Save and exit.


4. Restart computer.

Now activemq will stop its' processes without any errors...