Quck question : Do you use camel-blueprint with your transacted camel route ?
On Tue, Apr 12, 2011 at 7:09 PM, Charles Moulliard <[email protected]> wrote: > I have found the reason. > > The Tx Manager configured in my spring config file was for the > following interface > org.springframework.transaction.PlatformTransactionManager and not > javax.transaction.Transaction > > <tx:annotation-driven transaction-manager="txManager"/> > > <osgi:reference id="txManager" > interface="javax.transaction.TransactionManager"/> > > <bean id="entityManagerFactory" > class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> > <property name="persistenceUnitName" value="reportincident"/> > </bean> > > That works now. Rollback occurs. > > Cheers > > Charles > > On Tue, Apr 12, 2011 at 7:01 PM, Johan Edstrom <[email protected]> wrote: >> That looks right to me, if the transaction failed, there is no commit called >> on the DB record, effectively a "roll-back"? >> On Apr 12, 2011, at 10:13 AM, Charles Moulliard wrote: >> >>> This is my feeling too. >>> >>> In the hsqldb.log, I do not see any commit >>> >>> SET AUTOCOMMIT TRUE >>> /*C3*/INSERT INTO T_INCIDENT VALUES(1,'2011-04-12 >>> 18:08:10.000000000','file','this is a report incident for >>> camel-001','[email protected]','Ibsen','Claus','2011-01-22 >>> 00:03:00.000000000','001','+111 10 20 300','incident camel-001') >>> /*C9*/DISCONNECT >>> /*C3*/INSERT INTO T_INCIDENT VALUES(2,'2011-04-12 >>> 18:09:57.000000000','file','this is a report incident for >>> camel-001','[email protected]','Ibsen','Claus','2011-01-22 >>> 00:03:00.000000000','001','+111 10 20 300','incident camel-001') >>> >>> >>> and tracing of openjpa is difficult to interpret >>> >>> 7125 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Preparing mapping for >>> "com.fusesource.webinars.persistence.model.Incident". >>> 7126 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Processing registered persistence-capable class >>> "class com.fusesource.webinars.persistence.model.Incident". >>> 7126 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.incidentId". >>> 7127 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - "incidentId" has mapping strategy >>> "org.apache.openjpa.jdbc.meta.strats.PrimitiveFieldStrategy". >>> 7127 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.creationDate". >>> 7128 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - "creationDate" has mapping strategy >>> "org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy". >>> 7128 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.creationUser". >>> 7129 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - "creationUser" has mapping strategy >>> "org.apache.openjpa.jdbc.meta.strats.StringFieldStrategy". >>> 7129 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.details". >>> 7130 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - "details" has mapping strategy >>> "org.apache.openjpa.jdbc.meta.strats.StringFieldStrategy". >>> 7130 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.email". >>> 7130 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - "email" has mapping strategy >>> "org.apache.openjpa.jdbc.meta.strats.StringFieldStrategy". >>> 7131 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.familyName". >>> 7131 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - "familyName" has mapping strategy >>> "org.apache.openjpa.jdbc.meta.strats.StringFieldStrategy". >>> 7132 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.givenName". >>> 7132 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - "givenName" has mapping strategy >>> "org.apache.openjpa.jdbc.meta.strats.StringFieldStrategy". >>> 7132 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.incidentDate". >>> 7133 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - "incidentDate" has mapping strategy >>> "org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy". >>> 7133 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.incidentRef". >>> 7134 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - "incidentRef" has mapping strategy >>> "org.apache.openjpa.jdbc.meta.strats.StringFieldStrategy". >>> 7134 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.phone". >>> 7135 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - "phone" has mapping strategy >>> "org.apache.openjpa.jdbc.meta.strats.StringFieldStrategy". >>> 7135 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.summary". >>> 7135 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - "summary" has mapping strategy >>> "org.apache.openjpa.jdbc.meta.strats.StringFieldStrategy". >>> 7136 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - >>> "com.fusesource.webinars.persistence.model.Incident<discriminator>" >>> has mapping strategy "none". >>> 7136 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - >>> "com.fusesource.webinars.persistence.model.Incident<version>" has >>> mapping strategy "none". >>> 7136 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving mapping for >>> "com.fusesource.webinars.persistence.model.Incident@1310743528". >>> 7137 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - >>> "com.fusesource.webinars.persistence.model.Incident" has mapping >>> strategy "full". >>> 7137 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Initializing mapping for >>> "com.fusesource.webinars.persistence.model.Incident@1310743528". >>> 7137 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.creationDate". >>> 7138 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.creationUser". >>> 7138 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.details". >>> 7138 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.email". >>> 7139 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.familyName". >>> 7139 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.givenName". >>> 7139 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.incidentDate". >>> 7140 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.incidentId". >>> 7140 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.incidentRef". >>> 7140 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.phone". >>> 7141 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.MetaData - Resolving field >>> "com.fusesource.webinars.persistence.model.Incident@1310743528.summary". >>> 7145 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.jdbc.JDBC - <t 372693120, conn 21370232> [0 ms] commit >>> 7146 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.jdbc.JDBC - <t 372693120, conn 0> [0 ms] close >>> 7157 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.jdbc.JDBC - <t 372693120, conn 0> [0 ms] close >>> 7166 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.jdbc.JDBC - <t 372693120, conn 21370232> [0 ms] commit >>> 7167 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.jdbc.JDBC - <t 372693120, conn 0> [0 ms] close >>> 7168 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.jdbc.SQLDiag - flush: org.apache.openjpa.kernel.PNewState for >>> oid=1 >>> 7171 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.jdbc.JDBC - The batch limit is set to 0. >>> 7186 reportincident TRACE [DefaultMessageListenerContainer-1] >>> openjpa.jdbc.JDBC - <t 372693120, conn 1674444914> [1 ms] close >>> >>> >>> >>> On Tue, Apr 12, 2011 at 5:46 PM, Johan Edstrom <[email protected]> wrote: >>>> No, but that looks like you close the connection before the rollback? >>>> If you turn on TRACING in openjpa as well as looking at the hsqldb.log >>>> it should show you where it is going wonky... >>>> >>>> I also use </transacted> in my camel routes but primarily have my daos >>>> used in >>>> processors, i.e they will not even be used if something fails. >>>> >>>> /je >>>> >>>> On Apr 12, 2011, at 9:40 AM, Charles Moulliard wrote: >>>> >>>>> Many thank Johan. >>>>> >>>>> Does the rollback works for you ? This is not the case for me. >>>>> >>>>> In a camel transactional route using the Aries JTA Tx Manager, the >>>>> message is well moved by ActiveMq to the DLQ but the record is not >>>>> rollbacked from the DB and inserted. >>>>> >>>>> I see this message in the log : >>>>> >>>>> 17:33:18,181 | ERROR | tenerContainer-1 | xapool >>>>> | 246 - wrap_mvn_com.experlog_xapool_1.5.0 - 0 | >>>>> StandardXAPoolDataSource:connectionClosed Exception in >>>>> connectionClosed:java.lang.IllegalStateException: Status is >>>>> STATUS_ROLLEDBACK >>>>> >>>>> Have you also seen this message ? >>>>> >>>>> Regards, >>>>> >>>>> Charles >>>>> >>>>> On Tue, Apr 12, 2011 at 4:24 PM, Johan Edstrom <[email protected]> wrote: >>>>>> Charles, it does look right. >>>>>> >>>>>> Attaching 2 config files I know work. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> And the BP bundle that imports it for persistence. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> Also is the bundle marked with >>>>>> >>>>>> Meta-Persistence: META-INF/persistence.xml >>>>>> >>>>>> In the manifest? >>>>>> >>>>>> >>>>>> On Apr 12, 2011, at 8:20 AM, Charles Moulliard wrote: >>>>>> >>>>>>> Here is the config Johan >>>>>>> >>>>>>> ersistence config >>>>>>> ********************** >>>>>>> <persistence-unit name="reportincident" transaction-type="JTA"> >>>>>>> >>>>>>> >>>>>>> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> >>>>>>> >>>>>>> >>>>>>> <jta-data-source>osgi:service/javax.sql.XADataSource/(transactional=true)</jta-data-source> >>>>>>> >>>>>>> <!-- Required by openJPA to update sequence table outside of >>>>>>> Global Tx Management --> >>>>>>> >>>>>>> <non-jta-data-source>osgi:service/javax.sql.DataSource/(transactional=false)</non-jta-data-source> >>>>>>> >>>>>>> <class>com.fusesource.webinars.persistence.model.Incident</class> >>>>>>> >>>>>>> <exclude-unlisted-classes>true</exclude-unlisted-classes> >>>>>>> >>>>>>> <!-- openjpa & HSQLDB --> >>>>>>> <properties> >>>>>>> <property name="openjpa.jdbc.SynchronizeMappings" >>>>>>> >>>>>>> value="buildSchema(SchemaAction='add,deleteTableContents')"/> >>>>>>> <property name="openjpa.Log" >>>>>>> value="commons"/> >>>>>>> <property name="openjpa.jdbc.DBDictionary" >>>>>>> value="hsql(useSchemaName=true)"/> >>>>>>> <property name="openjpa.jdbc.Schema" >>>>>>> value="PUBLIC"/> >>>>>>> <property name="openjpa.TransactionMode" >>>>>>> value="managed"/> >>>>>>> <property name="openjpa.ManagedRuntime" >>>>>>> >>>>>>> value="jndi(TransactionManagerName=aries:services/javax.transaction.TransactionManager)"/> >>>>>>> <property name="openjpa.Multithreaded" >>>>>>> value="true"/> >>>>>>> <property name="openjpa.TransactionMode" >>>>>>> value="managed"/> >>>>>>> <property name="openjpa.ConnectionFactoryMode" >>>>>>> value="managed"/> >>>>>>> </properties> >>>>>>> >>>>>>> </persistence-unit> >>>>>>> </persistence> >>>>>>> >>>>>>> On Tue, Apr 12, 2011 at 4:08 PM, Johan Edstrom <[email protected]> >>>>>>> wrote: >>>>>>>> What does your persistence look like? >>>>>>>> You'll need something like >>>>>>>> >>>>>>>> <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_2_0.xsd" >>>>>>>> version="2.0"> >>>>>>>> >>>>>>>> <persistence-unit name="mymagical-jpa-unit" transaction-type="JTA"> >>>>>>>> >>>>>>>> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> >>>>>>>> <jta-data-source>blueprint:comp/jta</jta-data-source> >>>>>>>> >>>>>>>> <non-jta-data-source>osgi:service/javax.sql.DataSource/(transactional=false)</non-jta-data-source> >>>>>>>> <!-- Entity classes here --> >>>>>>>> >>>>>>>> <exclude-unlisted-classes>true</exclude-unlisted-classes> >>>>>>>> <validation-mode>NONE</validation-mode> >>>>>>>> >>>>>>>> <properties> >>>>>>>> <property name="openjpa.Multithreaded" value="true"/> >>>>>>>> <property name="openjpa.TransactionMode" value="managed"/> >>>>>>>> <property name="openjpa.ConnectionFactoryMode" value="managed"/> >>>>>>>> <property name="openjpa.jdbc.MappingDefaults" >>>>>>>> value="ForeignKeyDeleteAction=restrict, >>>>>>>> JoinForeignKeyDeleteAction=restrict"/> >>>>>>>> <property name="openjpa.LockManager" >>>>>>>> value="pessimistic(VersionCheckOnReadLock=true,VersionUpdateOnWriteLock=true)"/> >>>>>>>> <property name="openjpa.Log" value="DefaultLevel=INFO, >>>>>>>> Runtime=INFO, Tool=INFO, SQL=INFO"/> >>>>>>>> </properties> >>>>>>>> </persistence-unit> >>>>>>>> >>>>>>>> </persistence> >>>>>>>> On Apr 12, 2011, at 7:43 AM, Guillaume Nodet wrote: >>>>>>>> >>>>>>>>> Looking at the stack trace, the problem seems to be in the JPA >>>>>>>>> definition, as it does not hit the datasource. >>>>>>>>> Can you list the services exported by the datasource bundle ? >>>>>>>>> Also, do you have aries jndi installed ? As your config uses it to >>>>>>>>> lookup the osgi service. >>>>>>>>> >>>>>>>>> On Tue, Apr 12, 2011 at 14:47, Charles Moulliard >>>>>>>>> <[email protected]> wrote: >>>>>>>>>> Here is the complete blueprint file to expose the datasource >>>>>>>>>> >>>>>>>>>> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" >>>>>>>>>> >>>>>>>>>> xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"> >>>>>>>>>> >>>>>>>>>> <cm:property-placeholder persistent-id="database" id="database"> >>>>>>>>>> <cm:default-properties> >>>>>>>>>> >>>>>>>>>> <!-- JDBC Drivers --> >>>>>>>>>> <cm:property name="jdbc.driverClassName" >>>>>>>>>> value="org.hsqldb.jdbcDriver"/> >>>>>>>>>> <cm:property name="jdbc.url" >>>>>>>>>> value="jdbc:hsqldb:hsql://localhost/reportdb"/> >>>>>>>>>> <cm:property name="jdbc.username" value="sa"/> >>>>>>>>>> <cm:property name="jdbc.password" value=""/> >>>>>>>>>> >>>>>>>>>> <!-- Connection Pooling DBCP --> >>>>>>>>>> <cm:property name="jdbc.initialSize" value="5"/> >>>>>>>>>> <cm:property name="jdbc.maxActive" value="10"/> >>>>>>>>>> <cm:property name="jdbc.maxIdle" value="10"/> >>>>>>>>>> <cm:property name="jdbc.defaultAutoCommit" value="false"/> >>>>>>>>>> <cm:property name="jdbc.removeAbandoned" value="false"/> >>>>>>>>>> <cm:property name="jdbc.removeAbandonedTimeout" >>>>>>>>>> value="300"/> >>>>>>>>>> <cm:property name="jdbc.logAbandoned" value="false"/> >>>>>>>>>> >>>>>>>>>> </cm:default-properties> >>>>>>>>>> </cm:property-placeholder> >>>>>>>>>> >>>>>>>>>> <service auto-export="interfaces" ref="jta"> >>>>>>>>>> <service-properties> >>>>>>>>>> <entry key="transactional" value="true"/> >>>>>>>>>> </service-properties> >>>>>>>>>> </service> >>>>>>>>>> >>>>>>>>>> <service auto-export="interfaces" ref="nonJTA"> >>>>>>>>>> <service-properties> >>>>>>>>>> <entry key="transactional" value="false"/> >>>>>>>>>> </service-properties> >>>>>>>>>> </service> >>>>>>>>>> >>>>>>>>>> <!-- ###### JDBC Data Source ###### --> >>>>>>>>>> <bean id="jta" >>>>>>>>>> class="org.enhydra.jdbc.standard.StandardXADataSource"> >>>>>>>>>> <property name="driverName" value="${jdbc.driverClassName}"/> >>>>>>>>>> <property name="url" value="${jdbc.url}"/> >>>>>>>>>> <property name="user" value="${jdbc.username}"/> >>>>>>>>>> <property name="password" value="${jdbc.password}"/> >>>>>>>>>> </bean> >>>>>>>>>> >>>>>>>>>> <bean class="org.apache.commons.dbcp.BasicDataSource" id="nonJTA"> >>>>>>>>>> <property name="driverClassName" >>>>>>>>>> value="${jdbc.driverClassName}"/> >>>>>>>>>> <property name="url" value="${jdbc.url}"/> >>>>>>>>>> <property name="username" value="${jdbc.username}"/> >>>>>>>>>> <property name="password" value="${jdbc.password}"/> >>>>>>>>>> <property name="initialSize" value="${jdbc.initialSize}"/> >>>>>>>>>> <property name="maxActive" value="${jdbc.maxActive}"/> >>>>>>>>>> <property name="maxIdle" value="${jdbc.maxIdle}"/> >>>>>>>>>> <property name="defaultAutoCommit" value="false"/> >>>>>>>>>> <property name="removeAbandoned" >>>>>>>>>> value="${jdbc.removeAbandoned}"/> >>>>>>>>>> <property name="removeAbandonedTimeout" >>>>>>>>>> value="${jdbc.removeAbandonedTimeout}"/> >>>>>>>>>> <property name="logAbandoned" value="${jdbc.logAbandoned}"/> >>>>>>>>>> </bean> >>>>>>>>>> >>>>>>>>>> </blueprint> >>>>>>>>>> >>>>>>>>>> Regards, >>>>>>>>>> >>>>>>>>>> Charles >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Tue, Apr 12, 2011 at 2:37 PM, Ioannis Canellos >>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>> Halo Charles, >>>>>>>>>>> >>>>>>>>>>> I think that you didn't paste the actual data source. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Tue, Apr 12, 2011 at 3:20 PM, Charles Moulliard >>>>>>>>>>> <[email protected]>wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi, >>>>>>>>>>>> >>>>>>>>>>>> I have configured OpenJPA to use a JTA/XA Datasource on ServiceMix >>>>>>>>>>>> but >>>>>>>>>>>> when I try to insert data in the DB, openJPA generates the >>>>>>>>>>>> following >>>>>>>>>>>> error : >>>>>>>>>>>> >>>>>>>>>>>> Caused by: java.lang.RuntimeException: There were errors >>>>>>>>>>>> initializing >>>>>>>>>>>> your configuration: <openjpa-2.1.0-r422266:1071316 fatal user >>>>>>>>>>>> error> >>>>>>>>>>>> org.apache.openjpa.util.UserException: A JDBC Driver or DataSource >>>>>>>>>>>> class name must be specified in the ConnectionDriverName property. >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:76) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:844) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:732) >>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native >>>>>>>>>>>> Method) >>>>>>>>>>>> at >>>>>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>>>>>>>>>>> at >>>>>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>>>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:597) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(ConfigurationImpl.java:295) >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> The property >>>>>>>>>>>> <jta-data-source>osgi:service/javax.sql.DataSource/(transactional=true)</jta-datasource> >>>>>>>>>>>> in the persistence.xml file point to the XADataSource exposed as >>>>>>>>>>>> an >>>>>>>>>>>> osgi service >>>>>>>>>>>> >>>>>>>>>>>> Persistence >>>>>>>>>>>> ************** >>>>>>>>>>>> <persistence-unit name="reportincident" transaction-type="JTA"> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> <jta-data-source>osgi:service/javax.sql.DataSource/(transactional=true)</jta-data-source> >>>>>>>>>>>> <!-- Required by openJPA to update sequence table outside of >>>>>>>>>>>> Global Tx Management --> >>>>>>>>>>>> >>>>>>>>>>>> <non-jta-data-source>osgi:service/javax.sql.DataSource/(transactional=false)</non-jta-data-source> >>>>>>>>>>>> >>>>>>>>>>>> <class>com.mycompany.persistence.model.Incident</class> >>>>>>>>>>>> >>>>>>>>>>>> <exclude-unlisted-classes>true</exclude-unlisted-classes> >>>>>>>>>>>> >>>>>>>>>>>> <!-- openjpa & HSQLDB --> >>>>>>>>>>>> <properties> >>>>>>>>>>>> <property name="openjpa.jdbc.SynchronizeMappings" >>>>>>>>>>>> >>>>>>>>>>>> value="buildSchema(SchemaAction='add,deleteTableContents')"/> >>>>>>>>>>>> <property name="openjpa.Log" >>>>>>>>>>>> value="commons"/> >>>>>>>>>>>> <property name="openjpa.jdbc.DBDictionary" >>>>>>>>>>>> value="hsql(useSchemaName=true)"/> >>>>>>>>>>>> <property name="openjpa.jdbc.Schema" >>>>>>>>>>>> value="PUBLIC"/> >>>>>>>>>>>> <property name="openjpa.TransactionMode" >>>>>>>>>>>> value="managed"/> >>>>>>>>>>>> <property name="openjpa.ManagedRuntime" >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> value="jndi(TransactionManagerName=aries:services/javax.transaction.TransactionManager)"/> >>>>>>>>>>>> <property name="openjpa.Multithreaded" >>>>>>>>>>>> value="true"/> >>>>>>>>>>>> <property name="openjpa.TransactionMode" >>>>>>>>>>>> value="managed"/> >>>>>>>>>>>> <!--<property name="openjpa.ConnectionFactoryMode" >>>>>>>>>>>> value="managed"/>--> >>>>>>>>>>>> </properties> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Blueprint config of the DataSource >>>>>>>>>>>> **************************************** >>>>>>>>>>>> <service auto-export="interfaces" ref="jta"> >>>>>>>>>>>> <service-properties> >>>>>>>>>>>> <entry key="transactional" value="true"/> >>>>>>>>>>>> </service-properties> >>>>>>>>>>>> </service> >>>>>>>>>>>> >>>>>>>>>>>> <service auto-export="interfaces" ref="jta"> >>>>>>>>>>>> <service-properties> >>>>>>>>>>>> <entry key="transactional" value="true"/> >>>>>>>>>>>> </service-properties> >>>>>>>>>>>> </service> >>>>>>>>>>>> >>>>>>>>>>>> Any idea is welcome. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Regards, >>>>>>>>>>>> >>>>>>>>>>>> Charles Moulliard >>>>>>>>>>>> >>>>>>>>>>>> Sr. Principal Solution Architect - FuseSource >>>>>>>>>>>> Apache Committer >>>>>>>>>>>> >>>>>>>>>>>> Blog : http://cmoulliard.blogspot.com >>>>>>>>>>>> Twitter : http://twitter.com/cmoulliard >>>>>>>>>>>> Linkedin : http://www.linkedin.com/in/charlesmoulliard >>>>>>>>>>>> Skype: cmoulliard >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> *Ioannis Canellos* >>>>>>>>>>> * >>>>>>>>>>> http://iocanel.blogspot.com >>>>>>>>>>> >>>>>>>>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC >>>>>>>>>>> Apache ServiceMix <http://servicemix.apache.org/> Committer >>>>>>>>>>> * >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Cheers, >>>>>>>>> Guillaume Nodet >>>>>>>>> ------------------------ >>>>>>>>> Blog: http://gnodet.blogspot.com/ >>>>>>>>> ------------------------ >>>>>>>>> Open Source SOA >>>>>>>>> http://fusesource.com >>>>>>>> >>>>>>>> >>>>>> >>>>>> >>>>>> >>>> >>>> >> >> >
