参考示例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作为值时。
答案 0 :(得分:1)
我认为无论何时关闭主节点,代码都会自动取消部署(这意味着缓存会被清除)。您可以通过两种方式更改此行为:
将部署模式的配置设置更改为CONTINUOUS
(默认设置为SHARED
)。在这种情况下,只要主节点离开,类就不会自动取消部署。
构建examples.jar(您可以使用maven)并将Jar文件复制到每个节点上的libs
文件夹中。这样,类将在每个节点上本地部署,因此,只要任何节点离开,就不会取消部署。