Split transactional EHCache configuration from entity and other EHCache configuration. This will allow a smoother transition to EHCache 1.2, which is to be released soon.

Added a deep cache tracer for EHCaches.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2364 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2006-02-14 00:39:45 +00:00
parent 52e70ac68e
commit 6b2c1482c0
5 changed files with 264 additions and 31 deletions

View File

@@ -1,14 +1,21 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<!--
Configuration of in-transaction caches along with the shared (cross-transaction) caches.
The in-transaction caches do not share the same configuration as the shared caches.
This is because the shared caches can support replication (EHCache 1.2), while the
in-transaction caches must not use these features.
-->
<beans>
<!-- ==================================================== -->
<!-- EH Cache Manager to produce in-transaction EH Caches -->
<!-- ==================================================== -->
<bean name="ehCacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" >
<bean name="transactionalEHCacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" >
<property name="configLocation">
<value>classpath:ehcache.xml</value>
<value>classpath:ehcache-transactional.xml</value>
</property>
</bean>
@@ -42,7 +49,7 @@
<ref bean="nullPermissionSharedCache" />
</property>
<property name="cacheManager" >
<ref bean="ehCacheManager" />
<ref bean="transactionalEHCacheManager" />
</property>
<!-- Eh cache area -->
<property name="name">
@@ -83,7 +90,7 @@
<ref bean="userToAuthoritySharedCache" />
</property>
<property name="cacheManager" >
<ref bean="ehCacheManager" />
<ref bean="transactionalEHCacheManager" />
</property>
<!-- Eh cache area -->
<property name="name">
@@ -124,7 +131,7 @@
<ref bean="permissionsAccessSharedCache" />
</property>
<property name="cacheManager" >
<ref bean="ehCacheManager" />
<ref bean="transactionalEHCacheManager" />
</property>
<!-- Eh cache area -->
<property name="name">
@@ -165,7 +172,7 @@
<ref bean="nodeOwnerSharedCache" />
</property>
<property name="cacheManager" >
<ref bean="ehCacheManager" />
<ref bean="transactionalEHCacheManager" />
</property>
<!-- Eh cache area -->
<property name="name">

View File

@@ -131,6 +131,23 @@
</property>
</bean>
<!-- enable DEBUG for 'org.alfresco.repo.cache.EhCacheTracerJob' to activate -->
<bean id="ehCacheTracerJob" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail">
<bean id="ehCacheTracerJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass">
<value>org.alfresco.repo.cache.EhCacheTracerJob</value>
</property>
</bean>
</property>
<property name="startDelay">
<value>3600000</value><!-- start after an hour -->
</property>
<property name="repeatInterval">
<value>3600000</value><!-- repeat every hour -->
</property>
</bean>
<!-- Scheduled tasks -->
<bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
@@ -144,7 +161,9 @@
<ref bean="ldapGroupTrigger" />
<ref bean="ldapPeopleTrigger" />
-->
<!--
<ref bean="ehCacheTracerJob" />
-->
</list>
</property>
<property name="waitForJobsToCompleteOnShutdown">

View File

@@ -0,0 +1,14 @@
<!--
This configures the cache properties for Alfresco's in-transaction caches.
-->
<ehcache>
<diskStore
path="java.io.tmpdir"/>
<defaultCache
maxElementsInMemory="5000"
eternal="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
overflowToDisk="false"
/>
</ehcache>

View File

@@ -1,4 +1,5 @@
<ehcache>
<!-- defaults -->
<diskStore
path="java.io.tmpdir"/>
<defaultCache
@@ -8,11 +9,23 @@
timeToLiveSeconds="0"
overflowToDisk="false"
/>
<!-- Hibernate usage -->
<cache
name="org.hibernate.cache.StandardQueryCache"
maxElementsInMemory="50"
eternal="true"
timeToLiveSeconds="0"
overflowToDisk="false"/>
<cache
name="org.hibernate.cache.UpdateTimestampsCache"
maxElementsInMemory="5000"
eternal="true"
overflowToDisk="false"/>
<!-- Nodes: Most other objects are cached as a ratio against the number of nodes cached -->
<cache
name="org.alfresco.repo.domain.hibernate.NodeImpl"
maxElementsInMemory="100000"
eternal="false"
eternal="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
overflowToDisk="false"
@@ -21,7 +34,7 @@
<cache
name="org.alfresco.repo.domain.hibernate.NodeStatusImpl"
maxElementsInMemory="100000"
eternal="false"
eternal="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
overflowToDisk="false"
@@ -30,7 +43,7 @@
<cache
name="org.alfresco.repo.domain.hibernate.NodeImpl.aspects"
maxElementsInMemory="500000"
eternal="false"
eternal="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
overflowToDisk="false"
@@ -39,7 +52,7 @@
<cache
name="org.alfresco.repo.domain.hibernate.NodeImpl.properties"
maxElementsInMemory="1000000"
eternal="false"
eternal="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
overflowToDisk="false"
@@ -48,7 +61,7 @@
<cache
name="org.alfresco.repo.domain.hibernate.NodeImpl.childAssocs"
maxElementsInMemory="100000"
eternal="false"
eternal="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
overflowToDisk="false"
@@ -57,7 +70,7 @@
<cache
name="org.alfresco.repo.domain.hibernate.NodeImpl.parentAssocs"
maxElementsInMemory="100000"
eternal="false"
eternal="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
overflowToDisk="false"
@@ -66,7 +79,7 @@
<cache
name="org.alfresco.repo.domain.hibernate.ChildAssocImpl"
maxElementsInMemory="100000"
eternal="false"
eternal="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
overflowToDisk="false"
@@ -75,7 +88,7 @@
<cache
name="org.alfresco.repo.domain.hibernate.NodeImpl.sourceNodeAssocs"
maxElementsInMemory="10000"
eternal="false"
eternal="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
overflowToDisk="false"
@@ -84,7 +97,7 @@
<cache
name="org.alfresco.repo.domain.hibernate.NodeImpl.targetNodeAssocs"
maxElementsInMemory="10000"
eternal="false"
eternal="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
overflowToDisk="false"
@@ -93,7 +106,7 @@
<cache
name="org.alfresco.repo.domain.hibernate.NodeAssocImpl"
maxElementsInMemory="10000"
eternal="false"
eternal="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
overflowToDisk="false"
@@ -102,7 +115,7 @@
<cache
name="org.alfresco.repo.domain.hibernate.StoreImpl"
maxElementsInMemory="100"
eternal="false"
eternal="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
overflowToDisk="false"
@@ -111,7 +124,7 @@
<cache
name="org.alfresco.repo.domain.hibernate.VersionCountImpl"
maxElementsInMemory="100"
eternal="false"
eternal="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
overflowToDisk="false"
@@ -120,22 +133,11 @@
<cache
name="org.alfresco.repo.domain.hibernate.AppliedPatchImpl"
maxElementsInMemory="100"
eternal="false"
eternal="true"
timeToIdleSeconds="0"
timeToLiveSeconds="60"
overflowToDisk="false"
/>
<cache
name="org.hibernate.cache.StandardQueryCache"
maxElementsInMemory="50"
eternal="false"
timeToLiveSeconds="0"
overflowToDisk="false"/>
<cache
name="org.hibernate.cache.UpdateTimestampsCache"
maxElementsInMemory="5000"
eternal="true"
overflowToDisk="false"/>
<!-- Permission related caches -->
<cache
name="org.alfresco.repo.security.permissions.impl.hibernate.RecipientImpl"