I noticed that when starting a cluster instance with JMS High Availability, MQ in LOCAL mode, on glassfish 2.2.1, glassfish sends hardcoded default arguments start Open MQ with an HADB jdbc backend. Since these are startup args, they overrided any config settings. I've tried setting my own startup args via the console, but glassfish appends its own startup args at the end of my own--thus overriding my hard work. I've also tried setting the startup args via asadmin and can see these persisted in the domain.xml. Unfortunately this does not change the startup args for the message queue (yes I restarted the server and even the computer). Running in EMBEDDED mode does not have this behavior--but is unfortunately not an option. I have a feeling that glassfish hardcoded this behavior as it was primarily testing its code with HADB....and I hope I am wrong!

Note: I noticed in com.sun.enterprise.connectors.system.ActiveJmsResourceAdapter.java that the final variable 'DBTYPE_HADB' has the value "hadb" which is persisted down through the log files after its initialization.

Yes, GlassFish 2.1.1 assumed the use of HADB when using an enhanced (HA) cluster in LOCAL mode. That's because HADB was actually bundled with it.

The workaround is to use REMOTE mode, which allows you to configure your MQ cluster in any way you want. However it does require you to start and stop the brokers yourself rather than leave this to GlassFish.

This restriction will be resolved in GlassFish 3.1, which will allow you to configure a LOCAL broker to use any suitable JDBC database.