>1. Should
our EntityManagerImpl wrap a client-session instead of a server session to
better handle the isolated client session's cache lifecycle matching that of
the EntityManager? If we need a server session we can always get it through
getParent()
The
ClientSession is released after JTA transction is completed, therefore we
can't keep ClientSession for
the lifetime EntityManagerImpl.
[Doug Clarke] Why is
this? If I decide I want to use just the shared cache it continues to
function across multiple EntityManager and across multiple transactions
within those entity managers. Why is it then why I decide I want an isolated
cache would that cache not live for the lifespan of my EntityManager
across zero or more transactions. I can see how the UnitOfWork
used in the EntityManager would be released after the
commit.
Note: We would need to discuss how
EntityManager.clear() would behave with respect to the client sessions's
isolated cache versus the transactional cache and an extended persistence
context.
>2. How can
we address proxy authentication through JPA? We need to change how we create
the client session within the EntityManagerImpl and thus the lifecycle of
the client session is important to this discussion. See: https://bugs.eclipse.org/bugs/show_bug.cgi?id=219434
We
should pass proxy authentication properties to createEntityManager
method, then use thiese properties in to create first ClientSession, then
RepeatableWriteUOW in getActivePersistenceContext
method.
>3. Does
anyone have an idea of how I could work-around our current implementation
limitations to make proxy authentication work through our current JPA
implementation in EclipseLink?
It *might*
be possible to do something probably using thread variables.
[Doug Clarke] OK,
thanks. I'll try a few things
out.
----- Original Message -----
Sent: Wednesday, February 20, 2008
8:37 AM
Subject: [eclipselink-dev]
EntityManager usage of ClientSession
Developers,
On the TopLink
forum
there is a customer trying to use proxy authentication. Our
documentation and a similar thread on the JDeveloper
forum show the usage of proxy authentication using a
SessionEventListener and a custom call to
Server.acquireClientSession(db-login). Using this within JPA is proving
challenging. The SessionEventListener can be easily introduced using a
persistence unit property but addressing the proxy credentials is more
challenging:
Login login = (Login)serverSession.getLogin().clone();
login.setProperty("proxytype", Integer.toString(OracleConnection.PROXYTYPE_USER_NAME));
login.setProperty(OracleConnection.PROXY_USER_NAME, "hr");
ConnectionPolicy connectionPolicy = new ConnectionPolicy(login);
// for vpd support connectionPolicy.setShouldUseExclusiveConnection(true);
clientSession = serverSession.acquireClientSession(connectionPolicy);
I took a quick
look through our implementation of EntityManager and we have one case
where we acquire a client session in the process of acquiring a UnitOfWork
but in most cases we simply acquire the UnitOfWork from the server
session. I know this internally results in a client session but it does
feel weird. I would have expected us to acquire a client session and hold
it in the EntityManager (possibly during construction) and then acquire
repeatable-read UnitOfWork or non-synchonized UnitOfWork as needed form
the client session. This would allow the isolated client session, when
used, to have a life-cycle equivalent to that of the
EntityManager.
I guess I have
a few questions:
1. Should our
EntityManagerImpl wrap a client-session instead of a server session to
better handle the isolated client session's cache lifecycle matching that
of the EntityManager? If we need a server session we can always get it
through getParent()
2. How can we
address proxy authentication through JPA? We need to change how we create
the client session within the EntityManagerImpl and thus the lifecycle of
the client session is important to this discussion. See: https://bugs.eclipse.org/bugs/show_bug.cgi?id=219434
3. Does anyone
have an idea of how I could work-around our current implementation
limitations to make proxy authentication work through our current JPA
implementation in EclipseLink?
Cheers,
Doug
Doug Clarke
Director of
Product Management, Oracle TopLink
Oracle Server Technologies
45 O'Connor, Suite 4000
| Ottawa, ON
K1P
1A4 Canada
+1 613 288
4617
_______________________________________________
eclipselink-dev
mailing
list
eclipselink-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-dev