geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matt Hogstrom <m...@hogstrom.org>
Subject Re: Two phase commit - JPA + JMS
Date Wed, 05 Sep 2007 04:27:34 GMT
Tomasz,

Here is a sample  derived from DayTrader where we setup XA and non-XA  
datasources.  I created new RA's for PostgreSQL, but haven't tested  
them, that should work but hopefully you can tell me if there are  
issues.

You'll need this jar for PostgreSQL 8.2 http://jdbc.postgresql.org/ 
download/postgresql-8.2-506.jdbc3.jar and need to place it in the  
Geronimo repo and place a dependency element in your plan.

You'll also need the rars which you can find at:

http://snapshots.repository.codehaus.org/org/tranql/tranql-connector- 
postgresql-xa/8.2-SNAPSHOT/tranql-connector-postgresql- 
xa-8.2-20070905.015528-1.rar
http://snapshots.repository.codehaus.org/org/tranql/tranql-connector- 
postgresql-local/8.2-SNAPSHOT/tranql-connector-postgresql- 
local-8.2-20070905.015528-1.rar

rename these to 8.2-SNAPSHOT and place them in the Geronimo repo.

     <ext-module>
         <connector>YourDataSource</connector>
         <external-path xmlns:dep="http://geronimo.apache.org/xml/ns/ 
deployment-1.2">
             <dep:groupId>org.tranql</dep:groupId>
             <dep:artifactId>tranql-connector-postgresql-xa</ 
dep:artifactId>
             <dep:version>8-2.SNAPSHOT</dep:version>
             <dep:type>rar</dep:type>
         </external-path>
         <connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/ 
connector-1.2">
             <resourceadapter>
                 <outbound-resourceadapter>
                     <connection-definition>
                         <connectionfactory- 
interface>javax.sql.DataSource</connectionfactory-interface>
                         <connectiondefinition-instance>
                             <name>jdbc/YourXADataSource</name>
                             <config-property-setting  
name="DatabaseName">YourDatabaseName</config-property-setting>
                             <config-property-setting  
name="Description"></config-property-setting>
                             <config-property-setting  
name="UserName"></config-property-setting>
                             <config-property-setting  
name="Password"></config-property-setting>
                             <config-property-setting  
name="PortNumber"></config-property-setting>
                             <config-property-setting  
name="ServerName"></config-property-setting>
                             <config-property-setting  
name="LoginTimeout"></config-property-setting>
                             <connectionmanager>
                                 <xa-transaction>
                                     <transaction-caching/>
                                 </xa-transaction>
                                 <single-pool>
                                     <max-size>100</max-size>
                                     <min-size>0</min-size>
                                     <blocking-timeout- 
milliseconds>5000</blocking-timeout-milliseconds>
                                     <idle-timeout-minutes>30</idle- 
timeout-minutes>
                                     <match-one/>
                                 </single-pool>
                             </connectionmanager>
                         </connectiondefinition-instance>
                         <connectiondefinition-instance>
                             <name>jdbc/NoTxYourDataSource</name>
                             <config-property-setting  
name="DatabaseName">YourDatabaseName</config-property-setting>
                             <config-property-setting  
name="Description"></config-property-setting>
                             <config-property-setting  
name="UserName"></config-property-setting>
                             <config-property-setting  
name="Password"></config-property-setting>
                             <config-property-setting  
name="PortNumber"></config-property-setting>
                             <config-property-setting  
name="ServerName"></config-property-setting>
                             <config-property-setting  
name="LoginTimeout"></config-property-setting>
                             <connectionmanager>
                                 <no-transaction/>
                                 <single-pool>
                                     <max-size>10</max-size>
                                     <min-size>0</min-size>
                                     <blocking-timeout- 
milliseconds>5000</blocking-timeout-milliseconds>
                                     <idle-timeout-minutes>30</idle- 
timeout-minutes>
                                     <match-one/>
                                 </single-pool>
                             </connectionmanager>
                         </connectiondefinition-instance>
                     </connection-definition>
                 </outbound-resourceadapter>
             </resourceadapter>
         </connector>
     </ext-module>


On Sep 3, 2007, at 6:55 PM, Tomasz Mazan wrote:

>
>> Basically yes.  Geronimo won't prevent you from using non-xa  
>> datasources and jms connection factories in JTA transactions, but  
>> if anything goes wrong your data may be left in an inconsistent  
>> state.
>>
>> If you find that xa is too slow there may be ways of using non-xa  
>> jms connection factories as long as the messages are idempotent,  
>> that is sending the same message multiple times has the same  
>> effect as sending it once.  I'm not an expert on this but I think  
>> there's periodic discussion on the activemq lists.  I would start  
>> with xa everywhere and see if there are problems.
>>
>> thanks
>> david jencks
>
> David, I currently try to configure deployment plan to create  
> XADataSource for my application.
> Could you tell me how looks Geronimo-Postgresql deployment plan for  
> XA ?
>
> TIA
> Tomasz Mazan
>


Mime
View raw message