【发布时间】:2017-12-05 10:54:13
【问题描述】:
我们正在运行 Gemfire 8.1,这是我们的客户为了提供支持而选择的 Geode 的 Pivotal 版本,当前应用程序正在使用 Spring Data Gemfire,因此配置在 client-config.xml 和 Spring Beans 之间混合,并且可以正常工作。
我打算做一个工具应用来帮助一些数据操作,最初我希望在 Go 上做,但是 Geode 插件还没有准备好,我宁愿避免混乱环境来提供 REST API。
我在 Java 中尽可能简单地启动它,仅使用我们在 official sample 中看到的 Geode Core 依赖项,并且我在代码上转置 xml 配置,但无论我使用哪种组合,我都无法做到获取远程密钥,所有区域总是返回空地图,即使注册ALL_KEYS兴趣。
我尝试直接连接到服务器而不是定位器,无论是否订阅,在我的机器上甚至直接在服务器机器上运行代码,总是相同的结果。
调试当前的应用程序代码(工作的不是这个工具),我倾向于说问题出在区域上,因为我试图用CacheFactory.getAnyInstance().createClientRegionFactory(ClientRegionShortcut.PROXY).create("region-name")分配一个尚未注册的区域,我得到了region.getAttributes().getDataPolicy()正如EMPTY 而不是NORMAL 其他区域是,我的工具具有相同的行为,所有带有DataPolicy 的新区域都是EMPY。
如果我通过gfsh 连接,我可以列出成员和区域,我想知道gfsh 和 Spring Data 会做些什么不同的事情来处理服务器端数据。
我怎样才能做一个与gfsh 一样简单的应用程序?我只是想连接和读取一些区域。
【问题讨论】:
-
我目前的草稿:pastebin.com/KybWL0Vd