We are migrating from WebLogic 8.1 to JBoss 3.2.3 and have a very frustrating transactional problem.

We have a servlet which gets a UserTransaction and starts it, then calls an EJB(Required) which accesses a datasource and then calls another EJB(RequiresNew) which provides an ObjectID from the same datasource but different connection. All EJB's are container managed.

Problem:The SessionContext.getRollbackOnly() always returns true. If a DataSource.getConnection() is called an exception is thrown with 'Interrupted while requesting permit!'. DataSource is a Oracle 9i thin driver.

This code works if the UserTransaction is removed.This code with UserTransaction works on WebLogic 8.1.

Any ideas why the SessionContext is marked for Rollback on this EJB running in JBoss. The SessionContext is OK in WebLogic.