Free and Open-Source JMS
SwiftMQ is a free, commercial version of JMS from Germany. The company makes its living selling support and source code for its product.
Two open-source versions exist: One is OpenJMS from ExoLab.com, and the other is part of a open-source version of J2EE at Jboss. That JMS is set at version 0.8, which makes me a bit concerned, although the JBoss folks state it's complete and being deployed.
Unless you're an open-source evangelist, I do not recommend you use open source for JMS. JMS does not enjoy the same advantages of GNU tools and Linuxnamely a large community of users ready to support each other, answer questions, and supply fixes. Rather, it has a very small community, so support is much sketchier and fixes slower. Moreover, commercial versions are inexpensive, so the dollar savings of open source is slight. Finally, since the commercial versions have been deployed at more sites and on larger nets, they will be better tested than open-source versions.
Almost all vendors provide free developer versions for you to use. Since code written for JMS is pretty much portable between implementations, you can take any leading version and work with it to develop and test your code. Most versions limit the number of connections you can make to the JMS server. This is the case with Sonic Software, Fiorano, and BEA Systems.
If you need to test your code on systems with more connections, then try SwiftSoft or Talarian's free download, which are completebut time-lockedimplementations. Alas, the time locks are both an excessively short 15 days, so don't download them until you're ready to go. Alternatively, you can always use SwiftMQ's version for an indefinite period, should you want to do more testing.
Take your time, choose carefully, and enjoy the fact that if you chose the wrong JMS, you will for the first time in computing history be able to change middleware providers without rewriting your applications. Hooray!