More in-line below.
On 08/05/2014 10:52 AM, Scott Marlow wrote:
Steve,
This is the test case that I was talking about on IRC. It simulates
what happens when several remote EJB calls occur using the same JTA
transaction. This case is probably common enough that we should solve it.
The workaround is to set hibernate.jta.track_by_thread=false.
On 06/24/2014 10:23 PM, Scott Marlow wrote:
> I pushed a test case that simulates what can happen with remote EJB
> invocations that share the same JTA transaction & EntityManager. The
> "Transaction was rolled back in a different thread!" error [2] is thrown
> but shouldn't be, since the active application thread has changed to a
> different thread (which can happen). The workaround is to set
> "hibernate.jta.track_by_thread" to false.
>
> I think that we need to save the thread id at the start of every
> application call into the EntityManager.
I'm wondering if a different approach than using the thread id, would
cover more cases (specifically the distributed + remote cases). For
example, adding a configuration option for a session level lock that the
SessionImpl implements, to protect against two threads calling into the
same session concurrently.
>
> Scott
>
> [1]
https://github.com/scottmarlow/hibernate-orm/tree/sametx_multithreads
>
> [2]
https://gist.github.com/scottmarlow/63c4ab686368853d759b
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/hibernate-dev
>
_______________________________________________
hibernate-dev mailing list
hibernate-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev