1

プログラムでローカルの infinispan キャッシュを開始および停止する必要があります。最初にキャッシュを開始するには、次のことを行う必要があります。

defaultcachemanager.getCache("local");

これは、システム (この場合は karaf) が起動し、完全に機能しているときに発生します。キャッシュを停止するには、次のようにします。

defaultcachemanager.stop();

次に、次を使用して同じキャッシュを開始しようとすると:

defaultcachemanager.getCache("local");

それは失敗します。私はやろうとしました:

defaultcachemanager.startCache("local");

これは例外で失敗します

"Cache container has been stopped and cannot be reused. Recreate the cache container."

それまでにキャッシュコンテナが起動されていないと思います。でもそうじゃない

 defaultcachemanager.startCache("local");

キャッシュも作成して開始することになっています。何が欠けているのかわかりません。の新しいインスタンスを作成する必要がありますか?

defaultcachemanager

また?defaultcachemanager のコードを確認しましたが、キャッシュ エントリが停止されているだけで、インスタンス自体が破棄されていることはわかりません。

先週 Infinispan の作業を開始したばかりなので、私の無知を許してください。どんなポインタでも大歓迎です。

ありがとう、

アシャ

4

1 に答える 1

3

呼び出すdefaultcachemanager.stop();ことで、「全体」キャッシュマネージャーを停止しました。したがって、現時点では、実行中のキャッシュ マネージャーのインスタンスはありません。

必要なのは、「全体」のキャッシュ マネージャーを停止するのではなく、キャッシュ自体を停止することだけです。

defaultcachemanager.getCache(cacheName).stop();

指定された名前のキャッシュを停止します。

defaultcachemanager.getCache(cacheName).start();

これは、停止後にローカル キャッシュを再開する方法です。

defaultcachemanager.startCache(cacheName);

これにより、キャッシュマネージャーのインスタンス化中に構成ビルダーによって設定されたデフォルト構成を使用して、指定された名前で別のキャッシュを作成できます。

于 2013-06-18T07:35:28.510 に答える