1

我设置了一个包含 2 个定位器和 3 个节点的集群 Gemfire 环境。我想将其用作发布者/订阅解决方案。我在 Java 应用程序中创建了一个缓存侦听器,当我将项目插入区域时它运行良好(记录)。但是,然后我启动一个 gfsh 窗口来插入一个项目,java 侦听器不起作用。我的配置如下:

 <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>
4

1 回答 1

2

我相信您需要 data-policy=NORMAL (或 EMPTY 以外的其他内容)才能使其正常工作。有关详细信息,请参阅数据策略。客户端侦听器不会触发,因为数据永远不会复制到客户端缓存,因此没有状态更改。使用 data-policy=EMPTY 时,只有当客户端执行 put 时,侦听器才会触发。

于 2015-05-04T18:54:16.943 回答