This page last changed on Oct 19, 2006 by mmccorma.


This is a draft

Background

HermesJMS is a console for JMS messaging and supports QPID. This page shows how to configure Hermes with QPID.

As the QPID codebase is moving quickly forward at the moment and there are some workarounds in place within Hermes to support it, you should ensure that you download the latest Hermes build from HEAD

Finally, you should familiarise youself with Hermes via the tutorials on the website before continuing. Look at the Tibco EMS and JBoss tutorials for how to use connection factories directly or via JNDI. This page uses them directly.

Configuring

To get QPID working, you need to configure the libraries to load via the GUI. Hermes loads up each provider in its own classloader to avoid any dependency problems across providers. This tutorial assumes you've downloaded and built QPID via the ant dist task.

Configure the CLASSPATH

Start Hermes and select Options -> Configuration and click on the Providers tab. Create a new classpath group (right click for this) and add the following JARS to it:

Cannot resolve external resource into attachment.

When asked, choose the scan option to get Hermes to search the libraries to find any classes that implement JMS connection factory interfaces, this is essential for the next step.

Finally, click OK.

Configure The Session

Right click on the tree of sessions and select New -> Session. In the session combo box at the top put in the name you want, for example QPID. Its important the next thing you do is select the loader so the dialog can find any connection factories.

In the Class combo box choose the org.apache.qpid.client.AMQConnectionFactory.

Next, in the property list for the connection factory, right click to add new properties and use the combo to select which one and add their value.

Finally, and very importantly, check the Use consumer checkbox at the top. QPID does not support JMS queue browsing but Hermes lets you use a {MessageConsumer instead. Remember of course that if an consumer is currently active you will not get the real queue content, Hermes uses a transacted session and some messages may be uncommitted in another consumers session.

Add Destinations

Currently you must manually add queues and topics. You can add them now or later from the New queue, New topic or New durable subscription actions in the toolbar. If you add them now then right click in the destination list to add them.

The session and destinations should look something like this. Once happy, click OK.

Cannot resolve external resource into attachment.

Try a Browse

Finally, double click on a queue or topic in the newly created session in the tree and you should get see something like the following (assuming you've got something in the queue or being published in the topic to see):

Cannot resolve external resource into attachment.

This message is a JMS BytesMessage so there not much to see until you see its really a FIX message and clicking on the FIX tab reveals it.

Cannot resolve external resource into attachment.

Other Features

Refer to the HermesJMS site for how to use all the other feature of HermesJMS with QPID.

Issues

1. Queues must already exist before you browse them.

1. get/setJMSDestination() is not supported on a message so Unknown is shown.

Document generated by Confluence on Apr 22, 2008 02:47