Type jconsole at the command prompt and slap service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi in the remote process box and whamo.
Well "no soup for me". In the words of the Pirates who don't do anything, "nothing, zilch, nodda". At first I was getting a connection timeout and would get absolutely nowhere. After a flurry of changes, it would actually connect but I didn't see the org.apache.activeMQ in the list on the left.
I was looking through my activemq.xml in my conf directory and noticed this:
<managementcontext>Ok... lets turn that puppy on. Now I start seeing this in the startup output of ActiveMQ:
<managementcontext createconnector="false">
</managementcontext>
WARNING: Failed to start jmx connector:So... at least I saw something remotely familiar to me that is supposed to go in the Remote Process box. But it seems that something else is on that port. I started thinking about what else on my system might be using jmx. I am running Apache Solr. Let's shut that down and see if it starts up. Nope. Nodda. Oh wait, how about Jrun. There was coldfusion and jrun stuff in the left pane of jconsole. After I shut down jrun and restarted ActiveMQ, finally it magically appeared. A thing of beauty.
Cannot bind to URL[rmi://localhost:1099/jmxrmi]
:javax.naming.NameAlreadyBoundException:
jmxrmi [Rootexception is
java.rmi.AlreadyBoundException: jmxrmi]
INFO ManagementContext - JMX consoles can connectNow we still have an issue. Obviously if I'm going to be using coldfusion and ActiveMQ together, they need to learn to get along. All we have to do is add an attribute to the managementContext node in conf/activemq.xml:
to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
<managementcontext>Now restart ActiveMQ and start coldfusion back up and you should be able to view ActiveMQ behind the scenes through jconsole. Now were cookin with gas.
<managementcontext createconnector="true" connectorport="1199">
</managementcontext>
Ultimately I'd like to be able to connect to JMX via java in CF to get things like queue count and connection status. We've been seeing some strangeness when CF dies due to java heap space errors that CF and AMQ will just stop talking to each other after the instance comes back up. If I cycle the CF instance, then consumer counts go back to normal and they start talking again. Communication is key to any good relationship, especially when clients are riding on it.
Speaking of communication, how has your's been with Jesus? Your eternity is riding on it.
Blessings,
Terry
1 comment:
Great info! Got me 90% of the way. This post here expouned one step further that I needed: http://codedependents.com/2009/05/23/monitoring-activemq-using-jmx-over-ssh/#comment-105
Thanks! And I love the pirate reference!
Post a Comment