we do this, but without JMS..
just for CMP and EJB-Timers.
For CMP it is not a risk if you aren't use CMP-caching.
The timer tables must different (if you use timer), this can be configured in version 4.2. Otherwise ejbtimer services are started twice.
JMS depends on what you using:
JBossMQ -> deployed as HASingleton in a cluster
not able to run in cluster or separated nodes like yours
EXECPT: you ensure that the provider/consumer use a message-property to ensure it.
I think that works but it is a dirty hack IMHO
JBossMessaging -> is cluster ready.
All nodes are useing the same DB (in a cluster) but each node needs it's unique id to handle the queue.
I don't play around with it, so I'm not sure how it works. But my dirty hack should work as well.