2

我已经使用 RMI 设置了我的 ehcache 复制。但是,我没有看到任何复制发生,也没有收到任何错误。你能看看,让我知道我哪里出错了吗?我尝试了自动和手动发现模式,但无济于事。

我已经为 net.sf 层次结构启用了 TRACE 日志记录,但我没有看到任何活动* 。你能告诉我如何通过日志可视化复制吗?要添加什么类别等。 *

我的测试场景 是在 host1 上访问 jsp,然后在 host2 上访问。当我返回到 host1 时,我希望看到一些复制日志或我看不到的复制值返回。任何帮助表示赞赏。我已经为此苦苦挣扎了一段时间。

我的配置如下

在主机 1

<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=manual,
rmiUrls=//host2:40001/reportsCache"/>


<cacheManagerPeerListenerFactory 
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" 
properties="hostname=host1, port=40001, socketTimeoutMillis=3000"/>

在主机 2

<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=manual,
rmiUrls=//host1:40001/reportsCache"/>

<cacheManagerPeerListenerFactory 
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" 
properties="hostname=host2, port=40001, socketTimeoutMillis=3000"/>

我的ehcache配置如下

<cache name="reportsCache"
     maxElementsInMemory="1000"
     maxElementsOnDisk="100"
     eternal="false"
     overflowToDisk="true"
     timeToIdleSeconds="15"
     timeToLiveSeconds="15"
     statistics="true">

<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
  properties="replicateAsynchronously=true,
             replicatePuts=true,
             replicatePutsViaCopy=true,
             replicateUpdates=true,
             replicateUpdatesViaCopy=true,
             replicateRemovals=true" />
<bootstrapCacheLoaderFactory
class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory"/>

4

2 回答 2

1

使用的相关记录器称为net.sf.ehcache.distribution.RMICachePeer,您必须在其中启用DEBUG级别。

如何配置记录器实际上取决于您的记录框架。对于 log4j,您将在log4j.properties文件中使用类似以下内容:

log4j.logger.net.sf.ehcache.distribution.RMICachePeer=DEBUG

对于 log4j2,将以下内容放入您的log4j2.xml

<loggers>
   ...
   <logger name="net.sf.ehcache.distribution.RMICachePeer" level="debug" />
</logger>
于 2014-03-12T09:12:17.203 回答
0

这样没有问题。我认为我的测试有点偏离标准。 我从两个节点(通过 2 个不同的浏览器会话)访问了相同的 jsp,并且依靠我的日志来查看有关复制的线索。我只是改变了查看 jsp 上的内容/数据的方法,我看到另一个节点在第一个节点上的命中更新后获取相同的数据。所以这对我的测试来说已经足够了。 但是,我仍然很想知道如何查看有关复制事件的任何日志? 我也打开了一个 ehcache-debugger 的实例,但我没有看到任何事情发生。如果这里有人可以告诉我如何查看与复制事件有关的日志,那将是很棒的。作为记录,我已将 net.sf 包的日志级别设置为 TRACE。

于 2013-08-02T20:14:35.790 回答