This was originally posted on my dev2dev blog January 2nd, 2008.
The WebLogic Server Administration Console provides the ability to monitor and view JMS messages from 9.x onwards. However it is a web-based tool that is optimized for configuration, not monitoring and development testing. Looking at the contents of multiple messages requires multiple screen refreshes and it can not do some advanced JMS activities like copy messages from one queue to another very easily. Hermes JMS is a handy open source project hosted by Sourceforge and built by Colin Crist that can be used to monitor, inspect, and interact with JMS Queues, Topics, and Messages. Here's how Colin describes it on the website:
HermesJMS is an extensible console that helps you interact with JMS providers making it easy to browse or search queues and topics, copy messages around and delete them. It fully integrates with JNDI letting you discover administered objects stored, create JMS sessions from the connection factories and use any destinations found. Many providers include a plugin that uses the native API to do non-JMS things like getting queue depths (and other statistics) or finding queue and topic names.
It works with many of the popular JMS providers such as Active MQ, Arjuna MQ, Tibco EMS, Fiorano MQ, JBoss MQ, JORAM, OpenJMS, Oracle, Pramati, SAP, SeeBeyond ICAN, SeeBeyond JCAPS, Sonic MQ, WebLogic JMS, WebMethods, and WebSphere MQ. This post will explain how to get Hermes installed and configured for use with WebLogic JMS. If you would like to see the setup with WebLogic as a web recording, go here, otherwise read on for the step-by-step.
If you work in the financial vertical, Hermes also has some capabilities with FIX messages that are worth checking out.
Quick setup
To install, get the installer from sourceforge and run “java –jar hermes-installer-1.12.jar” in the directory where you have placed the installer jar.
- Open the <HERMES_HOME>/bin/hermes.bat or hermes.sh in your favorite editor. Add the path to your WLS JVM at the beginning of the file right after the REM comments. Note: When I tested with the WLS 10.3 Tech Preview, I had to use the Java 6 JVM that shipped with the tech preview, so if you run into issues in the "discovery" phase, be sure to use the same JVM with Hermes as the WLS JVM you want to connect to.
set PATH=D:\bea922\jdk150_10\jre\bin
set JAVA_HOME=D:\bea922\jdk150_10\jre
- Launch Hermes by calling the hermes.bat
- Right click on “sessions” and select “new -> New session…”.
- On the resulting prompt, go to the “providers” tab at the bottom and add a “group” called “weblogic92” and a “library” specifying your path to weblogic.jar. Select “Don’t Scan” when prompted.
- No go back to the “Sessions” tab. Enter a name for the session, in this case “examplesQCF”. In the “Connection Factory” section, select “weblogic92” for the loader (you may have to save and then edit the session to see the provider you just configured in the drop down for loader). Then select “BEA WebLogic” for the “Plug In” dropdown. Then add the properties as in the image below select “OK”.
- Right click on the newly created “examplesQCF” session and select Discover. It should find all of the available destinations and list them under the examplesQCF session.
- If you right click on the exampleQueue node under the session and select “Browse”, you should be able to see the contents of the queue. I have populated my exampleQueue with 3 messages. The first of which has a message payload of “Test Message”. Notice the headers are also displayed.
Hermes can monitor multiple queues at once, auto-refresh, use selectors, delete messages, etc. Check out the user guide at http://www.hermesjms.com for more information and tutorials.
Comments from dev2dev entry:
-
ekhaskel, I haven't used the FIX and Hermes together myself, I'd encourage you to try the forums at hermesjms.org or reach out to Colin directly. james
Posted by: jbayer on February 11, 2008 at 8:06 AM
-
Hi, I downloaded this utility to try to analize FIX log. It looks very nice and powerful, but I didn't find how I may sort all messages by time. Now I can see all incoming messages first and all outgoing messages after this. It's very uncomfortable to analize log file by this way. Is it possible to see all messages sorted by time, so it will be possible to see server's answer to each request. Please advice. Regards
Posted by: ekhaskel on February 9, 2008 at 3:05 PM
-
Hi James, I've updated the WLS page with a link to here. The other way to do this - one that may also seem more familiar to many - is to create a context, browse it and then select the connection factory to use as the basis for a session. This JBoss tutorial shows you what I mean. Regards, Colin.
Posted by: colincrist on January 10, 2008 at 5:20 AM

Comments (4)
I am getting following exception trying to use "Discover". Any pointers?
java.lang.NoClassDefFoundError: weblogic/management/WebLogicObjectName
at hermes.ext.weblogic.WebLogicJMSAdminFactory.createSession(WebLogicJMSAdminFactory.java:63)
at hermes.impl.HermesAdminAdapter.getAdmin(HermesAdminAdapter.java:64)
at hermes.impl.HermesAdminAdapter.discoverDestinationConfigs(HermesAdminAdapter.java:84)
at hermes.impl.DefaultHermesImpl.discoverDestinationConfigs(DefaultHermesImpl.java:1357)
at hermes.browser.tasks.DiscoverDestinationsTask.invoke(DiscoverDestinationsTask.java:76)
at hermes.browser.tasks.TaskSupport.run(TaskSupport.java:175)
at hermes.browser.tasks.ThreadPool.run(ThreadPool.java:170)
at java.lang.Thread.run(Thread.java:595
Posted by Alex | May 26, 2009 5:51 AM
Posted on May 26, 2009 05:51
Hi James,
I tried integrating Hermes with WLS 10gR3 and not until I did this step it discovered the Queues
http://hermesjms.org/forum/viewtopic.php?t=441
After I built the wlfullclient.jar from the instructions above, I placed it in $HERMES-INSTALL-DIR/lib and restarted Hermes and worked fine.
- Kris
Posted by Kris | July 7, 2009 12:03 PM
Posted on July 7, 2009 12:03
Thank You for the great post
This works on linux as well?
Posted by itforumz | September 11, 2009 8:53 AM
Posted on September 11, 2009 08:53
It should. Hermes uses Java UI standards, probably Swing or similar, so I expect it to work fine.
Posted by james.bayer
|
September 11, 2009 9:01 AM
Posted on September 11, 2009 09:01