On Aug 8, 2007, at 11:56 PM, fred.ac wrote:


I'm trying to use JPOX framework (www.jpox.org) with geronimo 2-M6.
I have a test case (all packaged in a ear) that is working with JBOSS 4.2
and I want ot make it working with geronimo.

First problem: in the rar file provided in jpox distrib the ra.xml doesn't contain available properties (config-property elements are empty). With
Jboss I defined all properties in a jpox-ds.xml file :

<?xml version="1.0" encoding="UTF-8"?>
<connection-factories>
    <tx-connection-factory>
        <jndi-name>eis/jdo/JpoxPersistenceManagerFactory</jndi-name>
<rar-name>MyApplication.ear#jpox-jca-1.2-SNAPSHOT.rar</rar- name>

<connection-definition>javax.resource.cci.ConnectionFactory</ connection-definition>

        <config-property name="ConnectionFactoryName"
            type="java.lang.String">java:/tamsDS</config-property>
        <config-property name="ConnectionFactory2Name"
            type="java.lang.String">java:/tamsDS2</config-property>
...
  </tx-connection-factory>
</connection-factories>

With geronimo I defined the properties in a jpox.xml file like this:
<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/ connector-1.1">
    <dep:environment
xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1";>
        <dep:moduleId>
            <dep:groupId>console.dbpool</dep:groupId>
            <dep:artifactId>jpox</dep:artifactId>
            <dep:version>1.0</dep:version>
            <dep:type>rar</dep:type>
        </dep:moduleId>
        <dep:dependencies>
            <dep:dependency>
                <dep:groupId>oracle</dep:groupId>
                <dep:artifactId>ojdbc14</dep:artifactId>
                <dep:version>10.2.0.1.0</dep:version>
                <dep:type>jar</dep:type>
            </dep:dependency>
        </dep:dependencies>
    </dep:environment>

    <resourceadapter>
        <outbound-resourceadapter>
            <connection-definition>

<connectionfactory-interface>javax.resource.cci.ConnectionFactory</ connectionfactory-interface>
                <connectiondefinition-instance>
                    <name>jpox</name>
                    <!--<config-property-setting
name="ConnectionFactoryName">tamsDS</config-property-setting>
                    <config-property-setting
name="ConnectionFactory2Name">tamsDS2</config-property-setting>-->
                    <config-property-setting
name="ConnectionDriverName">oracle.jdbc.OracleDriver</config- property-setting>
                    <config-property-setting
name="ConnectionURL">jdbc:oracle:thin:@localhost:1521/XE</config- property-setting>
                    <config-property-setting
name="ConnectionUserName">sa</config-property-setting>
                    <config-property-setting
name="ConnectionPassword">hagar</config-property-setting>
                    <config-property-setting
name="Schema">SA</config-property-setting>
                    <config-property-setting
name="FixedDatastore">true</config-property-setting>
                    <config-property-setting
name="ValidateTables">false</config-property-setting>
                    <config-property-setting
name="ValidateConstraints">false</config-property-setting>
                    <config-property-setting
name="Optimistic">true</config-property-setting>
                    <config-property-setting
name="Multithreaded">true</config-property-setting>
                    <config-property-setting
name="IgnoreCache">true</config-property-setting>
                    <config-property-setting
name="RestoreValues">true</config-property-setting>
                    <config-property-setting
name="DetachAllOnCommit">true</config-property-setting>
                    <config-property-setting
name="NontransactionalRead">false</config-property-setting>
                    <connectionmanager>
                        <no-transaction/>
                        <no-pool/>
                    </connectionmanager>
                </connectiondefinition-instance>
            </connection-definition>
        </outbound-resourceadapter>
    </resourceadapter>
</connector>

the jpox.xml file is referred in geronimo-application like this :
 <module>
<connector>jpox-jca-1.2-SNAPSHOT.rar</connector>
<alt-dd>META-INF/jpox.xml</alt-dd>
</module>

Whe I deploy my ear file in geronimo I receive :
Unable to deploy: org.apache.geronimo.common.DeploymentException: The plan
is trying to set attributes: [ConnectionDriverName, ConnectionURL,
ConnectionUserName, ConnectionPassword, Schema, FixedDatastore,
ValidateTables, ValidateConstraints, Optimistic, Multithreaded, IgnoreCache,
RestoreValues, DetachAllOnCommit, NontransactionalRead]

I think it is because these properties are not define in the ra.xml provided
by jpox. If I manually add them it works.

Is it possible to define properties somewhere else ? I don't want to "patch" standard jpox distrib (jpox-jca-1.2-SNAPSHOT.rar) to make it working with
geronimo.

I think you will need to patch the rar or build your own with all the properties in the ra.xml. My understanding of the j2ca spec is that this is required of the ra.xml. If the jpox people think otherwise I'd like to know why.

My second problem: I want that jpox use a geronimo connection pool. I have created 2 connection pools via the geronimo console. I need a transactional one and a non-transactional one, how can I specify this ?. Jpox needs 2
properties to use app server connection pool : ConnectionFactoryName
(transactional) and ConnectionFactory2Name (non transactional). As you see
in the jpox-ds.xml the connections are refered with a global jndi name
(java:/tamsDS and java:/tamsDS2). How can I refer this in geronimo ?

following config doesn't work :

<config-property-setting
name="ConnectionFactoryName">java:/tamsDS</config-property-setting>
<config-property-setting
name="ConnectionFactory2Name">java:/tamsDS2</config-property-setting>

Pools created in geronimo are defined like this :
console.dbpool/tamsDS/1.0/rar
console.dbpool/tamsDS2/1.0/rar

How can I make the link between them ?

This is trickier. This seems to me like one thing the jpa spec did better than the jdo spec. Anyway, I would try providing resource- refs in each component that uses jdo (web app or ejb session bean) to each of the datasources and using something like

<config-property-setting
name="ConnectionFactoryName">java:comp/env/tamsDS</config-property- setting>
<config-property-setting
name="ConnectionFactory2Name">java:comp/env/tamsDS2</config-property- setting>

Another thing to be aware of is that your application needs to have both datasource in parent configurations. So the geronimo plan would start something like

<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.1";>
    <dep:environment
xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1";>
        <dep:moduleId>
            <dep:groupId>console.dbpool</dep:groupId>
            <dep:artifactId>jpox</dep:artifactId>
            <dep:version>1.0</dep:version>
            <dep:type>rar</dep:type>
        </dep:moduleId>
        <dep:dependencies>
            <dep:dependency>
                <dep:groupId>console.dbpool</dep:groupId>
                <dep:artifactId>tamDS</dep:artifactId>
                <dep:version>1.0</dep:version>
                <dep:type>rar</dep:type>
            </dep:dependency>
            <dep:dependency>
                <dep:groupId>console.dbpool</dep:groupId>
                <dep:artifactId>tamDS2</dep:artifactId>
                <dep:version>1.0</dep:version>
                <dep:type>rar</dep:type>
            </dep:dependency>
        </dep:dependencies>
    </dep:environment>

I'd also advise combining the 2 datasource plans into one plan. Be sure the non-transactional datasource really is configured with <no- transaction/>

As long as you name the datasources tamDS and tamDS2 in their plans I think geronimo will be able to look up the datasource correctly.

Does jpox recommend the <no-pool/> setting?

Please let us know how this works out. If you still have problems and have a sample app to demonstrate the problems I can take a look at it. I wonder if we should look into supporting jdo similarly to how jpa is supported.

thanks
david jencks



Thanks

Frédéric.
--
View this message in context: http://www.nabble.com/geronimo-using- JPOX-JDO-tf4240920s134.html#a12067391 Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.


Reply via email to