You can limit the size of your MDB pool through JBoss's configuration. It probably ships with a decent, conservative default setting so you won't exhaust your resources. I don't remember the details of changing this, but it's in the free documentation: http://www.jboss.org/docs/index, and probably the wiki as well.
JBoss should automatically handle reusing the MDB instances.
This is the solution I consider at the moment. I'm just wondering whether someone has *the* brilliant idea - cause class variables or singletons are no option for MDBs.
There is the famous SingletonMessageDrivenBean -- take a look at standardjboss.xml in JBoss 3.2.5. Or, store your crap in a MBean, which is effectively a singleton.