18.9. カスタムキャッシュストア
カスタムキャッシュストアは Red Hat JBoss Data Grid のキャッシュストアのカスタマイズされた実装です。
カスタムキャッシュストア (またはローダー) を作成するには、必要に応じて以下のインターフェースのすべてまたはサブセットを実装します。
CacheLoaderCacheWriterAdvancedCacheLoaderAdvancedCacheWriterExternalStoreAdvancedLoadWriteStore
インターフェースの個々の機能については、「キャッシュローダーとキャッシュライター」を参照してください。
注記
AdvancedCacheWriter が実装されない場合は、該当するライターを使用して、失効したエントリーをパージまたはクリアできません。
注記
AdvancedCacheLoader が実装されない場合、該当するローダーに格納されたエントリーはプリロードおよびマップ/削減の反復に使用されません。
既存のキャッシュストアを新しい API に移行するか、新しいストア実装を作成するには、
SingleFileStore などを使用します。SingleFileStore サンプルコードを参照するには、JBoss Data Grid ソースコードをダウンロードします。
以下の手順に従って、カスタマーポータルから
SingleFileStore サンプルコードをダウンロードします。
手順18.10 JBoss Data Grid ソースコードのダウンロード
- Red Hat カスタマーポータルにアクセスするには、ブラウザーで https://access.redhat.com/home に移動します。
- をクリックします。
- JBoss Development and Management というラベルの付いたセクションで、 をクリックします。
- Red Hat ログイン フィールドと パスワード フィールドに該当するクレデンシャルを入力し、 をクリックします。
- ダウンロード可能なファイルのリストから、Red Hat JBoss Data Grid ${VERSION} Source Code を見つけ、 をクリックします。ファイルを任意の場所に保存し、解凍します。
jboss-datagrid-6.6.0-sources/infinispan-6.4.0.Final-redhat-4-src/core/src/main/java/org/infinispan/persistence/file/SingleFileStore.javaに移動してSingleFileStoreソースコードを見つけます。
18.9.1. カスタムキャッシュストアの Maven アーキタイプ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
カスタムキャッシュストアの開発は、Maven アーキタイプを使用して簡単に始めることができます。アーキタイプを作成すると、正しいディレクトリーレイアウトとサンプルコードとともに新しい Maven プロジェクトが生成されます。
手順18.11 Maven アーキタイプの生成
- JBoss Data Grid Maven リポジトリーが Red Hat JBoss Data Grid 『Getting Started Guide』に記載された手順に従ってインストールされていることを確認します。
- コマンドプロンプトを開き、以下のコマンドを実行して現在のディレクトリーでアーキタイプを生成します。
mvn -Dmaven.repo.local="path/to/unzipped/jboss-datagrid-6.6.0-maven-repository/" archetype:generate -DarchetypeGroupId=org.infinispan -DarchetypeArtifactId=custom-cache-store-archetype -DarchetypeVersion=6.4.0.Final-redhat-4
mvn -Dmaven.repo.local="path/to/unzipped/jboss-datagrid-6.6.0-maven-repository/" archetype:generate -DarchetypeGroupId=org.infinispan -DarchetypeArtifactId=custom-cache-store-archetype -DarchetypeVersion=6.4.0.Final-redhat-4Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記
読みやすさのために上記のコマンドは複数の行に分割されています。ただし、実行する場合は、このコマンドとすべての引数を 1 つの行で指定する必要があります。
18.9.2. カスタムキャッシュストアの設定 (リモートクライアントサーバーモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下は、Red Hat JBoss Data Grid のリモートクライアントサーバーモードにおけるカスタムキャッシュストアの設定例になります。
例18.2 カスタムキャッシュストアの設定
この設定例で使用された要素とパラメーターの詳細については、「キャッシュストア設定の詳細 (リモートクライアントサーバーモード)」を参照してください。
18.9.2.1. オプション 1: デプロイメントを使用してカスタムキャッシュストアを追加 (リモートクライアントサーバーモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
手順18.12 デプロイメントを使用してカスタムキャッシュストア .jar ファイルを JDG サーバーにデプロイ
- 以下の Java サービスローダーファイル
META-INF/services/org.infinispan.persistence.spi.AdvancedLoadWriteStoreをモジュールに追加し、以下のように参照をカスタムキャッシュストアクラスに追加します。my.package.CustomCacheStore
my.package.CustomCacheStoreCopy to Clipboard Copied! Toggle word wrap Toggle overflow - jar を
$JDG_HOME/standalone/deployments/ディレクトリーにコピーします。 - .jar ファイルがサーバーで利用可能な場合は、以下のメッセージがログに表示されます。
JBAS010287: Registering Deployed Cache Store service for store 'my.package.CustomCacheStore'
JBAS010287: Registering Deployed Cache Store service for store 'my.package.CustomCacheStore'Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 「カスタムキャッシュストア」で示されたように、
infinispan-coreサブシステムで、インターフェースをオーバーライドするクラスを指定してcache-container内部にキャッシュのエントリーを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.9.2.2. オプション 2: CLI を使用してカスタムキャッシュストアを追加 (リモートクライアントサーバーモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
手順18.13 CLI を使用してカスタムキャッシュストア .jar ファイルを JDG サーバーにデプロイ
- 以下のコマンドを実行して JDG サーバーに接続します。
[$JDG_HOME] $ bin/cli.sh --connect=$IP:$PORT
[$JDG_HOME] $ bin/cli.sh --connect=$IP:$PORTCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 以下のコマンドを実行して、.jar ファイルをデプロイします。
deploy /path/to/artifact.jar
deploy /path/to/artifact.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow
18.9.2.3. オプション 3: JON を使用してカスタムキャッシュストアを追加 (リモートクライアントサーバーモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
手順18.14 JBoss Operation Network を使用してカスタムキャッシュストア .jar ファイルを JDG サーバーにデプロイ
- JON ログインします。
- 上部のバーの
Bundlesに移動します。 Newボタンをクリックし、Recipeラジオボタンを選択します。- 以下の例のように、ストアを参照するデプロイメントバンドルファイルの内容を挿入します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Nextボタンを押しBundle Groups設定ウィザードページに進み、もう一度Nextボタンを押します。- ファイルアップローダーでカスタムキャッシュストア
.jarファイルを指定し、Uploadを押してファイルをアップロードします。 Nextボタンを押し、Summary設定ウィザードページに進みます。バンドル設定を終了するためにFinishボタンを押します。- 上部のバーの
Bundlesタブに戻ります。 - 新しく作成されたバンドルを選択し、
Deployボタンをクリックします。 Destination Nameを入力し、適切なリソースグループを選択します。このグループは JDG サーバーでのみ構成される必要があります。Base LocationのラジオボックスグループからInstall Directoryを選択します。- 下の
Deployment Directoryテキストフィールドに/standalone/deploymentsと入力します。 - デフォルトのオプションを使用してウィザードを続行します。
- サーバーのホストで以下のコマンドを使用してデプロイメントを検証します。
find $JDG_HOME -name "custom-store.jar"
find $JDG_HOME -name "custom-store.jar"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - バンドルが
$JDG_HOME/standalone/deploymentsにインストールされていることを確認します。
上記の手順が完了したら、.jar ファイルが正常にアップロードされ、JDG サーバーによって登録されます。
18.9.3. カスタムキャッシュストアの設定 (ライブラリーモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下は、Red Hat JBoss Data Grid のライブラリーモードにおけるカスタムキャッシュストアの設定例になります。
例18.3 カスタムキャッシュストアの設定
この設定例で使用された要素とパラメーターの詳細については、「キャッシュストア設定の詳細 (ライブラリモード)」を参照してください。
注記
カスタムキャッシュストアクラスは、Red Hat JBoss Data Grid が使用されるクラスパスに指定する必要があります。ほとんどの場合、これは、カスタムキャッシュストアをアプリケーションとともにパッケージ化することにより実現されます。ただし、これは Red Hat JBoss Enterprise Application Platform 『管理および設定ガイド』で説明されたように、EAP に対してカスタムキャッシュストアをモジュールとして定義し、依存関係としてリストすることにより実現することもできます。