JMS Pluggability and Generic RA for JMS
Each J2EE application server comes with their own JMS providers. For a developer, it is a good thing. He can write his jms apps and MDBs easily. But a production environment might be quite different. In many cases, people write a new J2EE application and use it with their existing software stack. That means, a lot of time, you will end up in using one J2EE application server and use a JMS provider that is written by some other vendor.
For most simple applications, it is still okay. Most JMS providers give some sort of JNDI capability so that an application can lookup javax.jms.QueueConnectionFactory and javax.jms.Queue objects and send a message.
The trouble comes, when you need to write a true J2EE application, that use container managed transaction and authentication management, that need to be performant (think of connection pools), need inbound communication with MDBs etc. Then add distributed (XA) transactions to the mix. It gets very complicated.
More than an year after we started http://genericjmsra.dev.java.net project, I did a bit of googling about Generic RA for JMS. It seems, many people are able to use different JMS providers with different application servers using this resource adapter.
The resource adapter is now bundled with two application servers. Sun Java System Application server (Project GlassFish) and Borland Application Server. It is also known to work with Websphere Application Server. These links (1 and 2) indicate that someone has got it working with Geronimo also. Hopefully, more application servers will get into the list sooner or later.
Look like jencks folks have got it working with their container. Since jenks is very close to Spring, it also can connect to any JMS provider using the resource adapter.
It has also been found working with the many JMS providers. WebsphereMQ, Tibco EMS, OpenJMS, ActiveMQ, Sun Java System Message Queue and Seebeyond Message Queue are found to be working with one or more application servers. Hopefully someone will try others (FioranoMQ, SonicMQ, JbossMQ, SwiftMQ etc) also soon.
Siva recently gave a community corner talk titled the availabilty features in the genericjmsra at JavaOne 2006. Those slides will be useful for folks who want to use the adapter in production. The other good resource is the user guide.