<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: spring transaction support in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/spring-transaction-support/m-p/31315#M16184</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Have you tried using a "org.springframework.orm.hibernate.HibernateTransactionManager", it's javadoc states:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;This transaction manager is appropriate for applications that use a single Hibernate SessionFactory for transactional data access, but it also supports direct DataSource access within a transaction (i.e. plain JDBC code working with the same DataSource). This allows for mixing services which access Hibernate and services which use plain JDBC (without being aware of Hibernate)! Application code needs to stick to the same simple Connection lookup pattern as with DataSourceTransactionManager (i.e. DataSourceUtils.getConnection(javax.sql.DataSource) or going through a TransactionAwareDataSourceProxy).&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 18 Feb 2011 14:38:54 GMT</pubDate>
    <dc:creator>frederikherema1</dc:creator>
    <dc:date>2011-02-18T14:38:54Z</dc:date>
    <item>
      <title>spring transaction support</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/spring-transaction-support/m-p/31313#M16182</link>
      <description>We are currently using Jpa (Hibernate 3.6) and spring 3.0 in our project.For automatic id generation we are using hibernate.id.enhanced.TableGenerator. To generate an id, hibernate fetches a new connection and do his work in this new connection and commits. In spring integration examples, your are u</description>
      <pubDate>Tue, 15 Feb 2011 12:47:04 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/spring-transaction-support/m-p/31313#M16182</guid>
      <dc:creator>hakanskucuk</dc:creator>
      <dc:date>2011-02-15T12:47:04Z</dc:date>
    </item>
    <item>
      <title>Re: spring transaction support</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/spring-transaction-support/m-p/31314#M16183</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Any answers? It blocks us to integrate activiti to our project.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Feb 2011 14:25:27 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/spring-transaction-support/m-p/31314#M16183</guid>
      <dc:creator>hakanskucuk</dc:creator>
      <dc:date>2011-02-18T14:25:27Z</dc:date>
    </item>
    <item>
      <title>Re: spring transaction support</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/spring-transaction-support/m-p/31315#M16184</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Have you tried using a "org.springframework.orm.hibernate.HibernateTransactionManager", it's javadoc states:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;This transaction manager is appropriate for applications that use a single Hibernate SessionFactory for transactional data access, but it also supports direct DataSource access within a transaction (i.e. plain JDBC code working with the same DataSource). This allows for mixing services which access Hibernate and services which use plain JDBC (without being aware of Hibernate)! Application code needs to stick to the same simple Connection lookup pattern as with DataSourceTransactionManager (i.e. DataSourceUtils.getConnection(javax.sql.DataSource) or going through a TransactionAwareDataSourceProxy).&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Feb 2011 14:38:54 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/spring-transaction-support/m-p/31315#M16184</guid>
      <dc:creator>frederikherema1</dc:creator>
      <dc:date>2011-02-18T14:38:54Z</dc:date>
    </item>
    <item>
      <title>Re: spring transaction support</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/spring-transaction-support/m-p/31316#M16185</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;We are using org.springframework.orm.jpa.JpaTransactionManager. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Our spring configuration is below and it doesn't work. Should i change JpaTransactionManager to HibernateTransactionManager?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;tx:annotation-driven transaction-manager="transactionManager" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;bean id="dataSource"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;property name="targetDataSource"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;bean class="org.apache.commons.dbcp.BasicDataSource"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="driverClassName" value="${hibernate.connection.driver_class}" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="url" value="${hibernate.connection.url}" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="username" value="${hibernate.connection.username}" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="password" value="${hibernate.connection.password}" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="defaultAutoCommit" value="false" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/bean&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/bean&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; &amp;lt;bean id="entityManagerFactory"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;property name="persistenceUnitName" value="sparrow-jpa" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;property name="dataSource" ref="dataSource" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;property name="jpaDialect"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;property name="jpaVendorAdapter"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="showSql" value="${hibernate.show_sql}" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="generateDdl" value="${hibernate.generateDdl}" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="databasePlatform" value="${hibernate.dialect}" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/bean&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;/property&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &amp;lt;/bean&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; &amp;lt;bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;property name="entityManagerFactory" ref="entityManagerFactory" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &amp;lt;/bean&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;property name="databaseType" value="mysql" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;property name="dataSource" ref="dataSource" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;property name="transactionManager" ref="transactionManager" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;property name="databaseSchemaUpdate" value="true" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;property name="jpaEntityManagerFactory" ref="entityManagerFactory" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;property name="jpaHandleTransaction" value="false" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;property name="jpaCloseEntityManager" value="false" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;property name="jobExecutorActivate" value="false" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &amp;lt;/bean&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;property name="processEngineConfiguration" ref="processEngineConfiguration" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &amp;lt;/bean&amp;gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Feb 2011 15:13:45 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/spring-transaction-support/m-p/31316#M16185</guid>
      <dc:creator>hakanskucuk</dc:creator>
      <dc:date>2011-02-18T15:13:45Z</dc:date>
    </item>
    <item>
      <title>Re: spring transaction support</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/spring-transaction-support/m-p/31317#M16186</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The TransactionAwareDataSourceProxy we use, makes the connections Activiti uses, be aware of the active spring(jpa)-transaction, javadoc:&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;Proxy for a target JDBC DataSource, adding awareness of Spring-managed transactions. Similar to a transactional JNDI DataSource as provided by a J2EE server.&lt;BR /&gt;&lt;BR /&gt;Data access code that should remain unaware of Spring's data access support can work with this proxy to seamlessly participate in Spring-managed transactions. Note that the transaction manager, for example DataSourceTransactionManager, still needs to work with the underlying DataSource, not with this proxy.&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;STRONG&gt;"Note that the transaction manager, for example DataSourceTransactionManager, still needs to work with the underlying DataSource, not with this proxy."&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So the JPATransactionManager can be used, you should rig your EntityManagerFactory with the wrapped datasource instead of the proxied one, to make hibernate access fresh non-thread bound connections:&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&amp;lt;bean name="dataSource" class="org.apache.commons.dbcp.BasicDataSource"&amp;gt;&lt;BR /&gt;&amp;lt;property name="driverClassName" value="${hibernate.connection.driver_class}" /&amp;gt;&lt;BR /&gt;&amp;lt;property name="url" value="${hibernate.connection.url}" /&amp;gt;&lt;BR /&gt;&amp;lt;property name="username" value="${hibernate.connection.username}" /&amp;gt;&lt;BR /&gt;&amp;lt;property name="password" value="${hibernate.connection.password}" /&amp;gt;&lt;BR /&gt;&amp;lt;property name="defaultAutoCommit" value="false" /&amp;gt;&lt;BR /&gt;&amp;lt;/bean&amp;gt;&lt;BR /&gt;&lt;BR /&gt;…&lt;BR /&gt;&lt;BR /&gt;&amp;lt;bean id="entityManagerFactory"&lt;BR /&gt;class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"&amp;gt;&lt;BR /&gt;&amp;lt;property name="persistenceUnitName" value="sparrow-jpa" /&amp;gt;&lt;BR /&gt;&amp;lt;property name="dataSource" ref="dataSource" /&amp;gt;&lt;BR /&gt;&lt;BR /&gt;…&lt;BR /&gt;&amp;lt;/bean&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;lt;bean id="activitiDataSource"&lt;BR /&gt;class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy"&amp;gt;&lt;BR /&gt;&amp;lt;property name="targetDataSource" ref="dataSource"&amp;gt;&lt;BR /&gt;&amp;lt;/bean&amp;gt;&lt;BR /&gt;&lt;BR /&gt;…&lt;BR /&gt;&lt;BR /&gt;&amp;lt;bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"&amp;gt;&lt;BR /&gt;&amp;lt;property name="databaseType" value="mysql" /&amp;gt;&lt;BR /&gt;&amp;lt;property name="dataSource" ref="activitiDataSource" /&amp;gt;&lt;BR /&gt;&lt;BR /&gt;…&lt;BR /&gt;&lt;BR /&gt;&amp;lt;/bean&amp;gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Looks like our JPA examples use the proxied one, but our tests never fails since OpenJPA behaves nicely and is pleased with only one connection it seems &lt;img id="smileywink" class="emoticon emoticon-smileywink" src="https://connect.hyland.com/i/smilies/16x16_smiley-wink.png" alt="Smiley Wink" title="Smiley Wink" /&gt; I'll make sure this is changed in 5.3 release.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Feb 2011 20:13:07 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/spring-transaction-support/m-p/31317#M16186</guid>
      <dc:creator>frederikherema1</dc:creator>
      <dc:date>2011-02-18T20:13:07Z</dc:date>
    </item>
  </channel>
</rss>

