Thursday, July 14, 2011

HermesJMS

I gotta give it to the developers of the HermesJMS, it saved my bacon yesterday.

In general, our JMS installation using JBoss Messaging works great. We have never had a problem out of it until somebody mucked with the underlying database. No messages were lost, but the ensuing recovery caused messages to find their way into the dead letter queue (DLQ). Hmmmm.... never thought about how to recover from that before. So we used HermesJMS to move the messages from the DLQ back to their respective queues for replay. The day was saved!

HermesJMS is a very slick, very professionally well down Java Swing app. In fact, I've seen many commercial products that weren't nearly as polished or full-featured as this package.

My only real issue was that the tutorial for getting it up and running with JBoss is a little dated... JBosAS 4.01/JBossMQ. Of course, I'm using a very dated server too... JBossAS 4.3/JBoss Messaging. But with a little Googling and some playing around, I figured it out. The differences between the JBossMQ and JBoss Messaging boil down to different classpaths. Here's what I used:

  1. /jboss-as/client/jboss-client.jar
  2. /jboss-as/client/jboss-messaging-client.jar
  3. /jboss-as/client/jbossall-client.jar
  4. /jboss-as/client/jmx-invoker-adaptor-client.jar
  5. /jboss-as/client/jnp-client.jar
  6. /jboss-as/lib/concurrent.jar
  7. /jboss-as/lib/jboss-jmx.jar
  8. /jboss-as/lib/jboss-system.jar
  9. /jboss-as/server/arin-dev/lib/jboss-messaging.jar
  10. /jboss-as/client/jboss-aop-jdk50-client.jar
  11. /jboss-as/server/arin-dev/deploy/jboss-aop-jdk50.deployer/jboss-aop-jdk50.jar

and of course, if you want to be able to view any payloads then you need to include JARs containing the class files for the beans that are serialized to your queues. But it works great.

If you are using JMS for infrastructure, I highly recommend you look at this really well-done open source project.

0 comments:

Post a Comment