我正在尝试启用重新安装的ehcache,但出于某些原因它似乎无法正常工作。
我的ehcache.xml -
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd"
updateCheck="true" monitoring="autodetect"
dynamicConfig="true">
<diskStore path="java.io.tmpdir"/>
<transactionManagerLookup class="net.sf.ehcache.transaction.manager.DefaultTransactionManagerLookup"
properties="jndiName=java:/TransactionManager" propertySeparator=";"/>
<cacheManagerEventListenerFactory class="com.adobe_services.cache.SampleCacheManagerEventListenerFactory" properties="type=counting"/>
<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=automatic,
multicastGroupAddress=230.0.0.1,
multicastGroupPort=4446, timeToLive=1"
propertySeparator=","
/>
<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="hostName=, port=, socketTimeoutMillis="/>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
diskSpoolBufferSizeMB="30"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
statistics="false"
/>
<cache name="replicatedCache"
maxElementsInMemory="5"
maxElementsOnDisk="100000"
eternal="true"
overflowToDisk="true"
diskPersistent="true"
diskSpoolBufferSizeMB="20"
timeToIdleSeconds="3600"
timeToLiveSeconds="3600"
memoryStoreEvictionPolicy="LFU"
transactionalMode="off">
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
<bootstrapCacheLoaderFactory
class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory"
properties="bootstrapAsynchronously=false, maximumChunkSizeBytes=5000000"
propertySeparator="," />
</cache>
</ehcache>
当我在一个缓存中插入一个值,然后在另一个群集实例中提取它时,我无法获取该对象。我在同一台机器上使用tomcat集群。
不确定是什么问题。
答案 0 :(得分:2)
我注意到你的cacheManagerPeerListenerFactory RMICacheManagerPeerListenerFactory属性是空白的,即properties="hostName=, port=, socketTimeoutMillis="
。
尝试使用适当的服务器实例设置填写它们,看看是否有效。注意到这种情况here可能与您遇到的情况类似。
答案 1 :(得分:-1)
如果您在本地测试EhCache,请尝试:
multicastGroupAddress=127.0.0.1
但是当您切换到真实网络环境时,请再次使用230.0.0.1
。我假设230.0.0.1
是ifconfig
Bcast
值返回的主要网络接口广播地址。