ドキュメントを読んでみる。(その3)

Configuration

oscache.properties ファイルによる設定の説明。

cache.memory
  • キャッシュ領域としてメモリを使用するかどうかの指定。
  • true/false (デフォルトは true)
cache.capacity
  • キャッシュが保持可能な最大要素数の指定。
  • 整数。負の値は無制限として扱われる。 (デフォルトは無制限)
cache.algorithm
  • デフォルトのキャッシュアルゴリズムの指定。アルゴリズムを指定する場合、キャッシュサイズは必須となる。キャッシュサイズが指定されなかった場合、この設定にかかわらず、要素数無制限となる。サイズを指定してアルゴリズムを指定しなかった場合、com.opensymphony.oscache.base.algorithm.LRUCache が使用される。以下、現在提供されているアルゴリズム
    • com.opensymphony.oscache.base.algorithm.LRUCache - 最も最近に使われていないものから退避される。caceh.capacityが指定された場合のデフォルト。
    • com.opensymphony.oscache.base.algorithm.FIFOCache - 最初に入ったものから優先して退避される。
    • com.opensymphony.oscache.base.algorithm.UnlimitedCache - キャッシュ内容は退避されない。cache.capacity が未指定の場合のデフォルト。
cache.blocking
  • スレッドがキャッシュエントリを取得する際に、すでにキャッシュエントリが古くなって他のスレッドがそのエントリを更新している場合に、更新を待つか、古いデータを返すかの指定。デフォルト(false)の場合は、古いエントリを返す。古いエントリを返す場合は古いデータが返るがパフォーマンスが高い。ブロッキングが有効な場合(trueの場合)は、エントリ更新中にアクセスしてきた皇族スレッドは、エントリ更新が完了するまでブロックする。ブロッキングしない場合でも、古いデータが存在しない場合はブロックする。
cache.unlimited.disk
  • ディスクキャッシュが無制限かどうかの指定。デフォルトはfalse。この場合、ディスクキャッシュのエントリ数の上限は、cache.capacity の値と同数になる。
cache.persistence.class
  • キャッシュエントリの永続化に使用するクラスの指定。このクラスは、PersistenceListener インタフェースを実装する必要がある。OSCache のディストリビューションでは、ファイルシステムベースの永続化を用意している。このプロパティを com.opensymphony.oscache.plugins.diskpersistence.HashDiskPersistenceListener にセットすると、その実装を利用できる。JDBCLDAP 等を使用する独自実装を指定することもできる。
  • HashDiskPersistenceListenerでは、エントリのファイル名を生成するために、エントリの toString() をハッシュしたもを使用する。読むことが可能なファイル名を使用したい場合は、親の DiskPersistenceListener は使用可能だが、不正文字や長いファイル名などの問題が残る。
  • HashDiskPersistenceListener と DiskPersistenceListener は、ディスクの何処にファイルを保存するかを知るために、cache.path プロパティが必要。
cache.path
  • キャッシュが保存されるディレクトリの指定。このディレクトリは、存在しなければ自動的に作成されるが、OSCacheに書き込み権限が必要。同一のキャッシュパスを共有することはできない。
  • Windowsマシンでは、バックスラッシュはエスケープする必要がある。
cache.persistence.overflow.only
  • 永続化が、メモリキャッシュが溢れるまで行われないことの指定。下位互換性のため、デフォルト値は false になっているが、メモリキャッシュが有効の場合は、true にすることが推奨される。この指定は、キャッシュの振る舞いを大幅に変え、永続化されたキャッシュはメモリ上のキャッシュと異なるようになる。
cache.event.listeners
  • コンマ区切りの FQCN で、各クラスは書きのインタフェースを実装している必要がある。
    • CacheEntryEventListener - キャッシュの add/update/flush/remove イベントを受け取る。
    • CacheMapAccessEventListener - キャッシュアクセスイベントを受け取る。これにより、統計情報を監視することが可能になり、キャッシュがどれだけ効果的に動作しているかを確認することが可能になる。
  • デフォルトではリスナーは設定されていないが、OSCacheが提供するいくつかのリスナーを使用することが可能。
    • com.opensymphony.oscache.plugins.clustersupport.BroadcastingCacheEventListener - クラスタサポート。これを使用すると、LAN上のほかのOSCacheに flush イベントを送信できる。
    • com.opensymphony.oscache.extra.CacheEntryEventListenerImpl - キャッシュのライフサイクル中のすべてのエントリイベントの数を保持する。
    • com.opensymphony.oscache.extra.CacheMapAccessEventListenerImpl - キャッシュインスタンス上でのキャッシュマップのイベント(ヒット、ミス、古くなったエントリへのヒット)数を保持する。
cache.key
  • キャッシュオブジェクトをアプリケーションおよびセッションスコープに保存するための ServletCacheAdministrator で使用されるキー。デフォルト値は "__oscache_cache"。この値をコードから使用したい場合は、com.opensymphony.oscache.web.ServletCacheAdministrator.DEFAULT_CACHE_KEY を参照すればよい。
cache.use.host.domain.in.key
  • サーバーが複数のホストとして設定されている場合、キャッシュキーにホスト名を指定したい場合がある。もしそうならば、このプロパティを true にするとよい。デフォルト値は false。

cache.cluster.multicast.ip

cache.cluster.properties

  • clusterのオプション設定。デフォルトは以下。
UDP(mcast_addr=231.12.21.132;mcast_port=45566;ip_ttl=32;\
mcast_send_buf_size=150000;mcast_recv_buf_size=80000):\
PING(timeout=2000;num_initial_members=3):\
MERGE2(min_interval=5000;max_interval=10000):\
FD_SOCK:VERIFY_SUSPECT(timeout=1500):\
pbcast.NAKACK(gc_lag=50;retransmit_timeout=300,600,1200,2400,4800;max_xmit_size=8192):\
UNICAST(timeout=300,600,1200,2400):\
pbcast.STABLE(desired_avg_gossip=20000):\
FRAG(frag_size=8096;down_thread=false;up_thread=false):\
pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;print_local_addr=true)