我正在从一个具有一个成员的EJB和一个具有MongoDB的MapStore的非ejb-singleton中嵌入一个Hazelcast(但实现无关紧要)。 EJB中的过程遍历项目列表,并将一些数据存储在hazelcast-map中。这有效,并且MapStore也被调用。当项目列表变大时,将在多个线程中并行处理循环(使用executerService)。此时,数据仍将放置在地图中,但不再调用mapStore,也没有更多数据存储在MongoDB中,但同样,可以对MongoDB-Storage进行注释,但仍不调用MapStore的方法。
我使用了hazelcast 3.11.2。
为hazelcast-instance配置:
Config cfg = new Config();
MapStoreConfig msc = new MapStoreConfig();
msc.setClassName(MongoDbMapStore.class.getName());
msc.setEnabled(true);
msc.setWriteDelaySeconds(1);
msc.setInitialLoadMode(InitialLoadMode.EAGER);
MapConfig mc = new MapConfig("default");
mc.setMapStoreConfig(msc);;
cfg.addMapConfig(mc);
hcInstance = Hazelcast.newHazelcastInstance(cfg);
是否写回也无关紧要。
有什么想法吗?