2

MapStorehazelcast (v 2.2)を実装および構成して、呼び出し時に実装からmap.put()バックグラウンドで呼び出す必要があることを認識できるよう.storeにしました。少なくともそれは私が読んだものです。

実装を直接使用すると、必要なものが保存されますが、呼び出すmap.put()と保存されません。なぜそうならないのか、または私が何か間違ったことをしているのであれば、誰かが教えてもらえますか?

ここに私のMapStore実装があります:

public class MyMapStore implements MapStore<String, Object> {

private Session session = HibernateUtil.openSession();

@Override
public Object load(String key) {
            // TODO Auto-generated method stub
            return null;
}

@Override
public Map<String, Object> loadAll(Collection<String> keys) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public Set<String> loadAllKeys() {
    // TODO Auto-generated method stub
    return null;
}

@Override
public void store(String key, Object value) {
    Transaction tx = session.beginTransaction();
    session.save((MyObject)value);
    tx.commit();
}

@Override
public void storeAll(Map<String, Object> map) {
    // TODO Auto-generated method stub
}

@Override
public void delete(String key) {
            // TODO Auto-generated method stub
}

@Override
public void deleteAll(Collection<String> keys) {
    // TODO Auto-generated method stub
}
}

ヘーゼルキャスト構成:

h.getConfig().getMapConfig("default").setMapStoreConfig(
    new MapStoreConfig().setEnabled(true).setClassName(
    MyMapStore.class.getName()).setWriteDelaySeconds(0));

hazelcast 構成を印刷すると、設定したすべてがそこにあることがわかるので、何が問題なのかわかりません。

4

1 に答える 1

4

hazelcast の設定に何かが欠けていると思います。「デフォルト」の MapConfig を作成する必要があります。これが実際の例です。

Config config = new Config();

    ....


MapConfig mapCfg = new MapConfig();
mapCfg.setName("default");
mapCfg.setBackupCount(2);
mapCfg.getMaxSizeConfig().setSize(10000);
mapCfg.setTimeToLiveSeconds(300);

MapStoreConfig mapStoreCfg = new MapStoreConfig();
mapStoreCfg.setClassName(MyMapStore.class.getName()).setEnabled(true);
mapCfg.setMapStoreConfig(mapStoreCfg);

// use near cache if needed
NearCacheConfig nearCacheConfig = new NearCacheConfig();
nearCacheConfig.setMaxSize(1000).setMaxIdleSeconds(120).setTimeToLiveSeconds(300);
mapCfg.setNearCacheConfig(nearCacheConfig);

config.addMapConfig(mapCfg);

Hazelcast.newHazelcastInstance(config);
于 2013-06-07T06:57:29.963 に答える