[hibernate-dev] Work on HHH-3110

joël Winteregg joel.winteregg at gmail.com
Thu Jun 19 17:32:35 EDT 2008


Hi Les,


I also had the same issue which was fixed using an update of the
transaction manager I use (Bitronix 1.3). A light JNDI server is now
embedded in it...
For info, the main developer of Bitronix is also working for Atomikos
(JTA world seems to be small ;-)
 
My JNDI hibernate.cfg.xml is now defined as follow:
<property name="hibernate.jndi.url"/>
<property
name="hibernate.jndi.class">bitronix.tm.jndi.BitronixInitialContextFactory</property>

Regards,

Joël

On Thu, 2008-06-19 at 16:42 -0400, Les Hazlewood wrote:
> Hi guys,
> 
> It has been a while since I've talked to most of the Hibernate team -
> I hope all is well with everyone.  I can say that I miss that I miss
> working with the people, not so much the consulting travel :-P
> 
> Anyway, lemme get to business.
> 
> I upgraded from 3.2.5 to 3.2.6 and started getting exceptions about
> JNDI.  The company I'm working with uses Atomikos standalone
> transaction manager outside of a JEE environment (no JNDI necessary),
> I found this issue that exactly describes what I'm seeing:
> 
> http://opensource.atlassian.com/projects/hibernate/browse/HHH-3110
> 
> It was interesting to see from many posts on the web that many other
> people are seeing the same issue, BTM, Jotm, Atomikos users, etc...
> 
> So, I started thinking, and communicated with Chris since the issue
> was assigned to him.  Here's a summary:
> 
> Les:  I want to make some architectural adjustments to the
> org.hibernate.transaction.JTATransaction implementation that would
> work with or without JNDI, but be fully backwards compatible.
> 
> Any objections to me assigning the issue to myself?
> 
> Chris: I have an objection only insomuch as JTA implies JNDI
> availability. Open up this issue on hibernate-dev and let's flesh it
> out with Steve. I think the right solution is to provide an additional
> implementation that uses JOTM directly, as suggested by Felix on the
> JIRA case.
> 
> So, here I am.
> 
> The issue with JTATransaction is that it acquires the the
> UserTransaction object via a JNDI lookup.  If JNDI isn't being used,
> we have the exception.
> 
> The proposed solution is to create an AbstractJTATransaction that does
> exactly what the current implementation does, but abstracts the
> UserTransaction lookup to subclasses.
> 
> Then JTATransaction would subclass AbstractJTATransaction and
> implement the default JNDI lookup logic as exists today.
> 
> A new class, say a StandaloneJTATransaction would subclass
> AbstractJTATransaction and acquire it via a different mechanism -
> probably the TM-specific TransactionManagerLookup implementation looks
> it up first and then passes it in the StandaloneJTATransaction
> constructor.
> 
> Anyway, this would be fully backwards compatible because the
> JTATransaction implementation would retain the same API and
> functionality.  It would just support non-JNDI environments very
> cleanly and the TransactionManagerLookup implementation, which is
> already TM-specific, would know what to do based on if it requires
> JNDI or not.
> 
> So what do you think?  Can I make this change in my local environment
> and upload the patch to the issue to see how you guys like it?  It
> would make a lot of users (including me ;) ) quite happy, while still
> retaining the JNDI defaults as expected by JTA.
> 
> Cheers!
> 
> Les
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev




More information about the hibernate-dev mailing list