Using JBoss JMS with IBM Sterling OMS 9.1

Answered this question today and thought someone else might find it helpful. It's a little lean, but it isn't meant to be exhaustive :)

We run our JMS messaging services on JBoss EAP 5.1.2 or 4.3.0 (mostly 5.1.2). We also use JBoss 5.1.2 as our application server for IBM's Sterling OMS (formerly SMCFS, formerly Yantra). 

The question I had were caveats specific to using JBoss for JMS services:
  1. Run it on RedHat Enterprise Linux
  2. Move the persistence to a DB (don't care which one... no Hypersonic for high volumes!)
  3. Don't run the 64bit switch in run.conf unless JBoss is using more than 4GB of memory (usually no reason for that just for JMS)
  4. Slim JBoss down to just the messaging components (your mileage may vary!)
  5. Don't install JBoss as a package... install it from a tarball, because RPMs are terrible for this case
  6. Don't touch the servers that come with JBoss... pick one, copy it to a new name and make slimming changes and deployments there
  7. If you ignore #5, understand that #6 will present some challenges because of the way links are created to packages... IOW, you will be in symlink hell!
  8. Watch out for setting the FullSize, PageSize and DownCacheSize parameter too high
  9. Don't co-locate messaging and ear deployment (specific to deploying the Stering OMS EAR to JBoss app servers)
  10. Move default log location to a different physical volume
  11. Log at INFO or VERBOSE while testing in the beginning
  12. Allegedly, and according to the IBM docs, queue names should not contain a "." (ours do, and we don't think we see issues with it)
  13. Also allegedly, they should not use XAConnectionFactory (use ConnectionFactory instead... XA is a two-phase commit... though we use XAConnectionFactory with no apparent issues)

I'd love to share experiences with clustering JBoss for JMS messaging, but we ain't done that yet.