我设置了一个具有2个定位器和3个节点的集群Gemfire环境。我想将它用作发布者/订阅解决方案。我在Java应用程序中创建了一个缓存侦听器,当我将一个项目插入一个区域时,它运行良好(日志记录)。但是,然后我启动一个gfsh窗口来插入一个项目,java listerner剂量不起作用。我的配置如下:
<gfe:client-cache id="client-cache" pool-name="my-pool" properties-ref="gemfire-props"/>
<gfe:pool id="my-pool" subscription-enabled="true">
<gfe:locator host="10.151.134.111" port="10334" />
</gfe:pool>
<gfe:client-region id="Test" data-policy="EMPTY" cache-ref="client-cache">
<gfe:cache-listener>
<bean class="Test.util.LoggingCacheListener"/>
</gfe:cache-listener>
</gfe:client-region>
答案 0 :(得分:1)
我认为你需要data-policy = NORMAL(或EMPTY以外的东西)来实现这一点。有关详细信息,请参阅DataPolicy。客户端侦听器不会触发,因为数据永远不会复制到客户端缓存,因此不会发生状态更改。使用data-policy = EMPTY,只有在客户端执行put时才会触发侦听器。