Hi David,
I use the same settings for managed and unmanaged datasource because I got
an error or a warning (can't remember) if I don't put both inside the
persistence.xml.
I have 2 Persistence Unit and 2 DataSource (4 DS because I declare XxDS and
XxDSUn), one datasource refers to a schema with read/write and TX. The other
points to another schema which is used for read only queries, sometimes they
are in 2 different DB.

<persistence-unit name="MyOrclEM" transaction-type="JTA">
                <provider>org.hibernate.ejb.HibernatePersistence</provider>
                <jta-data-source>MyOrclDS</jta-data-source>
                <non-jta-data-source>MyOrclDSUn</non-jta-data-source>
                <class>
        [pojo here]
                </class>
                <properties>
                        <property name="hibernate.dialect"
        
value="org.hibernate.dialect.Oracle10gDialect" />
                        <property name="hibernate.show_sql" value="false" />
                        <property name="hibernate.cache.provider_class"
        
value="org.hibernate.cache.HashtableCacheProvider" />
                        <property
name="hibernate.transaction.manager_lookup_class"
        
value="org.hibernate.transaction.JBossTransactionManagerLookup" />
                </properties>
        </persistence-unit>

I user latest version of OpenEJB (3.1).
I use oracle XE.
I have to say that I am migrating from JBoss 4.x, in JBoss it works
perfectly.

Thank you.

Regards,
Paolo

-----Messaggio originale-----
Da: David Blevins [mailto:david.blev...@visi.com] 
Inviato: mercoledì 21 gennaio 2009 20.32
A: users@openejb.apache.org
Oggetto: Re: datasource problem with hibernate and oracle

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-c
ore/src/test/java/org/apache/openejb/config/AutoConfigPersistenceUnitsTest.j
ava

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
>


Reply via email to