1) JBoss by default persists messages using a built-in database called HSQL. Adrian doesn't care for it, but it works well for me, at least for JMS. The other persistence implementations use files, but are not supported or may have bugs. Search for FilePersistenceManager and RollingLogged Persistence Manager. There are also examples in the JBoss distribution.
2) There is an in-process client/server connection factory. In your EJBs, locate javax.jms.ConnectionFactory using JNDI at java:/JmsXA. Use java:/ConnectionFactory for non-transacted use.