我有2個不同的webapps在相同的Tomcat 6實例中運行。兩者共享一個使用hibernate進行持久化的庫。我想使用ehcache啓用Hibernate 2nd緩存,但我不希望每個webapp都有自己的緩存。在多個Tomcat webapps中共享本地ehcache
任何想法我可能會實現這個?我安裝了Ehcache核到$ CATALINA_HOME/lib和每個彈簧的應用程序配置Hibernate來使用的Ehcache這樣的:
<property name="hibernateProperties">
<props>
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory</prop>
</props>
</property>
這兩個應用程序正在使用的Ehcache,但每次還是有自己獨特的緩存(在一個修改項目應用程序和陳舊的價值仍然會出現在其他應用程序)
我ehcache.xml中(也是在$ CATALINA_HOME/lib中)看起來是這樣的:
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd"
name="mySharedCache"
updateCheck="false" monitoring="autodetect"
dynamicConfig="false">
<diskStore path="java.io.tmpdir"/>
<defaultCache maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120">
</defaultCache
</ehcache>
更多細節:
- 的Tomcat 6
- 春3.0.5
- 的Hibernate 3.6.5
- 的Ehcache 2.4.5