hazelcast存储负载未被调用

时间:2014-07-07 16:52:23

标签: java hazelcast

我正在使用hazelcast 3.2.3。我添加了一个类Test1,它存储在hazelcast映射Test1Map(IMap)中。我添加了一个名为Test1StoreLoad的类,它实现了store / load / delete调用。在load all keys实现中,我使用JDBC从数据库加载相关键。我的印象是,一旦我的应用程序启动并且我第一次获得对地图的引用,将调用加载/存储实现,从而调用loadAll功能。但是,这不会发生(loadAll根本没有被调用)。还有什么可以调试这个?

我在xml文件中为商店加载实现添加了以下配置:

<map name="Test1Map">
<in-memory-format>BINARY</in-memory-format>
<backup-count>0</backup-count>
<async-backup-count>1</async-backup-count>
<time-to-live-seconds>0</time-to-live-seconds>
<max-idle-seconds>0</max-idle-seconds>
<eviction-policy>LRU</eviction-policy>
<max-size policy="PER_NODE">0</max-size>
<eviction-percentage>25</eviction-percentage>
   <map-store enabled="true">
    <class-name>models.hcast.storeload.Test1StoreLoad</class-name>
    <write-delay-seconds>0</write-delay-seconds>
</map-store>

我们可以更改EAGER / LAZY选项以通过XML配置而不是API加载数据吗?

1 个答案:

答案 0 :(得分:1)

我使用以下内容加载配置文件。即使我有类路径指向包含xml配置文件的文件夹,由于某种原因(我缺乏理解或配置错误),xml文件没有被选中(可能正在挑选hazelcast-default.xml文件)。我通过传入文件的位置切换到FileSystemXmlConfig(我不想添加系统属性但会查看它)。

这是我尝试过的。

HazelcastInstance hcast = null;
try {
    Config config = new FileSystemXmlConfig("C:/Users/username/workspace/HazelcastTest/config/hazelcast.xml");
    hcast= Hazelcast.newHazelcastInstance(config);
}
catch (FileNotFoundException e) {
    logger.error("file cannot be found exception");
}