You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by JensToerber <je...@juwimm.com> on 2009/02/11 11:56:14 UTC
Re: OpenEJB on Oracle
Hi,
got our production application running with Openejb on Tomcat.
We are using:
- Spring 2.5.1 (JndiObjectFactoryBean); we could replace this with @EJB
- Facelets with JSF 1.2
- Timer
- MDBs
- Hibernate as JPA provider
- Entity and Session Beans
Currently no problems.
We have a newsletter module, where we generate a lot of E-Mails and need
long running transactions. We still have to test this and some other stress
tests. I'll report the results.
Best regards,
Jens
JensToerber wrote:
>
> Hi altogether,
>
> i am using OpenEJB 3.x as standalone edition for JUnit tests and i tried
> to get OpenEJB Examples running on Tomcat 6.0.x. on Oracle 10g.
>
> I have problems configuring the persistence units and/or datasources. I am
> not quite sure what the problem is:
>
> persistence.xml:
> <?xml version="1.0" encoding="UTF-8"?>
> <persistence version="1.0" 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">
> <!--
> only one persistence unit per project by JPA Tools supported
> -->
> <!--
> <persistence-unit name="JPATestProject">
> </persistence-unit>
> -->
> <persistence-unit name="beds_pu" transaction-type="JTA">
> <provider>org.hibernate.ejb.HibernatePersistence</provider>
> <jta-data-source>OracleORCL</jta-data-source>
> <non-jta-data-source>OracleORCLUnmanaged</non-jta-data-source>
> <class>info.toerber.beds.model.Test</class>
> </persistence-unit>
> </persistence>
>
> in one of my session beans i am declaring a datasource like:
> @Resource(name="OracleORCL")
> DataSource dataSource;
>
> In standalone for JUnit-Test it seems to be that OpenEJB always takes its
> default Database HSQL.
> Is this correct?
> Is it possible to change this to an Oracle Datasource?
>
> here is my openejb.xml in META-INF for standalone and in <tomcat>/conf for
> Tomcat deployment:
> <openejb>
> <Resource id="OracleORCL" type="DataSource">
> # Oracle example
> #
> # This connector will not work until you download the driver at:
> # http://otn.oracle.com/software/tech/java/sqlj_jdbc/content.html
> JdbcDriver oracle.jdbc.OracleDriver
> JdbcUrl jdbc:oracle:thin:@192.168.2.96:1521:ORCL
> UserName openejb
> Password openejb
> JtaManaged true
> </Resource>
> <Resource id="OracleORCLUnmanaged" type="DataSource">
> # Oracle example
> #
> # This connector will not work until you download the driver at:
> # http://otn.oracle.com/software/tech/java/sqlj_jdbc/content.html
> JdbcDriver oracle.jdbc.OracleDriver
> JdbcUrl jdbc:oracle:thin:@192.168.2.96:1521:ORCL
> UserName openejb
> Password openejb
> JtaManaged false
> </Resource>
> </openejb>
>
> The examples are running in Tomcat, but always on HSQL as i can see with
>
> if (this.entityManager != null) {
> Object delegate = this.entityManager.getDelegate();
> if (delegate instanceof HibernateEntityManager) {
> HibernateEntityManager hibernateEntityManager =
> (HibernateEntityManager) delegate;
> Session s = hibernateEntityManager.getSession();
> Connection conn = s.connection();
> inspectConnection(conn);
>
> private void inspectConnection(Connection conn) throws SQLException {
> DatabaseMetaData dataBaseMetaData = conn.getMetaData();
> // The drivers are included with OpenEJB 3.0 and HSQLDB is the default
> database.
> System.out.println(dataBaseMetaData.getDatabaseMajorVersion());
> System.out.println(dataBaseMetaData.getDatabaseMinorVersion());
> System.out.println(dataBaseMetaData.getDatabaseProductName());
> System.out.println(dataBaseMetaData.getDatabaseProductVersion());
> System.out.println(dataBaseMetaData.getDefaultTransactionIsolation());
> System.out.println(dataBaseMetaData.getDriverMajorVersion());
> System.out.println(dataBaseMetaData.getDriverMinorVersion());
> System.out.println(dataBaseMetaData.getDriverName());
> System.out.println(dataBaseMetaData.getDriverVersion());
>
> I could change the default Persistence Provider, but it's not running on
> my Oracle Datasource.
> Looked in the documentation and i can see that HSQL is the default
> database. But how and where can i change it always or for a specific
> persistence unit or for a resource in standalone and/or Tomcat?
>
> Btw. the persistence unit works if i take this in Eclipse JPA Tools:
> persistence.xml:
> <?xml version="1.0" encoding="UTF-8"?>
> <persistence version="1.0" 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">
> <!--
> only one persistence unit per project by JPA Tools supported
> -->
> <!--
> <persistence-unit name="JPATestProject">
> </persistence-unit>
> -->
> <persistence-unit name="beds_pu" transaction-type="RESOURCE_LOCAL">
> <provider>org.hibernate.ejb.HibernatePersistence</provider>
> <!-- use persistence.xml right mouse Synchronize classes to get
> actual list -->
> <class>info.toerber.beds.model.Test</class>
> <properties>
> <property name="hibernate.dialect"
> value="org.hibernate.dialect.Oracle10gDialect"/>
> <property name="hibernate.connection.driver_class"
> value="oracle.jdbc.OracleDriver"/>
> <property name="hibernate.connection.username" value="openejb"/>
> <property name="hibernate.connection.password" value="openejb"/>
> <property name="hibernate.connection.url"
> value="jdbc:oracle:thin:@192.168.2.96:1521:ORCL"/>
> <property name="hibernate.max_fetch_depth" value="3"/>
> <!-- JPA Tools looks for this setting(?), so does not always drop
> the table as announced -->
> <property name="hibernate.hbm2ddl.auto" value="update" />
> <!--
> creates table at start and drops at the end!!
> <property name="hibernate.hbm2ddl.auto" value="create-drop" />
> -->
> <!-- cache configuration
> <property
> name="hibernate.ejb.classcache.org.hibernate.ejb.test.Item"
> value="read-write"/>
> <property
> name="hibernate.ejb.collectioncache.org.hibernate.ejb.test.Item.distributors"
> value="read-write, RegionName"/>
> -->
>
> <!-- alternatively to <class> and <property> declarations, you
> can use a regular hibernate.cfg.xml file -->
> <!-- property name="hibernate.ejb.cfgfile"
> value="/org/hibernate/ejb/test/hibernate.cfg.xml"/ -->
> </properties>
> </persistence-unit>
> </persistence>
>
> Any help welcome.
> Thanks in advance.
>
> Jens Toerber
>
--
View this message in context: http://www.nabble.com/OpenEJB-on-Oracle-tp20294024p21952439.html
Sent from the OpenEJB User mailing list archive at Nabble.com.