You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geronimo.apache.org by Tomasz Mazan <wi...@wp.pl> on 2007/09/04 00:55:55 UTC

Re: Two phase commit - JPA + JMS

> 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

Re: Two phase commit - JPA + JMS

Posted by Tomasz Mazan <wi...@wp.pl>.
Matt Hogstrom pisze:
> 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>*j**dbc/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>
>
>
>

I guess that it's part of geronimo-application.xml and I needn't use 
DatabasePool deployment plan insofar I put deps to pgres driver in 
preceding XML

Tomasz Mazan vel. Beniamin

Re: Two phase commit - JPA + JMS

Posted by Tomasz Mazan <wi...@wp.pl>.
> Tomasz,
>
> I corrected the problem.  I had refactored the class and forgot to 
> update the RAR.  I've updated and published new SNAPSHOTS.  Please 
> grab a new update of the XA rar.
>
> Also, set the user / password, server, etc for your postgres environment.
>
Matt

New configuration works, but there's some non-critical bugs.

If my connection definition looks like (modulo correct property values)
                        <connectiondefinition-instance>
                            <name>MyPool</name>
                            <config-property-setting 
name="Password"></config-property-setting>
                            <config-property-setting 
name="UserName"></config-property-setting>
                            <config-property-setting 
name="PortNumber">5432</config-property-setting>
                            <config-property-setting 
name="DatabaseName"></config-property-setting>
                            <config-property-setting 
name="ServerName"></config-property-setting>
                            <config-property-setting 
name="LoginTimeout">20000</config-property-setting>
                            <connectionmanager>
there's exception during view configuration via Geronimo Console :
java.lang.Exception: Problem while updaing the persistent value of 
attibute: Attribute Name: Description, Type: class java.lang.String, GBea
nInstance: 
org.apache.geronimo.connector.outbound.ManagedConnectionFactoryWrapper
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.destroyInstance(GBeanInstance.java:1128)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStop(GBeanInstanceState.java:339)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstanceState.stop(GBeanInstanceState.java:188)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.stop(GBeanInstance.java:561)
        at 
org.apache.geronimo.kernel.basic.BasicKernel.stopGBean(BasicKernel.java:423)
        at 
org.apache.geronimo.kernel.config.KernelConfigurationManager.stopRecursive(KernelConfigurationManager.java:224)
        at 
org.apache.geronimo.kernel.config.KernelConfigurationManager.stop(KernelConfigurationManager.java:204)
        at 
org.apache.geronimo.kernel.config.SimpleConfigurationManager.stopConfiguration(SimpleConfigurationManager.java:575)
        at 
org.apache.geronimo.kernel.config.SimpleConfigurationManager.stopConfiguration(SimpleConfigurationManager.java:558)
        at 
org.apache.geronimo.kernel.config.SimpleConfigurationManager$$FastClassByCGLIB$$ce77a924.invoke(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at 
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
        at 
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:865)
        at 
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
        at 
org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:342)
        at 
org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at 
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
        at 
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:865)
        at 
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
        at 
org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:168)
        at 
com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:213)
        at 
com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
        at 
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
        at 
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
        at 
javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1408)
        at 
javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:81)
        at 
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1245)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1348)
        at 
javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:782)
        at sun.reflect.GeneratedMethodAccessor334.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
        at sun.rmi.transport.Transport$1.run(Transport.java:153)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
        at 
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
        at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IllegalArgumentException: 
org.tranql.connector.postgresql.PGXAMCF: no getter for Description
        at 
org.apache.geronimo.gbean.DynamicGBeanDelegate.getAttribute(DynamicGBeanDelegate.java:124)
        at 
org.apache.geronimo.connector.outbound.ManagedConnectionFactoryWrapper.getAttribute(ManagedConnectionFactoryWrapper.java:181)
        at 
org.apache.geronimo.gbean.runtime.GBeanAttribute$DynamicGetterMethodInvoker.invoke(GBeanAttribute.java:431)
        at 
org.apache.geronimo.gbean.runtime.GBeanAttribute.getValue(GBeanAttribute.java:390)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.destroyInstance(GBeanInstance.java:1124)
        ... 42 more

So, I'd decided to set this attribute within my deployment plan, the I 
got exception on deploy:

java.lang.IllegalArgumentException: 
org.tranql.connector.postgresql.PGXAMCF: no setter for Description
        at 
org.apache.geronimo.gbean.DynamicGBeanDelegate.setAttribute(DynamicGBeanDelegate.java:132)
        at 
org.apache.geronimo.connector.outbound.ManagedConnectionFactoryWrapper.setAttribute(ManagedConnectionFactoryWrapper.java:192)
        at 
org.apache.geronimo.gbean.runtime.GBeanAttribute$DynamicSetterMethodInvoker.invoke(GBeanAttribute.java:443)
        at 
org.apache.geronimo.gbean.runtime.GBeanAttribute.setValue(GBeanAttribute.java:416)
....

It's not critical, but looks quite poorly.

Beniamin

Re: Two phase commit - JPA + JMS

Posted by Matt Hogstrom <ma...@hogstrom.org>.
On Sep 5, 2007, at 7:41 AM, Tomasz Mazan wrote:

>
>                         <connectiondefinition-instance>
>                             <name>MyPool</name>
>                             <config-property-setting  
> name="Password"></config-property-setting>
>                             <config-property-setting  
> name="UserName"></config-property-setting>
>                             <config-property-setting  
> name="PortNumber"></config-property-setting>
>                             <config-property-setting  
> name="DatabaseName"></config-property-setting>
>                             <config-property-setting  
> name="ServerName"></config-property-setting>
>                             <config-property-setting  
> name="LoginTimeout"></config-property-setting>
>                             <connectionmanager>
>
> When I try to deploy application, I get exception:
> 13:16:12,406 ERROR [GBeanInstanceState] Error while starting; GBean  
> is now in the FAILED state: abstractName="myapp/MyApp/0.1/ear?
> J2EEApplication=myapp/MyApp/0.1/ 
> ear,JCAConnectionFactory=MyXAPool,JCAResource=MyPool,ResourceAdapter=M 
> yPoo
> l,ResourceAdapterModule=FonBsaCorePool,j2eeType=JCAManagedConnectionFa 
> ctory,name=MyXAPool"
> java.lang.ClassNotFoundException:  
> org.tranql.connector.postgresql.EmbeddedXAMCF in classloader myapp/ 
> MyApp/0.1/ear
>         at  
> org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimized 
> Class(MultiParentClassLoader.java:428)
>         at  
> org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass 
> (MultiParentClassLoader.java:278)
> What I've done wrong, or where is cause of this exception. I didn't  
> find EmbededXAMCF class in jar/rar archives
>
> Tomasz Mazan vel. Beniamin

Tomasz,

I corrected the problem.  I had refactored the class and forgot to  
update the RAR.  I've updated and published new SNAPSHOTS.  Please  
grab a new update of the XA rar.

Also, set the user / password, server, etc for your postgres  
environment.

Re: Two phase commit - JPA + JMS

Posted by Tomasz Mazan <wi...@wp.pl>.
Matt Hogstrom pisze:
> 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>*j**dbc/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>
>
I put this code to my geronimo-application.xml which looks like:
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://geronimo.apache.org/xml/ns/j2ee/application-2.0">
    <environment xmlns="http://geronimo.apache.org/xml/ns/deployment-1.2">
        <moduleId>
            <groupId>myapp</groupId>
            <artifactId>MyApp</artifactId>
            <version>0.1</version>
            <type>ear</type>
        </moduleId>
    </environment>
    <ext-module>
           <connector>MyPool</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">
            <environment 
xmlns="http://geronimo.apache.org/xml/ns/deployment-1.2">
                <dependencies>
                    <dependency>
                        <groupId>postgresql</groupId>
                        <artifactId>postgresql-8.2</artifactId>
                        <version>506.jdbc3</version>
                        <type>jar</type>
                    </dependency>
                </dependencies>
            </environment>
            <resourceadapter>
                <outbound-resourceadapter>
                    <connection-definition>
                        
<connectionfactory-interface>javax.sql.DataSource</connectionfactory-interface>
                        <connectiondefinition-instance>
                            <name>MyXAPool</name>
                            <config-property-setting 
name="Password"></config-property-setting>
                            <config-property-setting 
name="UserName"></config-property-setting>
                            <config-property-setting 
name="PortNumber"></config-property-setting>
                            <config-property-setting 
name="DatabaseName"></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>MyPool</name>
                            <config-property-setting 
name="Password"></config-property-setting>
                            <config-property-setting 
name="UserName"></config-property-setting>
                            <config-property-setting 
name="PortNumber"></config-property-setting>
                            <config-property-setting 
name="DatabaseName"></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>
</application>

and persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence 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" version="1.0">
    <persistence-unit name="MyAppDB" transaction-type="JTA">
        
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
        <jta-data-source>MyXAPool</jta-data-source>
          <non-jta-data-source>MyPool</non-jta-data-source>
        <class>myapp.Customer</class>
        <properties>
            <property name="openjpa.Sequence" 
value="class-table(Table=_SEQ_GENERATOR, UseAliases=true)"/>
             <property name="openjpa.jdbc.SynchronizeMappings" 
value="buildSchema(ForeignKeys=true)" />
             <property name="openjpa.jdbc.DBDictionary" value="postgres"/>
             <property name="openjpa.Multithreaded" value="true" />
            <property name="openjpa.TransactionMode" value="managed" />
            <property name="openjpa.NontransactionalRead" value="true" />
            <property name="openjpa.RestoreState" value="all" />        
            <property name="openjpa.Optimistic" value="false"/>   
        </properties>
    </persistence-unit>
 
</persistence>


and no use separated deployment plan.

When I try to deploy application, I get exception:
13:16:12,406 ERROR [GBeanInstanceState] Error while starting; GBean is 
now in the FAILED state: abstractName="myapp/MyApp/0.1/ear?
J2EEApplication=myapp/MyApp/0.1/ear,JCAConnectionFactory=MyXAPool,JCAResource=MyPool,ResourceAdapter=MyPoo
l,ResourceAdapterModule=FonBsaCorePool,j2eeType=JCAManagedConnectionFactory,name=MyXAPool"
java.lang.ClassNotFoundException: 
org.tranql.connector.postgresql.EmbeddedXAMCF in classloader 
myapp/MyApp/0.1/ear
        at 
org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:428)
        at 
org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:278)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at 
org.apache.geronimo.connector.outbound.ManagedConnectionFactoryWrapper.<init>(ManagedConnectionFactoryWrapper.java:114)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:946)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:268)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:539)
        at 
org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:111)
        at 
org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:146)
        at 
org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:120)
        at 
org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:176)
        at 
org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:44)
        at 
org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:254)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:294)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:124)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:553)
        at 
org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379)
        at 
org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:448)
        at 
org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:187)
        at 
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:530)
        at 
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:511)
        at 
org.apache.geronimo.kernel.config.SimpleConfigurationManager$$FastClassByCGLIB$$ce77a924.invoke(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at 
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
        at 
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:865)
        at 
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
        at 
org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:342)
        at 
org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at 
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
        at 
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:865)
        at 
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
        at 
org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:168)
        at 
com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:213)
        at 
com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
        at 
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
        at 
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
        at 
javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1408)
        at 
javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:81)
        at 
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1245)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1348)
        at 
javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:782)
        at sun.reflect.GeneratedMethodAccessor287.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
        at sun.rmi.transport.Transport$1.run(Transport.java:153)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
        at 
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
        at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
        at java.lang.Thread.run(Thread.java:595)
2007-09-05 13:16:18 org.apache.cxf.bus.spring.BusApplicationContext 
getConfigResources
INFO: Could not find the configuration file cxf.xml on the classpath.
2007-09-05 13:16:24 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean 
buildServiceFromClass
INFO: Creating Service {http://jws.services.myapp/}MyApp from class 
myapp.services.jws.MyAppService
13:16:27,203 ERROR [[/MyApp/MyAppService]] "Restricted listeners 
property file not found
13:16:27,296 ERROR [GBeanInstanceState] Error while starting; GBean is 
now in the FAILED state: abstractName="myapp/MyApp/0.1/ear?
J2EEApplication=myapp/MyApp/0.1/ear,JCAConnectionFactory=MyXAPool,JCAResource=MyPool,ResourceAdapter=MyPoo
l,ResourceAdapterModule=MyPool,j2eeType=JCAManagedConnectionFactory,name=MyXAPool"
java.lang.ClassNotFoundException: 
org.tranql.connector.postgresql.EmbeddedXAMCF in classloader 
myapp/MyApp/0.1/ear
        at 
org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:428)
        at 
org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:278)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at 
org.apache.geronimo.connector.outbound.ManagedConnectionFactoryWrapper.<init>(ManagedConnectionFactoryWrapper.java:114)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:946)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:268)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:124)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:553)
        at 
org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379)
        at 
org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:448)
        at 
org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:187)
        at 
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:530)
        at 
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:511)
        at 
org.apache.geronimo.kernel.config.SimpleConfigurationManager$$FastClassByCGLIB$$ce77a924.invoke(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at 
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
        at 
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:865)
        at 
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
        at 
org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:342)
        at 
org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at 
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
        at 
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:865)
        at 
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
        at 
org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:168)
        at 
com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:213)
        at 
com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
        at 
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
        at 
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
        at 
javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1408)
        at 
javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:81)
        at 
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1245)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1348)
        at 
javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:782)
        at sun.reflect.GeneratedMethodAccessor287.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
        at sun.rmi.transport.Transport$1.run(Transport.java:153)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
        at 
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
        at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
        at java.lang.Thread.run(Thread.java:595)
13:16:28,015 ERROR [GBeanInstanceState] Error while starting; GBean is 
now in the FAILED state: abstractName="myapp/MyApp/0.1/ear?
J2EEApplication=myapp/MyApp/0.1/ear,JCAConnectionFactory=MyPool,JCAResource=MyPool,ResourceAdapter=MyPool,
ResourceAdapterModule=MyPool,j2eeType=JCAManagedConnectionFactory,name=MyPool"
java.lang.ClassNotFoundException: 
org.tranql.connector.postgresql.EmbeddedXAMCF in classloader 
myapp/MyApp/0.1/ear
        at 
org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:428)
        at 
org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:278)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at 
org.apache.geronimo.connector.outbound.ManagedConnectionFactoryWrapper.<init>(ManagedConnectionFactoryWrapper.java:114)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:946)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:268)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:539)
        at 
org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:111)
        at 
org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:146)
        at 
org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:120)
        at 
org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:176)
        at 
org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:44)
        at 
org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:254)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:294)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:124)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:553)
        at 
org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379)
        at 
org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:448)
        at 
org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:187)
        at 
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:530)
        at 
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:511)
        at 
org.apache.geronimo.kernel.config.SimpleConfigurationManager$$FastClassByCGLIB$$ce77a924.invoke(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at 
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
        at 
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:865)
        at 
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
        at 
org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:342)
        at 
org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at 
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
        at 
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
        at 
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:865)
        at 
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
        at 
org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:168)
        at 
com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:213)
        at 
com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
        at 
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
        at 
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
        at 
javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1408)
        at 
javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:81)
        at 
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1245)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1348)
        at 
javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:782)
        at sun.reflect.GeneratedMethodAccessor287.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
        at sun.rmi.transport.Transport$1.run(Transport.java:153)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
        at 
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
        at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
        at java.lang.Thread.run(Thread.java:595)

What I've done wrong, or where is cause of this exception. I didn't find 
EmbededXAMCF class in jar/rar archives

Tomasz Mazan vel. Beniamin

Re: Two phase commit - JPA + JMS

Posted by Matt Hogstrom <ma...@hogstrom.org>.
Great news !!!

So the updated RARs work correctly ?  (or at least the XA one)

Let us know if you have other issues and good luck.


On Sep 5, 2007, at 8:44 AM, Tomasz Mazan wrote:

> I've moved resourceadapter configuration to independent deployment  
> plan and deploy DatabasePools - successfully.
> persistence.xml
>
> <?xml version="1.0" encoding="UTF-8"?>
> <persistence 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"  
> version="1.0">
>    <persistence-unit name="MyDB" transaction-type="JTA">
>         
> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</ 
> provider>
>        <jta-data-source>MyXAPool</jta-data-source>
>          <non-jta-data-source>MyPool</non-jta-data-source>
>        <class>myapp.Customer</class>
>        <properties>
>            <property name="openjpa.Sequence" value="class-table 
> (Table=_SEQ_GENERATOR, UseAliases=true)"/>
>             <property name="openjpa.jdbc.SynchronizeMappings"  
> value="buildSchema(ForeignKeys=true)" />
>             <property name="openjpa.jdbc.DBDictionary"  
> value="postgres"/>
>             <property name="openjpa.Multithreaded" value="true" />
>            <property name="openjpa.TransactionMode" value="managed" />
>            <property name="openjpa.NontransactionalRead"  
> value="true" />
>            <property name="openjpa.RestoreState" value="all" / 
> >                   <property name="openjpa.Optimistic"  
> value="false"/>          </properties>
>    </persistence-unit>
> </persistence>
>
> And my application works :))
> Thanks for your help
>
> Beniamin
>


Re: Two phase commit - JPA + JMS

Posted by Tomasz Mazan <wi...@wp.pl>.
I've moved resourceadapter configuration to independent deployment plan 
and deploy DatabasePools - successfully.
persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence 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" version="1.0">
    <persistence-unit name="MyDB" transaction-type="JTA">
        
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
        <jta-data-source>MyXAPool</jta-data-source>
          <non-jta-data-source>MyPool</non-jta-data-source>
        <class>myapp.Customer</class>
        <properties>
            <property name="openjpa.Sequence" 
value="class-table(Table=_SEQ_GENERATOR, UseAliases=true)"/>
             <property name="openjpa.jdbc.SynchronizeMappings" 
value="buildSchema(ForeignKeys=true)" />
             <property name="openjpa.jdbc.DBDictionary" value="postgres"/>
             <property name="openjpa.Multithreaded" value="true" />
            <property name="openjpa.TransactionMode" value="managed" />
            <property name="openjpa.NontransactionalRead" value="true" />
            <property name="openjpa.RestoreState" value="all" />        
            <property name="openjpa.Optimistic" value="false"/>   
        </properties>
    </persistence-unit>
 
</persistence>

And my application works :))
Thanks for your help

Beniamin

Re: Two phase commit - JPA + JMS

Posted by Matt Hogstrom <ma...@hogstrom.org>.
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
>