[hibernate-dev] [OGM] Transaction type "RESOURCE_LOCAL", still JTA is required

Gunnar Morling gunnar at hibernate.org
Tue Jan 13 13:18:15 EST 2015


Hi,

For a demo I have an OGM application which defines a persistence unit with
transaction type RESOURCE_LOCAL.

I thus assumed I wouldn't have to add a JTA implementation to the class
path, but actually I'm getting a CNFE (see [1] for the complete trace):

    ClassNotFoundException: Could not load requested class :
com.arjuna.ats.jta.TransactionManager

Indeed Arjuna is what we use as TM by default. It is set by OGM's
JtaPlatform implementation which in turn is used by transactions created by
OGM's default TransactionFactory [2].

Unless I'm doing something wrong configuration-wise, I feel that requiring
a JTA implementation for a non-transactional backend such as MongoDB is
confusing and may make users ask whether OGM is doing the right thing.

Would it be feasible to to provide an "OGM local" TransactionImplementor +
TransactionFactory to be used in such cases where the store does not
support transactions (so no rollbacks etc.), but we'd "only" need a trigger
for writing out changes to the datastore?

Any thoughts?

--Gunnar

[1] https://gist.github.com/gunnarmorling/ba193caecb7d5cdbd0a4
[2]
https://github.com/hibernate/hibernate-ogm/blob/master/core/src/main/java/org/hibernate/ogm/transaction/impl/OgmTransactionFactoryInitiator.java#L42


More information about the hibernate-dev mailing list