19.10. カスタムキャッシュストア
カスタムキャッシュストアは Red Hat JBoss Data Grid キャッシュストアのカスタマイズされた実装です。
カスタムキャッシュストア (またはローダー) を作成するには、必要に応じて以下のインターフェースのすべてまたはサブセットを実装します。
CacheLoaderCacheWriterAdvancedCacheLoaderAdvancedCacheWriterExternalStoreAdvancedLoadWriteStore
インターフェースの個々の機能については、「キャッシュローダーとキャッシュライター」を参照してください。
注記
AdvancedCacheWriter が実装されない場合は、該当するライターを使用して、失効したエントリーをパージまたはクリアできません。
注記
AdvancedCacheLoader が実装されない場合、該当するローダーに格納されたエントリーはプリロードに使用されません。
既存のキャッシュストアを新しい API に移行するか、または新しいストア実装を作成するには、
SingleFileStore などを使用します。SingleFileStore サンプルコードを参照するには、JBoss Data Grid ソースコードをダウンロードします。
以下の手順に従って、カスタマーポータルから
SingleFileStore サンプルコードをダウンロードします。
手順19.6 JBoss Data Grid ソースコードのダウンロード
- Red Hat カスタマーポータルにアクセスするには、ブラウザーで https://access.redhat.com/home に移動します。
- をクリックします。
- JBoss 開発および管理 というラベルの付いたセクションで、 をクリックします。
- Red Hat login フィールドと Password フィールドに該当する認証情報を入力し、 をクリックします。
- ダウンロード可能なファイルのリストから、Red Hat JBoss Data Grid 7 ソースコード を見つけ、 をクリックします。ファイルを必要な場所に保存し、展開します。
jboss-datagrid-7.0.0-sources/infinispan-8.3.0.Final-redhat-1-src/core/src/main/java/org/infinispan/persistence/file/SingleFileStore.javaでSingleFileStoreソースコードを見つけます。
19.10.1. カスタムキャッシュストアの Maven アーキタイプ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
カスタムキャッシュストアの開発は、Maven アーキタイプを使用して簡単に始めることができます。アーキタイプを作成すると、正しいディレクトリーレイアウトとサンプルコードと共に新しい Maven プロジェクトが生成されます。
手順19.7 Maven アーキタイプの生成
- JBoss Data Grid Maven リポジトリーが Red Hat JBoss Data Grid の 『Getting Started Guide』に記載された手順に従ってインストールされていることを確認します。
- コマンドプロンプトを開き、以下のコマンドを実行して現在のディレクトリーでアーキタイプを生成します。
mvn -Dmaven.repo.local="path/to/unzipped/jboss-datagrid-7.0.0-maven-repository/" archetype:generate -DarchetypeGroupId=org.infinispan -DarchetypeArtifactId=custom-cache-store-archetype -DarchetypeVersion=8.3.0.Final-redhat-1
mvn -Dmaven.repo.local="path/to/unzipped/jboss-datagrid-7.0.0-maven-repository/" archetype:generate -DarchetypeGroupId=org.infinispan -DarchetypeArtifactId=custom-cache-store-archetype -DarchetypeVersion=8.3.0.Final-redhat-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記
読みやすさを目的として上記のコマンドは複数の行に分割されていますが、実行時にはコマンドとすべての引数を 1 つの行で指定する必要があります。
19.10.2. カスタムキャッシュストアの設定 (リモートクライアントサーバーモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下は、Red Hat JBoss Data Grid のリモートクライアントサーバーモードにおけるカスタムキャッシュストアの設定例になります。
例19.2 カスタムキャッシュストアの設定
<distributed-cache name="cacheStore" mode="SYNC" segments="20" owners="2" remote-timeout="30000">
<store class="my.package.CustomCacheStore">
<property name="customStoreProperty">10</property>
</store>
</distributed-cache>
<distributed-cache name="cacheStore" mode="SYNC" segments="20" owners="2" remote-timeout="30000">
<store class="my.package.CustomCacheStore">
<property name="customStoreProperty">10</property>
</store>
</distributed-cache>
この設定例で使用された要素とパラメーターの詳細については、「キャッシュストア設定の詳細 (リモートクライアントサーバーモード)」を参照してください。
19.10.2.1. オプション 1: デプロイメントを使用してカスタムキャッシュストアを追加 (リモートクライアントサーバーモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
手順19.8 デプロイメントを使用してカスタムキャッシュストア .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
19.10.2.2. オプション 2: CLI を使用してカスタムキャッシュストアを追加 (リモートクライアントサーバーモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
手順19.9 CLI を使用してカスタムキャッシュストア .jar ファイルを JDG サーバーにデプロイ
- 以下のコマンドを実行して JDG サーバーに接続します。
[$JDG_HOME] $ bin/cli.sh --connect --controller=$IP:$PORT
[$JDG_HOME] $ bin/cli.sh --connect --controller=$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
19.10.2.3. オプション 3: JON を使用してカスタムキャッシュストアを追加 (リモートクライアントサーバーモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
手順19.10 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 サーバーによって登録されます。
注記
JON プラグインは JBoss Data Grid 7.0 で非推奨となり、以降のバージョンでは除去される予定です。
19.10.3. カスタムキャッシュストアの設定 (ライブラリーモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下は、Red Hat JBoss Data Grid のライブラリーモードにおけるカスタムキャッシュストアの設定例になります。
例19.3 カスタムキャッシュストアの設定
この設定例で使用された要素とパラメーターの詳細については、「キャッシュストア設定の詳細 (ライブラリモード)」を参照してください。
注記
カスタムキャッシュストアクラスは、Red Hat JBoss Data Grid が使用されるクラスパスに指定する必要があります。ほとんどの場合、これは、カスタムキャッシュストアをアプリケーションと共にパッケージ化して実行されます。ただし、これは Red Hat JBoss Enterprise Application Platform の 『管理および設定ガイド』で説明されているように、EAP に対してカスタムキャッシュストアをモジュールとして定義し、依存関係としてリストすることによっても実行できます。