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