mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
to HibernateRetryingTransactionHelper. Changed propagation mode of AVM transactions to PROPAGATION_REQUIRED and tweaked to not retry in a transaction that wasn't started locally. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3389 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
305 lines
8.9 KiB
XML
305 lines
8.9 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN//EN"
|
|
"http://www.springframework.org/dtd/spring-beans.dtd">
|
|
|
|
<beans>
|
|
|
|
<!-- Datasource -->
|
|
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
|
|
<property name="driverClass">
|
|
<value>${db.driver}</value>
|
|
</property>
|
|
<property name="jdbcUrl">
|
|
<value>${db.url}</value>
|
|
</property>
|
|
<property name="user">
|
|
<value>${db.username}</value>
|
|
</property>
|
|
<property name="password">
|
|
<value>${db.password}</value>
|
|
</property>
|
|
<property name="initialPoolSize">
|
|
<value>${db.pool.initial}</value>
|
|
</property>
|
|
<property name="maxPoolSize" >
|
|
<value>${db.pool.max}</value>
|
|
</property>
|
|
<property name="numHelperThreads">
|
|
<value>1</value>
|
|
</property>
|
|
<property name="idleConnectionTestPeriod">
|
|
<value>60</value>
|
|
</property>
|
|
</bean>
|
|
|
|
<!-- The SessionFactory for hibernate. -->
|
|
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
|
|
<property name="dataSource">
|
|
<ref bean="dataSource"/>
|
|
</property>
|
|
<property name="hibernateProperties">
|
|
<props>
|
|
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
|
|
<prop key="hibernate.current_session_context_class">${hibernate.current_session_context_class}</prop>
|
|
<prop key="hibernate.connection.isolation">${hibernate.connection.isolation}</prop>
|
|
<prop key="hibernate.default_batch_fetch_size">${hibernate.default_batch_fetch_size}</prop>
|
|
<prop key="hibernate.jdbc.batch_versioned_data">${hibernate.jdbc.batch_versioned_data}</prop>
|
|
<prop key="hibernate.cache.use_second_level_cache">${hibernate.cache.use_second_level_cache}</prop>
|
|
<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
|
|
</props>
|
|
</property>
|
|
<property name="mappingResources">
|
|
<list>
|
|
<value>org/alfresco/repo/avm/hibernate/AVM.hbm.xml</value>
|
|
</list>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="nodeIssuer" class="org.alfresco.repo.avm.Issuer"
|
|
depends-on="retryingTransaction,avmContext" init-method="init">
|
|
<property name="name">
|
|
<value>node</value>
|
|
</property>
|
|
<property name="retryingTransaction">
|
|
<ref bean="retryingTransaction"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="contentIssuer" class="org.alfresco.repo.avm.Issuer"
|
|
depends-on="retryingTransaction,avmContext" init-method="init">
|
|
<property name="name">
|
|
<value>content</value>
|
|
</property>
|
|
<property name="retryingTransaction">
|
|
<ref bean="retryingTransaction"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="layerIssuer" class="org.alfresco.repo.avm.Issuer"
|
|
depends-on="retryingTransaction,avmContext" init-method="init">
|
|
<property name="name">
|
|
<value>layer</value>
|
|
</property>
|
|
<property name="retryingTransaction">
|
|
<ref bean="retryingTransaction"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="issuerDAO" class="org.alfresco.repo.avm.IssuerDAOHibernate">
|
|
<property name="sessionFactory">
|
|
<ref bean="sessionFactory"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="nodeDAO" class="org.alfresco.repo.avm.AVMNodeDAOHibernate">
|
|
<property name="sessionFactory">
|
|
<ref bean="sessionFactory"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="avmStoreDAO" class="org.alfresco.repo.avm.AVMStoreDAOHibernate">
|
|
<property name="sessionFactory">
|
|
<ref bean="sessionFactory"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="versionRootDAO" class="org.alfresco.repo.avm.VersionRootDAOHibernate">
|
|
<property name="sessionFactory">
|
|
<ref bean="sessionFactory"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="fileContentDAO" class="org.alfresco.repo.avm.FileContentDAOHibernate">
|
|
<property name="sessionFactory">
|
|
<ref bean="sessionFactory"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="childEntryDAO" class="org.alfresco.repo.avm.ChildEntryDAOHibernate">
|
|
<property name="sessionFactory">
|
|
<ref bean="sessionFactory"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="historyLinkDAO" class="org.alfresco.repo.avm.HistoryLinkDAOHibernate">
|
|
<property name="sessionFactory">
|
|
<ref bean="sessionFactory"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="mergeLinkDAO" class="org.alfresco.repo.avm.MergeLinkDAOHibernate">
|
|
<property name="sessionFactory">
|
|
<ref bean="sessionFactory"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="deletedChildDAO" class="org.alfresco.repo.avm.DeletedChildDAOHibernate">
|
|
<property name="sessionFactory">
|
|
<ref bean="sessionFactory"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="newInAVMStoreDAO" class="org.alfresco.repo.avm.NewInAVMStoreDAOHibernate">
|
|
<property name="sessionFactory">
|
|
<ref bean="sessionFactory"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="avmNodePropertyDAO" class="org.alfresco.repo.avm.AVMNodePropertyDAOHibernate">
|
|
<property name="sessionFactory">
|
|
<ref bean="sessionFactory"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="avmStorePropertyDAO" class="org.alfresco.repo.avm.AVMStorePropertyDAOHibernate">
|
|
<property name="sessionFactory">
|
|
<ref bean="sessionFactory"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="avmContext" class="org.alfresco.repo.avm.AVMContext">
|
|
<property name="issuerDAO">
|
|
<ref bean="issuerDAO"/>
|
|
</property>
|
|
<property name="nodeDAO">
|
|
<ref bean="nodeDAO"/>
|
|
</property>
|
|
<property name="avmStoreDAO">
|
|
<ref bean="avmStoreDAO"/>
|
|
</property>
|
|
<property name="versionRootDAO">
|
|
<ref bean="versionRootDAO"/>
|
|
</property>
|
|
<property name="fileContentDAO">
|
|
<ref bean="fileContentDAO"/>
|
|
</property>
|
|
<property name="childEntryDAO">
|
|
<ref bean="childEntryDAO"/>
|
|
</property>
|
|
<property name="historyLinkDAO">
|
|
<ref bean="historyLinkDAO"/>
|
|
</property>
|
|
<property name="mergeLinkDAO">
|
|
<ref bean="mergeLinkDAO"/>
|
|
</property>
|
|
<property name="deletedChildDAO">
|
|
<ref bean="deletedChildDAO"/>
|
|
</property>
|
|
<property name="newInAVMStoreDAO">
|
|
<ref bean="newInAVMStoreDAO"/>
|
|
</property>
|
|
<property name="avmNodePropertyDAO">
|
|
<ref bean="avmNodePropertyDAO"/>
|
|
</property>
|
|
<property name="avmStorePropertyDAO">
|
|
<ref bean="avmStorePropertyDAO"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<!-- The HibernateTransactionManager -->
|
|
<bean id="transactionManager"
|
|
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
|
|
<property name="dataSource">
|
|
<ref bean="dataSource"/>
|
|
</property>
|
|
<property name="sessionFactory">
|
|
<ref bean="sessionFactory"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<!-- A read only DefaultTransactionDefinition -->
|
|
<bean id="readTransactionDefinition"
|
|
class="org.springframework.transaction.support.DefaultTransactionDefinition">
|
|
<property name="propagationBehaviorName">
|
|
<value>PROPAGATION_REQUIRED</value>
|
|
</property>
|
|
<property name="isolationLevelName">
|
|
<value>ISOLATION_READ_COMMITTED</value>
|
|
</property>
|
|
<property name="readOnly">
|
|
<value>true</value>
|
|
</property>
|
|
</bean>
|
|
|
|
<!-- A write DefaultTransactionDefinition -->
|
|
<bean id="writeTransactionDefinition"
|
|
class="org.springframework.transaction.support.DefaultTransactionDefinition">
|
|
<property name="propagationBehaviorName">
|
|
<value>PROPAGATION_REQUIRED</value>
|
|
</property>
|
|
<property name="isolationLevelName">
|
|
<value>ISOLATION_READ_COMMITTED</value>
|
|
</property>
|
|
<property name="readOnly">
|
|
<value>false</value>
|
|
</property>
|
|
</bean>
|
|
|
|
<!-- The Hibernate Transaction wrapper. -->
|
|
<bean id="retryingTransaction"
|
|
class="org.alfresco.repo.avm.HibernateRetryingTransactionHelper">
|
|
<property name="sessionFactory">
|
|
<ref bean="sessionFactory"/>
|
|
</property>
|
|
<property name="transactionManager">
|
|
<ref bean="transactionManager"/>
|
|
</property>
|
|
<property name="readTransactionDefinition">
|
|
<ref bean="readTransactionDefinition"/>
|
|
</property>
|
|
<property name="writeTransactionDefinition">
|
|
<ref bean="writeTransactionDefinition"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="orphanReaper" class="org.alfresco.repo.avm.OrphanReaper"
|
|
init-method="init" destroy-method="shutDown" depends-on="avmService">
|
|
<property name="inactiveBaseSleep">
|
|
<value>4000</value>
|
|
</property>
|
|
<property name="activeBaseSleep">
|
|
<value>1000</value>
|
|
</property>
|
|
<property name="batchSize">
|
|
<value>50</value>
|
|
</property>
|
|
<property name="retryingTransaction">
|
|
<ref bean="retryingTransaction"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="avmService" class="org.alfresco.repo.avm.AVMServiceImpl"
|
|
init-method="init">
|
|
<property name="storage">
|
|
<value>${avm.storage}</value>
|
|
</property>
|
|
<property name="initialize">
|
|
<value>${avm.initialize}</value>
|
|
</property>
|
|
<property name="retryingTransaction">
|
|
<ref bean="retryingTransaction"/>
|
|
</property>
|
|
<property name="avmRepository">
|
|
<ref bean="avmRepository"/>
|
|
</property>
|
|
</bean>
|
|
|
|
<bean id="avmRepository" class="org.alfresco.repo.avm.AVMRepository"
|
|
init-method="init">
|
|
<property name="storage">
|
|
<value>${avm.storage}</value>
|
|
</property>
|
|
<property name="nodeIssuer">
|
|
<ref bean="nodeIssuer"/>
|
|
</property>
|
|
<property name="contentIssuer">
|
|
<ref bean="contentIssuer"/>
|
|
</property>
|
|
<property name="layerIssuer">
|
|
<ref bean="layerIssuer"/>
|
|
</property>
|
|
</bean>
|
|
|
|
</beans>
|
|
|