我正在使用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加载数据吗?
答案 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");
}