照着网上的方法,配了一下ehcache的集群。但发现,不起效果。改了一边,另外一台服务器上的缓存没改。
本人贴一下配置。帮本人看下什么问题,还是说原因是本人这个cache name,直接对应了一个实体,是不行的,需要实体里,再去写缓存处理的代码。rmiUrls里要指定缓存名称,那么defaultCache的怎么办。
本人贴一下配置。帮本人看下什么问题,还是说原因是本人这个cache name,直接对应了一个实体,是不行的,需要实体里,再去写缓存处理的代码。rmiUrls里要指定缓存名称,那么defaultCache的怎么办。
<?xml version="1.0"?> <ehcache updateCheck="false" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../config/ehcache.xsd"> <diskStore path="java.io.tmpdir" /> <cache name="com.wxbusiness.entities.Distributor" maxElementsInMemory="3000" eternal="false" timeToIdleSeconds="3600" timeToLiveSeconds="7200" overflowToDisk="true" maxElementsOnDisk="10000" diskPersistent="false" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU"> <cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true,replicateUpdatesViaCopy=false, replicateRemovals=true "/> <bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory"/> </cache> <defaultCache name="dCache" maxElementsInMemory="1000" eternal="false" timeToIdleSeconds="3600" timeToLiveSeconds="3600" overflowToDisk="false" maxElementsOnDisk="10000" diskPersistent="false" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU" > <cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true,replicateUpdatesViaCopy=false, replicateRemovals=true "/> <bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory"/> </defaultCache> <cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory" properties=" socketTimeoutMillis=2000, peerDiscovery=manual, rmiUrls=//192.168.1.104:40002/com.wxbusiness.entities.Distributor|//192.168.1.104:40002/dCache" /> <cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" properties="hostName=192.168.1.104,port=40001,socketTimeoutMillis=120000"/> </ehcache>
解决方案
40
hibernate直接把多种/多个实体 放在一个ehcache的cache中。 不需要多个ehcache 的cache,代码中也不需要本人写对象到cache读写
简单说 hibernate+ehcache只是配置(含 annotation),基于hibernate的应用层代码中没有变化
简单说 hibernate+ehcache只是配置(含 annotation),基于hibernate的应用层代码中没有变化