4.7. エクスパレーションのトラブルシューティング
エクスパレーションが機能していないように見える場合、エントリーがエクスパレーションについてマークされていても削除されていないことが原因である可能性があります。
put()
のような複数キャッシュの操作では、ライフスパン値がパラメーターとして渡されます。この値は間隔を定義し、この間隔の後にエントリーが期限切れになります。エビクションが設定されていない状態でライフスパンが期限切れになると、Red Hat JBoss Data Grid がエントリーを削除しなかったように見えます。例えば、number of entries など JMX の統計を表示する場合、無効の数字が表示されたり、JBoss Data Grid に関連する永続ストアにこのエントリーが依然含まれていることがあります。JBoss Data Grid は背後でこのエントリーを期限切れエントリーとしてマーク付けしても、削除しません。このようなエントリーの削除は、以下のように行われます。
- エビクション機能を有効にすると、エビクションスレッドが期限切れエントリーを定期的に検出し、これらを消去します。
期限切れエントリーに対して
get()
または containsKey()
の使用を試みると、JBoss Data Grid が null 値を返します。期限切れのエントリーはエビクションスレッドとして後で削除されます。