Bug 453180 - Hibernate DAOs Do Not Participate in JTA Transactions
Hibernate DAOs Do Not Participate in JTA Transactions
Status: CLOSED CURRENTRELEASE
Product: JBoss Customer Support Portal
Classification: Retired
Component: Web-General (Show other bugs)
1.3.9
All All
medium Severity medium
: ---
: ---
Assigned To: JBoss CSP Bug Watch List
:
Depends On: 453179
Blocks: HibernateIssues 463287
  Show dependency treegraph
 
Reported: 2008-06-27 14:22 EDT by John Sanda
Modified: 2009-02-05 16:13 EST (History)
1 user (show)

See Also:
Fixed In Version: MR8-CSP
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2009-01-30 12:39:24 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description John Sanda 2008-06-27 14:22:18 EDT
Description of problem:
Our EJB methods in demarcated by container-managed JTA transactions. Our
Hibernate DAOs can and should participate in those transactions; however, they
do not. 

We fetch (hibernate) session objects from our HibernateSessionFactory class.
This class uses a thread local, which isn't necessary *if* we are using one of
hibernate's session contexts. Every hibernate session context implementation is
responsible for ensuring thread safety. After looking at the code some more, I
finally saw it. We are not using hibernate's session context at all. To use
hibernate's session context (be it thread local or JTA), you need to call
SessionFactory.getCurrentSession(), but we explicitly create a new session with
SessionFactory.openSession(). I had to poke around the hibernate source and the
new hibernate "bible" to put this together.

This is tied in with bug 453179.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:
Comment 1 John Sanda 2008-06-27 14:26:09 EDT
With things properly configured, we can altogether remove our
HibernateSessionFactory class since Hibernate provides that behavior for us out
of the box.
Comment 2 John Sanda 2008-07-24 14:39:20 EDT
This bug has been fixed in a branch at
https://svn.devel.redhat.com/repos/CSP/branches/developer-branches/jsanda/hibernate-testing.
Comment 3 John Sanda 2009-01-30 12:39:24 EST
This fix was moved into trunk a while back and subsequently also moved into the MR8 branch. It went out in the MR8 release.

Note You need to log in before you can comment on or make changes to this bug.