7.3. ノード上におけるメソッド呼び出し


キャッシュは基本的にノードの集合であるため、 キャッシュ全体または個別ノード上で操作が呼び出された時にこれらのノードへクラスタリングや永続性、 エビクションなどのアスペクトを適用する必要があります。 これをモジュラーで拡張可能に実行するには、 インターセプタチェーンを使用します。 チェーンは複数のインターセプタで構成され、 各インターセプタがアスペクトや特定機能を追加します。 キャッシュの作成時に使用する設定に応じてチェーンが構築されます。
NodeSPI は、 インターセプタスタックを通過せずに直接ノード上で操作するメソッド (xxxDirect() メソッドなど) の一部を提供します。 このようなメソッドを使用すると、 ロッキングやレプリケーションなど適用する必要があるキャッシュのアスペクトに影響することをプラグインの作成者は念頭に置いて作業する必要があります。 完全に理解していない場合は、 このようなメソッドは使用しない方がよいでしょう。

7.3.1. インターセプタ

JBoss Cache は DataContainer 実装のコアデータ構造で、 データ構造前のインターセプタを使用して機能が実装されます。 CommandInterceptor は抽象クラスで、 インターセプタ実装が拡張します。
CommandInterceptorVisitor インターフェースを実装します。 そのため、 強い型付けにてコマンドを変更することが可能です。 次項でビジターやコマンドの詳細を説明します。
インターセプタのチェーン全体でコマンドを送る InterceptorChain クラスでインターセプタ実装はチェーンされます。 特別なインターセプタ CallInterceptor は常にこのチェーンの最後に位置し、 コマンドの process() メソッドを呼び出してチェーンへ渡されたコマンドを呼び出します。
JBoss Cache には、 異なる動作の側面を表す複数のインターセプタが同梱されています。 その一部は次の通りです。
  • TxInterceptor - 進行中のトランザクションを検索し、 トランザクションマネージャへ登録して同期イベントへ参加します。
  • ReplicationInterceptor - RpcManager クラスを使用してクラスタ全体でステートをレプリケートします。
  • CacheLoaderInterceptor - 要求されたデータがメモリにない場合に永続ストアよりデータをロードします。
キャッシュインスタンスに対して設定されたインターセプタチェーンを取得し検査するには、 CacheSPI.getInterceptorChain() を呼び出します。 CacheSPI.getInterceptorChain() は、 コマンドが対応する順で順序付けされるインターセプタの List を返します。

7.3.1.1. カスタムインターセプタの作成

特定のアスペクトや機能を追加するカスタムインターセプタを作成するには、 阻止したいコマンドに応じて CommandInterceptor を拡張し、 関係する visitXXX() メソッドをオーバーライドします。 PrePostProcessingCommandInterceptorSkipCheckChainedInterceptor など、 代わりに拡張できる他の抽象インターセプタもあります。 提供される追加機能についての詳細は関連する javadoc を参照してください。
Cache.addInterceptor() メソッドを使用してインターセプタチェーンにカスタムインターセプタを追加する必要があります。 メソッドの詳細は javadoc を参照してください。
XML によるカスタムインターセプタの追加もサポートされています。 詳細は 12章設定に関する参考資料 を参照してください。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る