Thanks for your quick reply!
I have a session bean with jpox persitence manager factory injected like
this :
@Stateless(name = "hello")
@TransactionManagement(TransactionManagementType.CONTAINER)
public class StatelessSessionBean implements StatelessSession {
@Resource(name = "jpox")
private PersistenceManagerFactory pmf;
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public String sayHello(String name) {
String fctrName = "?";
try {
PersistenceManager pm = pmf.getPersistenceManager();
Query q = pm.newQuery(Functionality.class, "name == 'test2'");
q.setUnique(true);
Functionality fct = (Functionality) q.execute();
FunctionalityRelease fctr =
fct.getFunctionalityRelease("00.00.01");
q.closeAll();
pm.close();
fctrName = fctr.getName();
} catch (Exception ex) {
ex.printStackTrace();
}
return fctrName;
}
}
You said "try providing resource-refs in each component that uses jdo (web
app or ejb session bean) to each of the datasources"
How can I define resource-refs you mentioned ? in ejb-jar.xml,
open-ejb-jar.xml ? Could you give me an example ?
Thanks
Fred.
djencks wrote:
>
>
> 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.
>>
>
>
>
--
View this message in context:
http://www.nabble.com/geronimo-using-JPOX-JDO-tf4240920s134.html#a12069028
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.