Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] Overwrite session manager settings

Ahh, thanks.

However, the fact that it uses info from _another_ EMF still seems odd to me. I would imagine EMFs were completely separate.

Jaka

Sent from my iPhone

On Apr 2, 2009, at 16:32, James Sutherland <jamesssss@xxxxxxxxx> wrote:


Reads will normally use the login information from the EntityManagerFactory. This is because the shared cache should use a common login. You can do this
however using the property,

"eclipselink.jdbc.exclusive-connection.mode"="Always"

See,
http://www.eclipse.org/eclipselink/api/1.1/org/eclipse/persistence/config/PersistenceUnitProperties.html#EXCLUSIVE_CONNECTION_MODE

You can also disable the shared cache using,

"eclipselink.cache.shared.default"="false"

Or disable on a per class basis.


Jaka Jančar wrote:

Hi Tom,

I'm having a problem with this approach: the wrong connections are
being used for the persistence units.

I have two Persistence Units defined in persistence.xml: ClusterPU and
InstancePU. The EMF for ClusterPU is created normally, supplying JDBC
data and not overriding it in createEM(). The EMF for InstancePU is
created without supplying JDBC data and setting it each time in
createEM().

After the EMFs are created, I create an EM for ClusterPU, the pool is
initialized and all works fine for ClusterPU.

The problem is with InstancePU (the one with per-EM JDBC parameters):

If I save an entity (instanceEm.persist(entity)) a new connection is
established and all works fine. However if I try to load an entity
(instanceEm.find(entityClass, entityId)), a connection from ClusterPU
will be used, instead of a new one being created, which is completely
incorrect!

Any ideas?

 Jaka


On 19. Mar 2009, at 20:39, Jaka Jančar wrote:

Hmm... this is awesome, I'll check it out.

Hibernate does not support this at all, btw :)

Jaka

On 19. Mar 2009, at 19:50, Tom Ware wrote:

Hi Jaka,

I just spoke to a colleague and he mentioned that the behavior is
exposed through properties.

The key is to create a working EntityManagerFactory with the
strategy listed below.  (i.e. Provide working connection
information at the creation of the EMF)

Once you have done that, you can create EntityManagers with
alternate connection information using the properties in
org.eclipse.persistence.config.EntityManagerProperties.  Note: They
are the same strings as the ones you use for EntityManagerFactory
creation.  The limitation here is that you must connect to a
database that uses the same EclipseLink DatabasePlatform.

Once again, the recommended approach for most applications is to
use the settings in EntityManagerFactory.  The additional
functionality is available for applications that have more
complicated connection requirements.

-Tom

Jaka Janc(ar wrote:
Tom,
is it possible to specify the database server on an EntityManager
basis?
In other words, what can you do if you want to connect to loads of
different hosts, but don't want to recreate EntityManagerFactory
for each one (since that takes ages).
Jaka
On 19. Mar 2009, at 19:23, Tom Ware wrote:
Hi Phil,

In EclipseLink, EntityManagerFactory holds the object that
controls database connections.  As a result you need to provide
the database properties to the EntityManagerFactory at creation
time.  (In the bootstrap API, a Map can be provided to the
Persistence.createEntityManagerFactory(String, Map) method.)

If you need to regulate these things on an EntityManager basis,
there is some EclipseLink specific API that can be used to do
that, but for most people, the general API is sufficient.

-Tom






-----
---
http://wiki.eclipse.org/User:James.sutherland.oracle.com James Sutherland
http://www.eclipse.org/eclipselink/
EclipseLink ,  http://www.oracle.com/technology/products/ias/toplink/
TopLink
Wiki:  http://wiki.eclipse.org/EclipseLink EclipseLink ,
http://wiki.oracle.com/page/TopLink TopLink
Forums: http://forums.oracle.com/forums/forum.jspa?forumID=48 TopLink ,
http://www.nabble.com/EclipseLink-f26430.html EclipseLink
Book:  http://en.wikibooks.org/wiki/Java_Persistence Java Persistence
--
View this message in context: http://www.nabble.com/Overwrite-session-manager-settings-tp22606192p22849307.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.

_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users


Back to the top