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

Reply via email to