9.3. 同梱される実装
JBossCache に同梱される現在利用可能な実装は次の通りです。
9.3.1. ファイルシステムベースのキャッシュローダー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
JBoss Cache にはファイルシステムをデータストアとして使用する複数のキャッシュローダーが同梱されています。 全キャッシュローダーの
<loader><properties> 設定要素に、 永続ストアとして使用されるディレクトリをマップする location プロパティが含まれなければなりません (location=/tmp/myDataStore など)。 主にテスト向けに使用され、 実稼働での使用は推奨されません。
FileCacheLoaderは簡単なファイルシステムベースの実装です。 デフォルトでは、 このキャッシュローダーは無効な文字など場所やツリーノード名に使用される文字の移植性をチェックします。 このチェックを無効にするには、check.character.portabilityプロパティを<properties>要素に追加し、falseに設定します (例:check.character.portability=false)。FileCacheLoader には限界があるため、 実稼働環境での使用が制限されます。 実稼働環境で使用する場合は相当な注意を払い、 制限を十分に理解する必要があります。- FileCacheLoader がディスク (ディレクトリおよびファイル) 上でツリー構造を表す方法により、 深いツリーに対するトラバースは十分ではありません。
- NFS や Windows の共有など共有ファイルシステムで使用しないようにしてください。 ファイルロッキングを適切に実装しないため、 データが破損することがあります。
- 分離レベルを NONE として使用すると、 複数のスレッドが同じファイルに書き込みしようとするため、 書き込みに間違いが生じます。
- ファイルシステムは継承的にトランザクションではないため、 トランザクションコンテキストでキャッシュを使用しようとすると、 ファイルへの書き込み (コミットフェーズで実行される) をリカバリできない場合に障害が発生します。
FileCacheLoader を非常に並列的なトランザクション環境や負荷が高い環境では使用せず、 テストのみ使用することが推奨されます。BdbjeCacheLoaderは Oracle/Sleepycat の BerkeleyDB Java Edition を基にしたキャッシュローダーの実装です。JdbmCacheLoaderは、 BerkeleyDB の代替となる高速で無料の JDBM エンジン を基にしたキャッシュローダーの実装です。
BerkeleyDB 実装は、 ファイルシステムベースの実装よりも大変効率的で、 トランザクションの保証を提供しますが、 アプリケーションと共に配布される場合は商業ライセンスが必要となります (詳細は http://www.oracle.com/database/berkeley-db/index.html を参照)。