问题标签 [gemfire]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - Gemfire 缓存“PDXInstance to Json”Joda DateTime 错误
我正在尝试从 Gemfire 缓存中获取 PDXInstances 并将它们转换为 JSON,但是当遇到 Joda DateTime 时它会失败。
请参阅下面的错误 -
我正在做以下事情 -
有人遇到过这个问题吗?
谢谢
java - Gemfire 为 @Cachable 方法抛出空指针 Null 结果
我有一个注释为的方法,@Cacheable
并且 Gemfire 也配置为缓存。
该方法在返回 Not Null 值时工作正常。但是如果它返回 Null 则 Gemfire 会抛出异常,如下所示:
方法如下:
如果 myDataRepository.getLabelByValue(value)
为 null,则在 Gemfire 中抛出 NullPointerException,并且从数据库中返回一些数据,然后它可以正常工作。
如果有任何配置可以忽略 Gemfire 中的空值缓存,请提供帮助。
deadlock - 死锁检测 - Gemfire 8
我用 RegionShortcut.PARTITION 和 setRedundantCopies(1) 定义了一个 GemFire 区域。在 3 个不同的 VM 上运行的 3 个应用程序正在使用这些区域。
当我关闭刚刚将项目插入缓存的应用程序的虚拟机(项目的“所有者”)时,我似乎有一个死锁:
*被阻塞的进程:在region.put之前被阻塞。
*阻止过程:在尝试从区域中删除旧条目后似乎被阻止。我怀疑这个操作是被CacheListenerAdapter提供的销毁机制调用的。
我在以下链接中阅读了一些关于这个问题的文档: CacheListener Interface API和这个博客,主要发现了监听器的使用。
然而,这个问题似乎在 GemFire 6.x 版本中得到解决和修复 [例如:这里和这里]
所以,我想问一下:
1) 是否针对 Gemfire 8 报告了此问题?还是7?
2)针对此问题推荐的解决方法是什么?这里提到了 3 种不同的解决方法。还有其他的吗?有首选吗?
仅供参考,阻塞进程的线程转储如下:
spring-data - 为什么 spring-data-gemfire 存储库不使用 putAll?
我注意到在将大数据集上传到 gemfire 缓存中时,spring-data-gemfire 存储库在客户端-服务器架构中非常慢。我检查了来源,我看到了
只需遍历所有条目并将它们单独放置。
为什么不使用 Region.putAll?- 会快很多。
timeout - 跨多个服务器使用数据冗余时,gemfire 条目超时不起作用
在 Gemfire 中,我的记录应该在最后一次读取记录后 n 秒过期。
entry-idle-time 似乎符合该描述,但我无法让它工作。
我试过 gfe:entry-tti action="DESTROY" timeout="120"
当我只有一台服务器时,这很好用,但是当我有 2 台服务器且冗余副本 = 1 时,即使我的测试程序每隔几秒钟查询一次,我的条目也会被删除。
我尝试了 action="LOCAL_DESTROY",但是服务器根本没有启动。
只要有人在查询它们,我如何才能使条目保持活力。
谢谢
locking - Gemfire 客户端/服务器架构和区域锁定
我正在使用客户端-服务器 Gemfire 架构,几台服务器共享一个具有“全局”范围的复制区域。
我有一个客户,其中客户区域定义如下:
此客户区域充当服务器上全局区域的代理。
现在,我想在执行某些操作时从我的客户端锁定该区域,以便在第一个客户端执行某些关键任务时没有其他客户端能够修改它。
不幸的是,我得到了一个例外:
那么,有没有办法从客户端锁定一个区域?
gemfire - Gemfire 客户端服务器拓扑抛出 NoAvailableLocatorsException
我通过基于 gfe 的 xml 配置了 gemfire 客户端服务器。定位器、缓存服务器和客户端缓存通过这些 xml 配置启动。我通过从数据库中获取数据来填充我的区域。客户端使用来自该区域的数据。它工作了大约 2 个小时,但之后客户端开始抛出以下异常和跟踪。
我不对正在运行的应用程序做任何更改。这意味着定位器和缓存服务器应该一直在运行。任何帮助都会很棒。谢谢。
com.gemstone.gemfire.cache.client.NoAvailableLocatorsException:无法连接到 com.gemstone.gemfire.cache.client.internal.AutoConnectionSourceImpl.findServer(AutoConnectionSourceImpl. java:132) 在 com.gemstone.gemfire.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:205) 在 com.gemstone.gemfire.cache.client.internal.pooling.ConnectionManagerImpl.exchangeConnection(ConnectionManagerImpl.java:第418章) .gemstone.gemfire.cache.client.internal.PoolImpl.execute(PoolImpl.java:638) 在 com.gemstone.gemfire.cache.client.internal。GetOp.execute(GetOp.java:89) 在 com.gemstone.gemfire.cache.client.internal.ServerRegionProxy.get(ServerRegionProxy.java:126) 在 com.gemstone.gemfire.internal.cache.LocalRegion.findObjectInSystem(LocalRegion. java:2767) 在 com.gemstone.gemfire.internal.cache.LocalRegion.nonTxnFindObject(LocalRegion.java:1605) 在 com.gemstone.gemfire.internal.cache.LocalRegionDataView.findObject(LocalRegionDataView.java:133) 在 com.gemstone .gemfire.internal.cache.LocalRegion.get(LocalRegion.java:1489) 在 com.gemstone.gemfire.internal.cache.LocalRegion.get(LocalRegion.java:1451) 在 com.gemstone.gemfire.internal.cache.AbstractRegion .get(AbstractRegion.java:278)findObjectInSystem(LocalRegion.java:2767) 在 com.gemstone.gemfire.internal.cache.LocalRegion.nonTxnFindObject(LocalRegion.java:1605) 在 com.gemstone.gemfire.internal.cache.LocalRegionDataView.findObject(LocalRegionDataView.java:133)在 com.gemstone.gemfire.internal.cache.LocalRegion.get(LocalRegion.java:1489) 在 com.gemstone.gemfire.internal.cache.LocalRegion.get(LocalRegion.java:1451) 在 com.gemstone.gemfire.internal .cache.AbstractRegion.get(AbstractRegion.java:278)findObjectInSystem(LocalRegion.java:2767) 在 com.gemstone.gemfire.internal.cache.LocalRegion.nonTxnFindObject(LocalRegion.java:1605) 在 com.gemstone.gemfire.internal.cache.LocalRegionDataView.findObject(LocalRegionDataView.java:133)在 com.gemstone.gemfire.internal.cache.LocalRegion.get(LocalRegion.java:1489) 在 com.gemstone.gemfire.internal.cache.LocalRegion.get(LocalRegion.java:1451) 在 com.gemstone.gemfire.internal .cache.AbstractRegion.get(AbstractRegion.java:278)LocalRegion.get(LocalRegion.java:1451) 在 com.gemstone.gemfire.internal.cache.AbstractRegion.get(AbstractRegion.java:278)LocalRegion.get(LocalRegion.java:1451) 在 com.gemstone.gemfire.internal.cache.AbstractRegion.get(AbstractRegion.java:278)
spring - 使用 Spring 将在 Topic 上发送的 JMS 消息保存到 Gemfire
问题在于我在 Topic 上接收 JMS 消息,并且我需要将消息结构保存到 GemFire(经典)区域 MessageStructInfo 中。
消息的结构中包含数据,例如 < messagenotification > < fieldidentifierEndDate="2014-12-24" fieldidentifierStartDate="2014-12-07" fileName="filenotification.xml" directory="../filehostdirectory" /> </messagenotification >
我需要从消息中提取字段数据并保存到 GemFire 区域。
MessageStructInfo fieldidentifierStartDate,
fieldidentifierEndDate, fileName, directory, Status - Additional (Received, Processed, Completed)
我需要这个帮助。
谢谢瑞诗
java - 有没有办法从 Gemfire 获取公共集群时间?
Hazelcast 在 Cluster 实例上提供了一个方法,该方法返回一个 long 表示整个集群的公共时间。从API 文档:
长 getClusterTime()
返回集群范围的时间(以毫秒为单位)。
集群尝试保持集群范围的时间,该时间可能与成员自己的系统时间不同。集群范围内的时间在集群的所有成员上几乎是相同的。
Gemfire 上是否有类似的功能?
gemfire - 如何通过子对象的唯一值或一组值访问 Gemfire 对象?
我有一种情况,我在 Gemfire 中存储了一个复杂的对象。为简单起见,它是一个具有多个属性的客户对象。我们还存储了一个电子邮件地址对象列表(不仅仅是电子邮件字符串)、地址、电话号码和对“外部系统”的引用,我需要确定查询数据的最佳方式。
首先是对象结构(为简单起见伪xsd)
由于各种原因,我们将此数据作为 Customer 对象存储在单个区域中,因此我们的用例不能接受托管或类似概念(尽管它会使这变得无限简单)
需求
- 通过唯一的电子邮件地址访问客户(全球唯一并在插入前验证)
- 通过外部系统标识符名称和 id 的唯一组合访问客户(同样是全球唯一并在插入之前验证)
如果需要,我们确实可以访问 Elasticsearch,但我们真的很想通过直接返回 Customer 对象来解决这两个独特的 get 请求。在 Gemfire 中解决此问题的最佳方法是什么?FWIW,我们也在使用 Spring-Data-Gemfire。