We have several Stateless Session Beans that are accessing/updating data via hibernate. These SLSB's fall into 2 categories: 1-Business/Service Layer and 2-DAO. We are also using the ThreadLocalSession method of creating and using a session across SLSB calls
We have the following call stack/Transactions:
Code:
BO1 - Required
DAO1 - RequiresNew
We are encountering 1 oddball situation where the DAO1 does not appear to be committing on a successful exit (no exceptions). We have several other similar object/transactions call stacks that DO commit on exit of DAO1 method.
Notes:
1. Because we are using ThreadLocalSession, we are using the same Hibernate session along all method call in the call stack
2. I checked to ensure that all session bean to session bean calls were going through the container, thus enacting the transactional boundry of the method
3. Using Hibernate 2.1.4 in JBoss 3.2.4
4. A hunch is that, somehow, there is some hibernate/jboss confusion over starting a new transaction in this particular RequiresNew method.
5. If we change the call stack to
Code:
BO1 - Supports
DAO1 - RequiresNew
5.(cont) the DAO1 will commit on exit, as expected. Its almost as if DAO1 is behaving like it has a Required tran setting and not RequiresNew (I double checked that it IS RequiresNew)
Ideas? More info needed? Let me know,
Thanks