As from 3.2.4, it's using a database to persist subscription instead of the jbossmq-state.xml file.
Check deploy/jms/ for the class name to use (hsql-jbossmq-state.xml I think).
The problem is that the default JMS state manager MBean that is loaded in JBoss 3.2.5 is the HQSL JDBCStateManager (and not the DynamicStateManager, as required). However, you are still able to use the DynamicStateManager (the one which gets its usernames and passwords from conf/jbossmq-state.xml) if you want to.
Changing the security domain for JBossMQ in login-config.xml to use the DynamicLoginModule isn't enough - you also need to change the loaded state manager MBean.
So in order to use the DynamicLoginModule in JBoss 3.2.5, you need to follow these steps:
1) Modify the security domain for JBossMQ in the conf/login-config.xml file to:
<!-- Security domain for JBossMQ -->
<application-policy name = "jbossmq">
<login-module code = "org.jboss.mq.sm.file.DynamicLoginModule" flag = "required">
<module-option name = "unauthenticatedIdentity">guest</module-option>
<module-option name = "sm.objectname">jboss.mq:service=StateManager</module-option>
2) Rename the deploy/jms/hsqldb-jdbc-state-service.xml file to something without the ".xml" extension, so that it is not deployed when the server starts up (something like hsqldb-jdbc-state-service.orig, for example). This
file contains the configuration which tells JBoss to load the HSQL JDBCStateManager mbean, which you don't want loaded.
3) Add the following lines to the deply/jms/jbossmq-service.xml file:
<!-- This file is pulled from the configuration URL of the server -->
This now loads the DynamicStateManager into the state manager mbean instead,
which gets around the ClassCastException.