I am surprised that it worked in V2. You should be specifying
jta-data-source instead of non-jta-data-source in persitence.xml.
Somethig like as follows
<persistence-unit name="org.webonweb.runtime.impl.repository.db"
transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<non-jta-data-source>jdbc/webonweb/repository</non-jta-data-source>
<jta-data-source>jdbc/webonweb/repository</jta-data-source>
Thanks,
Mitesh
Girish Kumar Balachandran wrote:
Hi There,
We are trying out GF v3 for zembly.com and I am seeing following
exception in obtaining EntityManager for EntityManagerFactory (em =
emf.createEntityManager();):
Caused by: Exception [EclipseLink-4021] (Eclipse Persistence Services -
1.0.1 (Build 20080905)):
org.eclipse.persistence.exceptions.DatabaseException
Exception Description: Unable to acquire a connection from driver
[null], user [null] and URL [null]. Verify that you have set the
expected driver class and URL. Check your login, persistence.xml or
sessions.xml resource. The jdbc.driver property should be set to a
class that is compatible with your database platform
at
org.eclipse.persistence.exceptions.DatabaseException.unableToAcquireConnectionFromDriverException(DatabaseException.java:365)
at
org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:90)
Things work perfect with GF V2/2.1 but, V3 does not seem to work. Am I
supposed to do something more than the following?
Any tips would be much appreciated.
Thanks,
=Girish
These are the configuration I have:
System servlet has these 2 annotations reg PU:
@PersistenceUnits(
{
@PersistenceUnit(name = "webonweb/repositoryEntityManagerFactory",
unitName = "org.webonweb.runtime.impl.repository.db"),
@PersistenceUnit(name = "webonweb/readOnlyRepositoryEntityManagerFactory",
unitName = "org.webonweb.runtime.impl.repository.db.readonly")
}
)
Persistence.xml has (use introspection to discover all entities):
<persistence-unit name="org.webonweb.runtime.impl.repository.db"
transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<non-jta-data-source>jdbc/webonweb/repository</non-jta-data-source>
<properties>
<!-- <property name="toplink.logging.level"
value="FINE"/> -->
<!-- property name="toplink.logging.logger"
value="JavaLogger"/ -->
<!-- END JPA cache control properties -->
<property name="eclipselink.cache.shared.default"
value="true"/>
<property name="eclipselink.logging.level" value="OFF"/>
</properties>
</persistence-unit>
<persistence-unit name="org.webonweb.runtime.impl.repository.db.readonly"
transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<non-jta-data-source>jdbc/webonweb/readonlyrepository</non-jta-data-source>
<properties>
<property name="eclipselink.cache.shared.default"
value="true"/>
<property name="eclipselink.logging.level" value="OFF"/>
</properties>
</persistence-unit>
EMF was obtained by (got EMF with out any exception):
protected EntityManagerFactory createEntityManagerFactory()
throws RepositoryException {
try {
InitialContext ic = new InitialContext();
return (EntityManagerFactory) ic.lookup("java:comp/env/webonweb/repositoryEntityManagerFactory");
} catch (NamingException ne) {
throw new RepositoryException(ne);
}
}
protected EntityManagerFactory createReadOnlyEntityManagerFactory()
throws RepositoryException {
try {
InitialContext ic = new InitialContext();
return (EntityManagerFactory) ic.lookup("java:comp/env/webonweb/readOnlyRepositoryEntityManagerFactory");
} catch (NamingException ne) {
throw new RepositoryException(ne);
}
}
Made sure that the data source is getting looked up correctly by
the
following code - hence not a config problem:
private Connection getConnection() throws RepositoryException,
SQLException {
try {
InitialContext ic = new InitialContext();
DataSource sd = (DataSource) ic.lookup("java:comp/env/jdbc/webonweb/repository");
return sd.getConnection();
} catch (NamingException ne) {
throw new RepositoryException(ne);
}
}
Version: Eclipse Persistence Services - 1.0.1 (Build 20080905)
GF: GlassFish v3 Prelude (build b28f)