LoginSignup
1
0

More than 3 years have passed since last update.

[ehcache2]オンメモリだけで利用する(ディスクストアを無効化)

Last updated at Posted at 2019-11-27

背景と問題点

ehcache2(2.10.4)を初めて使ったのですが、デフォルトの設定が「ディスク保存有効」になっていてちょっとはまりました。

何か問題かというか、この設定が有効の場合、オブジェクトがシリアル化可能(Serializable)でない場合は、キャッシュに失敗します。失敗しても、実行時例外は送出されず、適切なログ出力設定をしていないとログも出力されないので何がおきているのか理解するまでに時間を要しました。

ehcacheのログ出力設定はこちら

対策

今回のユースケースではオンメモリキャッシュが使えればよく、ディスク保存は不要(メモリが不足したら所定のルール~既定はLRU~で廃棄)なので、ディスク保存を無効化したかったのですが、若干手間取りました。

無効化手順

公式ドキュメント(Ehcache - Turning off DiskStores)では、「コメント化すればOK(comment out the diskStore element in ehcache.xml.)」と書いてあるので、ehcache.xmlに記載していた<diskStore>要素の定義を削除しました。

が、これだとデフォルトの設定(=diskStore有効)が効いてしまいます。

結局、path属性を空にすることで意図した結果(シリアル化できないオブジェクトのキャッシュ可能)が得られました。

ehcache.xml
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
  <diskStore path=""/>
</ehcache>
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0