Discussions

News: Hermes 1.7 Released: Java GUI for JMS

  1. Hermes 1.7 Released: Java GUI for JMS (17 messages)

    Hermes is an application that allows you to interact with JMS providers. Hermes will work with any JMS enabled transport making it easy to browse and seach queues, topics and JNDI. Messages can then be copied around, deleted or saved as files for later resending. A plugin framework that uses the native API to the provider gives monitoring of queue depth and other statistics for WebSphereMQ, WebLogic, JBossMQ, ArjunaMQ, JORAM, OpenJMS and WebMethods Enterprise.

    New Features

    • A JNDI browser letting you browse and then create sessions from the ConnectionFactory instances bound and adding administered queues or topics to the session.
    • Plugins for WebSphereMQ, JBossMQ, WebLogicMQ, ArjunaMQ, WebMethods Enterprise, OpenJMS and ObjectWeb JORAM.
    • Search for messages on queues using a regular expression - dood where's my message?
    • Automaticaly discover queues/topics from supported providers and JNDI.
    • Queue/topic statistics from supported providers.
    • Built in renderer for FIX messages.
    • Display your messages in hexadecimal.
    • Manage provider class paths in their own class loaders, allowing you to use different versions of the same provider in Hermes and to avoid cross-provider dependency incompatabilities.

    For more information see http://www.hermesjms.com

    View the Release Notes

    Threaded Messages (17)

  2. Wow! This looks really useful!

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Shared Memories for J2EE Clusters
  3. Tangosol GUI[ Go to top ]

    This tool look great.

    Cameron, Does Tangosol will provide a similar tool to browse Tangosol caches ;=) ?

    -emmanuel
  4. Tangosol GUI[ Go to top ]

    hehe, over to Cameron - dood where's my object?

    Colin.
  5. Tangosol GUI[ Go to top ]

    hehe, over to Cameron - dood where's my object?

    Well, we do have a GUI used mainly for demo, but it's nothing as kewl as this thing is .. and I often end up using the console (text-based command line) interface. I do like the look of this one though :-)

    One other thing I thought about with JMS was this -- what if you could "bridge" two queues, basically using this as a testing tool to manually transfer (in whatever order you wanted) messages from one queue to another, so you could test various scenarios of a queue-based system? It looks like you can do that by saving out the messages, etc. but any thoughts?

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Shared Memories for J2EE Clusters
  6. Tangosol GUI[ Go to top ]

    hehe, over to Cameron - dood where's my object?
    Well, we do have a GUI used mainly for demo, but it's nothing as kewl as this thing is .. and I often end up using the console (text-based command line) interface. I do like the look of this one though :-)

    Yes, but a user friendly tool can be usefull for our productions teams. Any the demon GUI is not really usefull for visualizing the content of a cache.

    -emmanuel
  7. Tangosol GUI[ Go to top ]

    what if you could "bridge" two queues, basically using this as a testing tool to manually transfer (in whatever order you wanted) messages from one queue to another, so you could test various scenarios of a queue-based system? It looks like you can do that by saving out the messages, etc. but any thoughts?

    My impression from a brief look at the site is that you could drag and drop messages between queues arbitrarily. Have I got the wrong end of the stick? See :
    Sending Messages
  8. Tangosol GUI[ Go to top ]

    what if you could "bridge" two queues, basically using this as a testing tool to manually transfer (in whatever order you wanted) messages from one queue to another, so you could test various scenarios of a queue-based system? It looks like you can do that by saving out the messages, etc. but any thoughts?
    My impression from a brief look at the site is that you could drag and drop messages between queues arbitrarily. Have I got the wrong end of the stick? See :Sending Messages

    You're correct, you can drag and drop messages between queues, topics and files.

    Colin.
  9. Hermes for testing[ Go to top ]

    OK, one more question ;-)

    How about saving a sequence of messages, for testing? In other words, a JMS test case of sorts? (Handy for regression testing, for example.)

    And similarly, the ability to "record" a stream of messages going through a queue (perhaps again by putting Hermes in the middle of two queues.)

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Shared Memories for J2EE Clusters
  10. Hermes for testing[ Go to top ]

    OK, one more question ;-)How about saving a sequence of messages, for testing? In other words, a JMS test case of sorts? (Handy for regression testing, for example.)And similarly, the ability to "record" a stream of messages going through a queue (perhaps again by putting Hermes in the middle of two queues.)Peace,Cameron PurdyTangosol, Inc.Coherence: Shared Memories for J2EE Clusters

    Cameron - the more questions the better :)

    Right now you can do the first by saving the contents of a queue or some messages from a topic as XML (the schema is in jms2xml-schema.xsd in the bin directory), you can then open the file like a queue and drag and drop messages from it or upload the entire contents to a topic/queue. Again this is a manual rather than automated task.

    You can't do the latter yet, could you drop a posting to http://www.hermesjms.com/forum about this - i think that using Hermes and its codebase to build a testing framework is a good idea and worth exploring to find out requirements.

    Colin.
  11. One other thing I thought about with JMS was this -- what if you could "bridge" two queues, basically using this as a testing tool to manually transfer (in whatever order you wanted) messages from one queue to another, so you could test various scenarios of a queue-based system? It looks like you can do that by saving out the messages, etc. but any thoughts?

    Yes, you can certainly copy messages to the filesystem and then manually send them again to queues or topics for testing. I do just this during development although I personally don't use the filesystem but another JMS provider (ActiveMQ) to store my test messages. Being a manual process it is more useful for testing during development, I've thought of providing some ant tasks to automate this kinda thing - i.e. to set up environments before unit tests are run, but not gotten round to doing it yet.

    The other common usage is in production support - removing killer messages, monitoring queue depth in time critical flows, snooping topics, searching for "lost" messages somewhere on a large collection of queues etc etc.

    Its really to address both these scenarios that Hermes was created.

    Cheers,

    Colin.
  12. Great looking product - if I could get it to work.

    I've recently been using YourKit profiler, which funtionally is similar to any other profiler out there - but the big thing it had going for it was that you had it up and running within minutes, as opposed to things like OptimizeIt, which you spend hours trying to configure.

    By your own admission Hermes is fiddly to set up and I've seen the same said by others and am experiencing this myself.

    I'm trying to set it up simply using WebLogic 8.1 and I will post the config steps once I get it working, but it would be really cool to have this in the help.

    It states that it has been tested with WebLogic 8.1, so someone must have been through this process already.

    Best Regards
    Aaron Robinson
  13. I think you need to dig around the documentation more:

    Step #1

    Create a ClasspathGroup

    http://www.hermesjms.com/managing_providers.html

    Step #2

    Create JNDI context (if using JNDI)

    http://www.hermesjms.com/creating_context.html

    Step #3

    Browse the context and create a session from one of the ConnectionFactory instances

    http://www.hermesjms.com/creating_session.html

    Hermes tries to support as wide an array of providers as possible which is why it can be a little fiddly - I find users tend to either get it first time or get a bit confused, the more u know about JMS the easier it is to use.

    All UI improvement suggestions welcome as we'd like to make it a breeze to use, log them at http://www.hermesjms.com/forum.

    Thanks,

    Colin.
  14. Colin,

    Thanks for the quick response.

    I have it set up now.

    http://www.hermesjms.com/managing_providers.html implies that you only need the classpathgroup if you have multiple providers or multiple versions of a provider.

    Strictly speaking I think this is correct, but at some point you need to tell Hermes where your weblogic.jar is so it can find the JNDI connection factory.

    I assume that the default value of system in the classpathid field refers to the CLASSPATH environment variable. I created a classpath group anyway just pointing to the weblogic.jar.

    Everything else was straight forward. I will post step by step instructions here later.

    some petty feedback: -

    drag and drop doesn't always pick up the cursor,
    browsing a queue doesn't always show the contents of a queue, can't find consistent reason - maybe it just takes time to read them all and display the data
    Select "Discover queues..." doesn't change the cursor so you don't know if it's doing anthing or not.

    Other than these minor niggles, this is a really cool tool and about time someone did it.

    Thank you.
  15. Colin,Thanks for the quick response.I have it set up now. http://www.hermesjms.com/managing_providers.html implies that you only need the classpathgroup if you have multiple providers or multiple versions of a provider.Strictly speaking I think this is correct, but at some point you need to tell Hermes where your weblogic.jar is so it can find the JNDI connection factory.I assume that the default value of system in the classpathid field refers to the CLASSPATH environment variable. I created a classpath group anyway just pointing to the weblogic.jar.Everything else was straight forward. I will post step by step instructions here later.some petty feedback: -drag and drop doesn't always pick up the cursor,browsing a queue doesn't always show the contents of a queue, can't find consistent reason - maybe it just takes time to read them all and display the dataSelect "Discover queues..." doesn't change the cursor so you don't know if it's doing anthing or not.Other than these minor niggles, this is a really cool tool and about time someone did it.Thank you.

    Thanks for the feedback, nice words and glad to hear its working ok.

    If you do post anything here can you please copy the forums at http://www.hermesjms.com/forum as this TSS thread will fade into history.

    I'll address here your comments as they're well spotted:

    1. DnD in Swing is annoying to work with, you'd imagine that a JTree (i.e. the one in Hermess with the sessions in) would be enabled so the selection would change as you drag an object over it. Dream on. I've seen some code that may solve this. On my TODO list, if a kind reader knows a snappy solution then yell.

    2. Browsing a queue should *always* show whats on it, or at least whats available via a JMS QueueBrower. Its kinda fundamental to Hermes :-) If this really is an issue then please forward to the forums with logs etc.

    3. Discover queues, well yes I don't mess with the cursor although maybe I should - however I find it confusing - everything JMS related in Hermes is asynchronous to a thread pool. It really bugs me to find GUIS that lock up (and if Hermes does then let me know!). You can see what tasks are running in the background via the "Tasks" tab in the "Tools" dockable panel and most tasks print status on the status bar at the bottom as they do their stuff to keep you informed.

    Cheers,

    Colin.
  16. Hermes 1.7 Released: Java GUI for JMS[ Go to top ]

    Used the previous version of Hermes to monitor JBossMQ. Proved to be very useful. Good job guys.
  17. Looks Good (But Not Working)[ Go to top ]

    This is certainly good. Iam waiting for some thing like this .

    I know this is not Hermes forum. But I tried to make it work for few hours But Only thing I was able to do is use it as JNDI browser.
    I tried to connect to MQSeries and JBoss.
    Iam getting null:hermes.ext.mq.MQSeriesAdminFactory. couldnot figure it out why this is happening.
    'providers' and 'etc' subdirectories are empty.
    Put every lib in classpathGroup. ( I dont have any problem connecting to queues from my application)

    Help provided is not really helpful.Anyways I think Iam missing some small thing. If this works Certainly a great product.Looking forward to use it.
  18. Looks Good (But Not Working)[ Go to top ]

    It can be a bit fiddly when you first use Hermes as there is quite a lot going on what with the multiple classloaders and plugins.

    Do check out the documentation at http:/www.hermesjms.com (for example you can right click on a connection factory in JNDI to create a session from it - the easiest way) and especially the provider specifics for JBoss and WebSphereMQ.

    Post any follups how-to questions to http://www.hermesjms.com/forum and be sure to include any exceptions from the hermes.log file and your hermes-config.xml.

    Cheers.

    Colin.