代码之家  ›  专栏  ›  技术社区  ›  Tiago Pimenta

Geode区域始终为空,未带来服务器端数据

  •  1
  • Tiago Pimenta  · 技术社区  · 8 年前

    我们正在运行Gemfire 8.1,这是我们的客户为了提供支持而选择的Geode的关键版本,当前的应用程序使用的是Spring数据Gemfire,因此配置是混合的 client-config.xml 和春豆,它工作正常。

    我打算做一个工具应用程序来帮助一些数据操作,最初我希望在运行时做,但Geode插件还没有准备好,我宁愿避免扰乱环境以提供REST API。

    我在Java中尽可能简单地启动了它,只使用了Geode核心依赖,正如我们在 official sample ,我在代码上转换xml配置,但无论使用哪种组合,我都无法获得远程密钥,所有区域始终返回空映射,甚至是注册 ALL_KEYS 兴趣

    我试着直接连接到服务器而不是定位器,有订阅和没有订阅,在我的机器上运行代码,甚至直接在服务器上运行代码,结果总是一样的。

    在调试currenct应用程序代码(正在工作的代码不是这个工具)时,我倾向于说问题出在区域上,因为我试图用 CacheFactory.getAnyInstance().createClientRegionFactory(ClientRegionShortcut.PROXY).create("region-name") 我得到了 region.getAttributes().getDataPolicy() 像 EMPTY 而不是 NORMAL 其他区域是,我的工具具有相同的行为,所有新区域都具有 DataPolicy 存在 EMPY .

    如果我通过连接 gfsh 我可以列出成员和地区,我想知道会是什么 gfsh公司 和Spring数据做得不同,以能够处理服务器端数据。

    我怎样才能做一个同样的应用程序呢 gfsh公司 是否尽可能简单?我只想连接和阅读一些区域。

    1 回复  |  直到 8 年前
        1
  •  2
  •   Juan Ramos    8 年前

    使用时 ClientRegionShortcut.PROXY ,区域没有本地状态,并将所有操作转发给服务器,如中所述 javadocs ,这就是为什么密钥不在客户端本地存储,客户端只是该区域的数据访问器。你需要使用 ClientRegionShortcut. CACHING_PROXY 相反,这类似于 PROXY 有关此主题的更多信息,请参阅 Region Shortcuts and Custom Named Region Attributes .

    希望这有帮助。

    干杯