By default, JSR 220 defaults to REQUIRED tx propagation type for public interface methods. You can try using REQUIRES_NEW to see if that helps. Not sure why you're using HSQLDB (unless it's for dev purposes only) and not sure if it supports XA or not (most likely not).
You need to you XA datasources whenever there is a distributed tx. So that means in the same session bean method which requires a tx, you are performing EntityManager operations on two different datasources.
You are probly better off using MySQL for dev purposes or going straight to MSSQL or Oracle which definitely support XA...
thanks for the replay. We in fact came to the same conclusion. And we had to move to MSSQL, as MYSQL does not offer complete support for XA (and JBoss was complaining). We have discovered, and I believe it was also mentioned in some thread recently, that JBoss is able to handle one XA and one non-XA datasource in the transaction, but not two non-XA ones.
What I'm really wondering is why JBoss was not complaining (loudly enough) when the two apps were deployed on two separate JBoss instances...