Matthieu-
If you have a custom TransactionManager, you can tell Kodo to access
it using a ManagedRuntime implementation (see http://
incubator.apache.org/openjpa/docs/latest/javadoc/org/apache/openjpa/
ee/ManagedRuntime.html ).
For example, if your TransactionManager is accessible via the JNDI
name "comp/env/MyTransactionManager", then you could tell OpenJPA to
access it by setting the "openjpa.ManagedRuntime" property to the
value: "org.apache.openjpa.ee.JNDIManagedRuntime
(TransactionManagerName=comp/env/MyTransactionManager)". For more
exotic mechanisms of accessing the TransactionManager, you can just
make a custom implementation of the ManagedRuntime class.
In the future, we intent to make this more standard by utilizing the
new javax.transaction.TransactionSynchronizationRegistry mechanism,
but for now, we have custom implementations for each of our known and
supported application servers (see the code at http://svn.apache.org/
viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/
apache/openjpa/ee/AutomaticManagedRuntime.java?
view=markup&pathrev=468504 ).
See also: http://incubator.apache.org/openjpa/docs/latest/manual/
manual.html#ref_guide_enterprise_trans
On Dec 13, 2006, at 1:13 PM, Matthieu Riou wrote:
Hi JPA guys,
In the Apache Ode podling we're currently working on replacing
Hibernate
with OpenJPA. It's been working great so far but I have a couple of
questions. I'd need to set the transaction manager and the datasource
manually using the OpenJPA API and I've been unable to find the
right class
and the right setters so far. Is there an easy way to do that?
The use case is we need to run both in containers with their own tx
manager
(like Geronimo) and lightweight containers (like Tomcat). In the
lightweight
case we instantiate our own transaction manager (JOTM) and our own
datasource (Minerva) and we don't need any JNDI (unnecessary painful).
I've been looking around and haven't found an easy way. I could
have a look
at the sources but I figured that asking you directly would be
quicker.
Thanks!
Matthieu