The environment is tomcat.  Our database is a JNDI datasource.
My application as it exists today is written ENTIRELY in openJPA.
Different applications in our project use different methods to talk to 
databases.  Ours is the only one that uses openJPA.
I have to implement a new feature which involves me adding a servlet to my 
webapp:  the task requires that I subclass an existing base class servlet, 
which was written in straight JDBC + SQL.  When I write my subclass, I 
will override a method.  When this method is invoked, I am supposed to 
perform certain database changes.
The base class of my servlet is written to get a database connection and 
start a transaction.  By the time MY class is called, the transaction is 
already in progress.
I have no idea what constitutes a "managed" transaction.  This terminology 
kind of smacks to me of EJB development, and we're not writing EJBs here, 
but I guess I just don't know what you guys mean by "managed" in this 
context.
I could write my subclass servlet in straight jdbc + sql, but that would 
require duplicating a fair amount of logic that has already been 
implemented elsewhere in openJPA.  It would be FAR simpler for me to find 
a way to invoke my EXISTING openJPA code but to do it in such a way that 
(in the context of this servlet only) it will re-use an existing jdbc 
connection and will recognize that there is already a transaction in 
progress.




Patrick Linskey <[EMAIL PROTECTED]> 
07/03/2008 11:34 AM
Please respond to
users@openjpa.apache.org


To
users@openjpa.apache.org
cc

Subject
Re: Re-using an existing jdbc connection?






Hi,

What environment are you executing your code in? Is this a Java EE 
app? The easiest way is to put a DataSource into JNDI, configure your 
transaction manager appropriately, and put OpenJPA into "managed 
transaction" mode. In this configuration, the semantics of Connection 
delivery will be up to the DataSource implementation.

If you don't have a transaction manager handy, you can create a 
DataSource implementation that meets your semantics, and provide it to 
OpenJPA when you create your EntityManagerFactory.

-Patrick

On Jul 2, 2008, at 5:39 PM, [EMAIL PROTECTED] wrote:

> Thanks very much for the joinTransaction() suggestion.
> As for the other suggestion, could you provide more detail on how I 
> could
> "make OpenJPA use [the existing JDBC connection] instead of opening 
> one on
> its own"? :-)
> Thanks a lot!!
>
>
>
>
>
>
>
>
> Pinaki Poddar <[EMAIL PROTECTED]>
> 07/02/2008 06:35 PM
> Please respond to
> users@openjpa.apache.org
>
>
> To
> users@openjpa.apache.org
> cc
>
> Subject
> Re: Re-using an existing jdbc connection?
>
>
>
>
>
>
>
> Hi,
>  If OpenJPA is invoked in a managed transaction context,
> EntityManager.joinTransaction() will make OpenJPA join the existing
> transaction.
>  If there is no managed transaction then you can use a bound the 
> existing
> JDBC connection to a thread and make OpenJPA use it instead of 
> opening one
> on its own.
>
>
>
> -- 
> View this message in context:
> 
http://n2.nabble.com/Re-using-an-existing-jdbc-connection--tp210696p219975.html

>
> Sent from the OpenJPA Users mailing list archive at Nabble.com.
>
>

-- 
Patrick Linskey
202 669 5907


Reply via email to