Hi Paolo,
Something interesting is going on.
The openejb.xml looks great and the persistence-unit declaration for
"MyEM" looks perfect. Can you post the declaration for the "MyOrclEM"
persistence-unit? Even if the MyOrclEM declaration was somehow flawed
I wouldn't expect the outcome you got. We've got a large amount of
tests[1] for this feature. We should be able to plug your config into
those tests and figure out what's going on.
On a side note, it looks like the datasources "MyDS" and "MyOrclDS"
are identical as are "MyDSUn" and "MyOrclDS". If you're willing to
give some details on what motivates that, that'd be great. I suspect
there is a feature waiting to be added there that might help you
reduce redundant configuration.
Also, what OpenEJB version are you using?
-David
[1]
http://svn.apache.org/repos/asf/openejb/tags/openejb-3.1/container/openejb-core/src/test/java/org/apache/openejb/config/AutoConfigPersistenceUnitsTest.java
On Jan 19, 2009, at 4:19 AM, Paolo Spadafora wrote:
Hello,
I have a problem with datasource, looks like openejb is using an
hsqldb
database instead of Oracle.
The error is: "table not found"
INFO: building session factory
19-gen-2009 12.43.36 org.hibernate.impl.SessionFactoryObjectFactory
addInstance
INFO: Not binding factory to JNDI, no JNDI name configured
19-gen-2009 12.43.36 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: Running hbm2ddl schema update
19-gen-2009 12.43.36 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: fetching database metadata
19-gen-2009 12.43.36 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
GRAVE: could not get database metadata
java.sql.SQLException: Tabella non trovata in statement [select
sequence_name fr
om user_sequences]
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.jdbcStatement.fetchResult(Unknown Source)
at org.hsqldb.jdbc.jdbcStatement.executeQuery(Unknown Source)
at
org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingSt
atement.java:208)
at
org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingSt
atement.java:208)
at
org.hibernate.tool.hbm2ddl.DatabaseMetadata.initSequences(DatabaseMet
adata.java:128)
at
org.hibernate.tool.hbm2ddl.DatabaseMetadata.<init>(DatabaseMetadata.j
ava:46)
at
org.hibernate.tool.hbm2ddl.DatabaseMetadata.<init>(DatabaseMetadata.j
ava:39)
at
org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:129
)
at
org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:
314)
at
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.jav
a:1300)
at
org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(Annotat
ionConfiguration.java:859)
at
org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Con
figuration.java:669)
at
org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFa
ctory(HibernatePersistence.java:132)
at
org.apache.openejb.assembler.classic.PersistenceBuilder.createEntityM
anagerFactory(PersistenceBuilder.java:183)
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Asse
mbler.java:487)
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Asse
mbler.java:447)
at
org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(A
ssembler.java:365)
at
org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:2
77)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:150)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:299)
at
org.apache.openejb.tomcat.catalina.TomcatLoader.init(TomcatLoader.jav
a:121)
Openejb.xml:
<?xml version="1.0" encoding="UTF-8"?>
<openejb>
<Container id="My CMP Container" type="CMP_ENTITY">
</Container>
<Container id="My BMP Container" type="BMP_ENTITY">
PoolSize 10
</Container>
<Container id="My Stateful Container" type="STATEFUL">
Passivator org.apache.openejb.core.stateful.SimplePassivater
TimeOut 20
Capacity 1000
BulkPassivate 100
</Container>
<Container id="My Stateless Container" type="STATELESS">
TimeOut 0
PoolSize 10
StrictPooling true
</Container>
<Resource id="MyDS" type="DataSource">
JdbcDriver oracle.jdbc.OracleDriver
JdbcUrl jdbc:oracle:thin:@localhost:1521:XE
UserName username
Password password
JtaManaged true
</Resource>
<Resource id="MyDSUn" type="DataSource">
JdbcDriver oracle.jdbc.OracleDriver
JdbcUrl jdbc:oracle:thin:@localhost:1521:XE
UserName username
Password password
JtaManaged false
</Resource>
<Resource id="MyOrclDS" type="DataSource">
JdbcDriver oracle.jdbc.OracleDriver
JdbcUrl jdbc:oracle:thin:@localhost:1521:XE
UserName username
Password password
JtaManaged true
</Resource>
<Resource id="MyOrclDSUn" type="DataSource">
JdbcDriver oracle.jdbc.OracleDriver
JdbcUrl jdbc:oracle:thin:@localhost:1521:XE
UserName username
Password password
JtaManaged false
</Resource>
<Deployments dir="apps/" />
</openejb>
Persistence.xml:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="MyEM" transaction-type="JTA" >
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>MyDS</jta-data-source>
<non-jta-data-source>MyDSUn</non-jta-data-source>
<class>.</class>
[pojo classes]
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.dialect"
value="org.hibernate.dialect.Oracle10gDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.cache.provider_class"
value="org.hibernate.cache.HashtableCacheProvider"
/>
<property
name="hibernate.transaction.manager_lookup_class"
value="org.hibernate.transaction.JBossTransactionManagerLookup" />
<property name="hibernate.hbm2ddl.auto"
value="update" />
<property name="hibernate.jdbc.batch_size"
value="0"/>
</properties>
</persistence-unit>
Openejb.log (why is openejb "Adjusting" the datasource for my EM?)
2009-01-19 12:43:30,217 - INFO - Configuring Service(id=Tomcat
Security
Service, type=SecurityService, provider-id=Tomcat Security Service)
2009-01-19 12:43:30,220 - INFO - Configuring Service(id=Default
Transaction
Manager, type=TransactionManager, provider-id=Default Transaction
Manager)
2009-01-19 12:43:30,222 - INFO - Configuring Service(id=MyDS,
type=Resource, provider-id=Default JDBC Database)
2009-01-19 12:43:30,224 - INFO - Configuring Service(id=MyDSUn,
type=Resource, provider-id=Default JDBC Database)
2009-01-19 12:43:30,225 - INFO - Configuring Service(id=MyOrclDS,
type=Resource, provider-id=Default JDBC Database)
2009-01-19 12:43:30,227 - INFO - Configuring Service(id=MyOrclDSUn,
type=Resource, provider-id=Default JDBC Database)
2009-01-19 12:43:30,230 - INFO - Configuring Service(id=My CMP
Container,
type=Container, provider-id=Default CMP Container)
2009-01-19 12:43:30,232 - INFO - Configuring Service(id=My BMP
Container,
type=Container, provider-id=Default BMP Container)
2009-01-19 12:43:30,234 - INFO - Configuring Service(id=My Stateful
Container, type=Container, provider-id=Default Stateful Container)
2009-01-19 12:43:30,235 - INFO - Configuring Service(id=My Stateless
Container, type=Container, provider-id=Default Stateless Container)
2009-01-19 12:43:30,934 - INFO - Configuring enterprise application:
C:\dev\apache-tomcat-6.0.18\apps\my-ejb.jar
2009-01-19 12:43:31,408 - INFO - Configuring
PersistenceUnit(name=MyEM,
provider=org.hibernate.ejb.HibernatePersistence)
2009-01-19 12:43:31,413 - INFO - Configuring Service(id=Default JDBC
Database, type=Resource, provider-id=Default JDBC Database)
2009-01-19 12:43:31,415 - INFO - Configuring Service(id=Default
Unmanaged
JDBC Database, type=Resource, provider-id=Default Unmanaged JDBC
Database)
2009-01-19 12:43:31,416 - INFO - Auto-creating a Resource with id
'Default
JDBC Database' of type 'DataSource for 'MyEM'.
2009-01-19 12:43:31,416 - INFO - Auto-creating a Resource with id
'Default
Unmanaged JDBC Database' of type 'DataSource for 'MyEM'.
2009-01-19 12:43:31,416 - INFO - Configuring
PersistenceUnit(name=MyOrclEM,
provider=org.hibernate.ejb.HibernatePersistence)
2009-01-19 12:43:31,417 - INFO - Adjusting MyOrclEM <jta-data-
source> to
'Default JDBC Database'
2009-01-19 12:43:31,418 - INFO - Adjusting MyOrclEM <non-jta-data-
source>
to 'Default Unmanaged JDBC Database'
2009-01-19 12:43:31,447 - INFO - Enterprise application
"C:\dev\magsuite\ms-v2\apache-tomcat-6.0.18\apps\msuite-ejb.jar"
loaded.
All necessary jars are there: hibernates jars and oracle drivers.
Thank you.
Regards,
Paolo