geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: geronimo using JPOX JDO
Date Thu, 09 Aug 2007 15:08:37 GMT
I think that something like

@Resource(name="tamsDS)
@Resource(name="tamsDS2)
public class MyFoo {
...

should work.   I think we need an integration test demonstrating how  
to set this up.

thanks
david jencks

On Aug 9, 2007, at 2:11 AM, fred.ac wrote:

>
> 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.
>


Mime
View raw message