Gridgain:从GridCache获取对象值

时间:2014-12-01 09:49:30

标签: gridgain

参考示例CachePutGetExample.java, https://github.com/gridgain/gridgain-advanced-examples/blob/master/src/main/java/org/gridgain/examples/datagrid/putget/CachePutGetExample.java

测试1:在代码中使用putx部分,getx工作正常 for (int i = 0; i < keyCnt; i++) cache.putx(i, Integer.toString(i));

测试2:对putx部分进行评论,getx工作正常 for (int i = 0; i < keyCnt; i++) cache.putx(i, Integer.toString(i));

当我尝试获取值时,我能够检索它们

但当我将GridCache更改为:

final GridCache<Integer, Person> cache = g.cache(CACHE_NAME);

并运行相同的测试,

Test1:在代码中使用putx部分,getx工作正常 for (int i = 0; i < keyCnt; i++) cache.putx(i, person1);

Test2:代码中没有putx部分,getx返回null for (int i = 0; i < keyCnt; i++) cache.putx(i, person1);

我在某个地方出错了吗?或者就像在GridGain中那样,当我们使用object作为值时。

1 个答案:

答案 0 :(得分:1)

我认为无论何时关闭主节点,代码都会自动取消部署(这意味着缓存会被清除)。您可以通过两种方式更改此行为:

  1. 将部署模式的配置设置更改为CONTINUOUS(默认设置为SHARED)。在这种情况下,只要主节点离开,类就不会自动取消部署。

  2. 构建examples.jar(您可以使用maven)并将Jar文件复制到每个节点上的libs文件夹中。这样,类将在每个节点上本地部署,因此,只要任何节点离开,就不会取消部署。