管理および設定ガイド
Red Hat JBoss Data Grid 6 を設定および管理するためのガイド
エディッション 1
概要
前書き
第1章 JBoss Data Grid リンクのコピーリンクがクリップボードにコピーされました!
1.1. JBoss Data Grid について リンクのコピーリンクがクリップボードにコピーされました!
- スキーマレスなキーバリューストア – Red Hat JBoss Data Grid は、固定のデータモデルを用いずに異なるオブジェクトを格納するフレキシブルな NoSQL データベースです。
- グリッドベースのデータストレージ – Red Hat JBoss Data Grid は、複数のノードにまたがったデータのレプリケートが簡単に行えるよう設計されています。
- エラスティックスケーリング – シンプルに混乱を起こさずノードの追加と削除を行えます。
- 複数のアクセスプロトコル – REST、Memcached、Hot Rod または簡単なマップのような API を使用して簡単にデータグリッドへアクセスできます。
1.2. JBoss Data Grid の使用モード リンクのコピーリンクがクリップボードにコピーされました!
- リモートクライアントサーバーモード
- リモートクライアントサーバーモードは、管理分散されたクラスター化可能なデータグリッドサーバーを提供します。アプリケーションは Hot Rod、Memcached、または REST クライアント API を使用して、データグリッドにリモートアクセスできます。
- ライブラリーモード
- ライブラリーモードは、カスタムランタイム環境の構築やデプロイに必要なすべてのバイナリを提供します。ライブラリー使用モードでは、分散クラスターの 1 つのノードへローカルアクセスでできます。この使用モードでは、使用されるコンテナの仮想マシン内でアプリケーションがデータグリッドの機能にアクセスできます。サポート対象のコンテナには、Tomcat 7 や JBoss Enterprise Application Platform 6 などがあります。
1.3. JBoss Data Grid の利点 リンクのコピーリンクがクリップボードにコピーされました!
JBoss Data Grid の利点
- 巨大なヒープと高可用性
- JBoss Data Grid では、パフォーマンス向上のためにアプリケーションがデータのルックアップ処理のほとんどを大型のサーバーデータベースへ委譲する必要がありません。JBoss Data Grid は、現在のエンタープライズアプリケーションの大部分に存在するボトルネックを完全に取り除きます。
例1.1 巨大なヒープと高可用性の例
100 個のブレードサーバーを持つグリッドの例として、各ノードがレプリケートされたキャッシュ専用の 2 GB のストレージ領域を持っているとします。この場合、グリッドの全データが 2 GB のデータのコピーとなります。逆に、分散グリッド (データ項目ごとに 1 つのコピーが必要であることを仮定した場合) では、メモリーがサポートする仮想ヒープに 100 GB のデータが含まれます。グリッドのどこからでも効果的にこのデータへアクセスできるようになります。サーバーに障害が発生した場合、グリッドによって損失データの新しいコピーが即座に作成され、グリッドの運用サーバーに置かれます。 - スケーラビリティー
- JBoss Data Grid ではデータが均一に分散されるため、グリッドサイズの唯一の上限はネットワーク上でのグループ通信になります。ネットワークのグループ通信は最小限で、新規ノードの発見のみに制限されています。すべてのデータアクセスパターンは、ノードによるピアツーピア接続を介した直接通信を許可するため、スケーラビリティーの更なる向上を容易にします。JBoss Data Grid のクラスターは、リアルタイムでスケールアップまたはスケールダウンすることが可能ですが、インフラストラクチャーの再起動を必要としません。スケーリングポリシーへの変更をリアルタイムで適用できるため、非常にフレキシブルな環境を実現することができます。
- データ分散
- JBoss Data Grid は一貫したハッシュアルゴリズムを使用して、クラスターにおけるキーの場所を判断します。一貫したハッシュに関する利点には次のようなものがあります。データ分散は、永続性とフォールトトラレンスを提供するため、余分のない十分なコピーがクラスター内に確実に存在するようにします。余分なコピーは環境のスケーラビリティーを低下させます。
- コスト効果
- 速度
- 更なるメタデータやネットワークトラフィックの必要がない、決定論的なキーの場所
- 永続性
- JBoss Data Grid は、
CacheStoreインターフェースと複数の高パフォーマンス実装 (JDBC キャッシュストアやファイルシステムベースのキャッシュストアなど) を公開します。キャッシュストアはキャッシュをシードし、関連データを安全に保持し、破損しないようにします。また、キャッシュストアはプロセスがメモリー不足になると、データをディスクへオーバーフローします。 - 言語のバインディング
- JBoss Data Grid は、既に多くの一般的なプログラミング言語向けに使用されている Memcached プロトコルと、Hot Rod と呼ばれる最適化された JBoss Data Grid 固有のプロトコルの両方をサポートします。そのため、Java Data Grid は Java に限定されず、すべての主要な Web サイトやアプリケーションに使用できます。
- 管理
- 数百個またはそれ以上のサーバーが存在するグリッド環境では、管理の実行は重要な機能になります。エンタープライズネットワーク管理ソフトウェアである JBoss Operations Network は、複数の JBoss Data Grid インスタンスを管理するのに最適なツールです。JBoss Operations Network の機能を使用すると、キャッシュマネージャーやキャッシュインスタンスを簡単かつ効率的に監視できます。
1.4. JBoss Data Grid の前提条件 リンクのコピーリンクがクリップボードにコピーされました!
1.5. JBoss Data Grid のバージョン情報 リンクのコピーリンクがクリップボードにコピーされました!
1.6. JBoss Data Grid のキャッシュアーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
図1.1 JBoss Data Grid のキャッシュアーキテクチャー
- ユーザーが直接対話できない要素 (背景が灰色の部分)。これにはキャッシュ、キャッシュマネージャー、1 次キャッシュ、永続ストアインターフェース、永続ストアなどが含まれます。
- ユーザーが直接対話できる要素 (背景が白の部分)。これにはキャッシュインターフェースやアプリケーションなどが含まれます。
JBoss Data Grid のキャッシュアーキテクチャーには次の要素が含まれます。
- キャッシュインスタンスやエントリーを永久的に格納する永続ストア。
- JBoss Data Grid は、永続ストアのアクセスに 2 つの永続ストアインターフェースを提供します。永続ストアインターフェースは以下のいずれかになります。
- キャッシュローダーは永続データストアへの接続を提供する読み取り専用インターフェースです。キャッシュローダーは、キャッシュインスタンスおよび永続ストアよりデータの場所を見つけ、読み出すことができます。詳細は 「キャッシュローダー」 を参照してください。
- キャッシュストアは、キャッシュローダーによるステートのロードおよび格納を許可するメソッドを公開し、キャッシュローダーの機能に書き込み機能が含まれるようにします。詳細は 10章キャッシュストアとキャッシュローダー を参照してください。
- 1 次キャッシュ (L1 キャッシュ) は、リモートキャッシュエントリーが最初にアクセスされた後にそれらのエントリーを格納し、同じエントリーがその後使用される度に不必要なリモートフェッチ操作が行われないようにします。詳細は 14章1 次キャッシュ を参照してください。
- キャッシュマネージャーは JBoss Data Grid のキャッシュインスタンスを読み出すために使用される主なメカニズムで、キャッシュを使用する時の開始点とすることができます。詳細は 11章キャッシュマネージャー を参照してください。
- キャッシュはキャッシュマネージャーによって読み出されたキャッシュインスタンスを格納します。
- キャッシュインターフェースは Memcached や Hot Rod などのプロトコルを使用します。キャッシュを持つインターフェースには REST を使用することもできます。リモートインターフェースに関する詳細は『開発者ガイド』を参照してください。
- Memcached は、データベースドライバー Web サイトの応答時間や操作時間を改善するために使用されるインメモリーキャッシングシステムです。Memcached キャッシングシステムは、Memached プロトコルと呼ばれるテキストベースのクライアントサーバーキャッシングプロトコルを定義します。
- Hot Rod は JBoss Data Grid で使用されるバイナリ TCP クライアントサーバープロトコルです。Memchached などの他のクライアントサーバープロトコルに不足している機能を補うために作成されました。Hot Rod は、パーティション化または分散化された JBoss Data Grid サーバークラスターの要求を、クライアントがスマートルーティングできるようにします。
- REST プロトコルは、密結合のクライアントライブラリおよびバインディングを不要にします。REST API ではオーバーヘッドが発生し、REST 呼び出しの理解と作成に REST クライアントまたはカスタムコードを必要とします。
- アプリケーションは、キャッシュインターフェースを介してユーザーがキャッシュとやりとりできるようにします。このようなエンドユーザーアプリケーションの一般的な例がブラウザーです。
1.7. JBoss Data Grid の API リンクのコピーリンクがクリップボードにコピーされました!
1.7.1. JBoss Data Grid の API リンクのコピーリンクがクリップボードにコピーされました!
- キャッシュ
- バッチ処理
- グループ化
- CacheStore
- 外部化
- 非同期 API (リモートクライアントサーバーモードで Hot Rod クライアントを併用する場合のみ使用可能)
- REST インターフェース
- Memcached インターフェース
- Hot Rod インターフェース
- RemoteCache API
1.7.2. 非同期 API について リンクのコピーリンクがクリップボードにコピーされました!
Async を追加します。非同期メソッドは、操作の結果が含まれる Future を返します。
Cache(String, String) とパラメーター化されたキャッシュでは、Cache.put(String key, String value) は String を返します。また、Cache.putAsync(String key, String value) は Future(String) を返します。
1.7.3. バッチ化 API について リンクのコピーリンクがクリップボードにコピーされました!
注記
1.7.4. キャッシュ API について リンクのコピーリンクがクリップボードにコピーされました!
ConcurrentMap インターフェースによって公開されるアトミックメカニズムが含まれます。エントリーが格納される方法は、使用されるキャッシュモードによって異なります。例えば、エントリーがリモートノードへレプリケートされたり、キャッシュストアでルックアップされたりすることもあります。
注記
1.7.5. RemoteCache インターフェースについて リンクのコピーリンクがクリップボードにコピーされました!
1.8. ツールと操作 リンクのコピーリンクがクリップボードにコピーされました!
1.8.1. 管理ツールについて リンクのコピーリンクがクリップボードにコピーされました!
関連トピック:
1.8.2. URL 経由のデータアクセス リンクのコピーリンクがクリップボードにコピーされました!
put() および post() メソッドは、キャッシュにデータを格納します。使用される URL より使用されるキャッシュ名とキーを判断することができます。データはキャッシュに格納される値で、要求のボディーに置かれます。
GET および HEAD メソッドが使用され、他のヘッダーはキャッシュの設定と挙動を制御します。
注記
1.8.3. Map メソッドの制限 リンクのコピーリンクがクリップボードにコピーされました!
size()、 values()、 keySet()、 entrySet() など特定の Map メソッドは不安定であるため、JBoss Data Grid で一定の制限を用いて使用することが可能です。これらのメソッドはロック (グローバルまたはローカル) を取得せず、同時編集、追加および削除はこれらの呼び出しでは考慮されません。さらに、前述のメソッドはローカルのデータコンテナ上でのみ操作可能で、ステートのグローバルビューは提供しません。
第2章 JBoss Data Grid でのロギング リンクのコピーリンクがクリップボードにコピーされました!
2.1. JBoss Data Grid におけるロギングの概要 リンクのコピーリンクがクリップボードにコピーされました!
2.2. サポート対象のアプリケーションロギングフレームワーク リンクのコピーリンクがクリップボードにコピーされました!
2.2.1. サポート対象のアプリケーションロギングフレームワーク リンクのコピーリンクがクリップボードにコピーされました!
- JBoss Data Grid 6 に含まれる JBoss Logging。
2.2.2. JBoss Logging について リンクのコピーリンクがクリップボードにコピーされました!
2.2.3. JBoss のロギング機能 リンクのコピーリンクがクリップボードにコピーされました!
- 革新的で使いやすい 型指定された ロガーを提供します。
- 国際化および現地化を完全サポートします。翻訳者はプロパティーファイルのメッセージバンドルを使用します。開発者はインターフェースやアノテーションを使用できます。
- 実稼働用の型指定されたロガーを生成し、開発用の型指定されたロガーをランタイムに生成するビルドタイムツール。
2.3. ロギングの設定 リンクのコピーリンクがクリップボードにコピーされました!
2.3.1. ブートロギングについて リンクのコピーリンクがクリップボードにコピーされました!
2.3.2. ブートロギングの設定 リンクのコピーリンクがクリップボードにコピーされました!
logging.properties ファイルを編集します。このファイルは標準的な Java プロパティーファイルであるため、テキストエディターで編集することができます。このファイルの各行の形式は property=value になります。
logging.properties ファイルは $JDG_HOME/standalone/configuration フォルダーにあります。
2.3.3. デフォルトのログファイルの場所 リンクのコピーリンクがクリップボードにコピーされました!
| ログファイル | 場所 | 説明 |
|---|---|---|
boot.log | $JDG_HOME/standalone/log/ | サーバールートログ。サーバーの起動に関連するログメッセージが含まれます。 |
server.log | $JDG_HOME/standalone/log/ | サーバーログ。サーバー起動後のすべてのログメッセージが含まれます。 |
2.4. ロギング属性 リンクのコピーリンクがクリップボードにコピーされました!
2.4.1. ログレベルについて リンクのコピーリンクがクリップボードにコピーされました!
TRACEDEBUGINFOWARNERRORFATAL
WARN レベルのログハンドラーは、WARN、ERROR、および FATAL のレベルのメッセージのみを記録します。
2.4.2. サポートされているログレベル リンクのコピーリンクがクリップボードにコピーされました!
| ログレベル | 値 | 説明 |
|---|---|---|
| FINEST | 300 | - |
| FINER | 400 | - |
| TRACE | 400 | アプリケーションの実行状態について詳細な情報を提供するメッセージに使用されます。TRACE レベルが有効な状態でサーバーが実行されている時に TRACE レベルのログメッセージがキャプチャーされます。 |
| DEBUG | 500 | 各要求の進捗やアプリケーションのアクティビティを示すメッセージに使用されます。DEBUG レベルが有効な状態でサーバーが実行されている時に DEBUG レベルのログメッセージがキャプチャーされます。 |
| FINE | 500 | - |
| CONFIG | 700 | - |
| INFO | 800 | アプリケーションの全体的な進捗を示すメッセージに使用されます。アプリケーションの起動やシャットダウン、その他の主なライフサイクルイベントに対して使用されます。 |
| WARN | 900 | エラーではないが、理想的とは見なされない状況を示すために使用されます。将来的にエラーをもたらす可能性のある状況を示します。 |
| WARNING | 900 | - |
| ERROR | 1000 | 発生したエラーの中で、現在のアクティビティや要求の完了を妨げる可能性があるが、アプリケーション実行の妨げにはならないエラーを表示するために使用されます。 |
| FATAL | 1100 | 重大なサービス障害やアプリケーションのシャットダウンをもたらしたり、JBoss Enterprise Application Platform 6 のシャットダウンを引き起こす可能性があるイベントを表示するのに使用されます。 |
2.4.3. ログカテゴリーについて リンクのコピーリンクがクリップボードにコピーされました!
DEBUG ログレベルでは、300、400、500 のログの値がキャプチャーされます。
2.4.4. ルートロガーについて リンクのコピーリンクがクリップボードにコピーされました!
server.log ファイルに書き込むように設定されています。このファイルはサーバーログと呼ばれる場合もあります。
2.4.5. ログハンドラーについて リンクのコピーリンクがクリップボードにコピーされました!
ConsoleFilePeriodicSizeAsyncCustom
2.4.6. ログハンドラーのタイプ リンクのコピーリンクがクリップボードにコピーされました!
| ログハンドラーのタイプ | 説明 |
|---|---|
| コンソール (Console) | コンソールログハンドラーは、ログメッセージをホストオペレーティングシステムの標準出力 (stdout) または標準エラー (stderr) ストリームに書き込みます。これらのメッセージは、JBoss Enterprise Application Platform 6 がコマンドラインプロンプトから実行された場合に表示されます。オペレーティングシステムで標準出力または標準エラーストリームをキャプチャーするように設定されていないと、コンソールログハンドラーからのメッセージは保存されません。 |
| ファイル (File) | ファイルログハンドラーは最も単純なログハンドラーです。主に、ログメッセージを指定のファイルへ書き込むために使用されます。 |
| 定期 (Periodic) | 定期ファイルハンドラーは、指定した時間が経過するまで、ログメッセージを指定ファイルに書き込みます。その時間が経過した後は、指定のタイムスタンプがファイル名に追記されます。その後、ハンドラーは元の名前で新規作成されたログファイルに書き込みを継続します。 |
| サイズ (Size) | サイズログハンドラーは、指定のファイルが指定サイズに到達するまで、そのファイルにログメッセージを書き込みます。ファイルが指定したサイズに到達すると、名前に数値のプレフィックスを追加して名前変更され、ハンドラーは元の名前で新規作成されたログファイルに書き込みを継続します。各サイズログハンドラーは、このような方式で保管されるファイルの最大数を指定する必要があります。 |
| 非同期 (Async) | 非同期ログハンドラーは、 単一または複数のログハンドラーを対象とする非同期動作を提供するラッパーログハンドラーです。非同期ログハンドラーは、待ち時間が長かったり、ネットワークファイルシステムへのログファイルの書き込みなどにパフォーマンス上の問題があるログハンドラーに対して有用です。 |
| カスタム (Custom) | カスタムログハンドラーにより、実装された新しいタイプのログハンドラーを設定することが可能になります。カスタムハンドラーは、java.util.logging.Handler を拡張する Java クラスとして実装し、モジュール内に格納する必要があります。 |
2.4.7. ログフォーマッターについて リンクのコピーリンクがクリップボードにコピーされました!
java.util.Formatter クラスと同じ構文を使用する文字列です。
2.5. ロギング設定プロパティー リンクのコピーリンクがクリップボードにコピーされました!
2.5.1. ルートロガーのプロパティー リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | データタイプ | 説明 |
|---|---|---|
| level | 文字列 |
ルートロガーが記録するログメッセージの最大レベル。
|
| handlers | 文字列の一覧 |
ルートロガーによって使用されるログハンドラーの一覧。
|
2.5.2. ログカテゴリーのプロパティ リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | データタイプ | 詳細 |
|---|---|---|
| level | 文字列 |
ログカテゴリーが記録するログメッセージの最大レベル。
|
| handlers | 文字列の一覧 |
ルートロガーによって使用されるログハンドラーの一覧。
|
| use-parent-handlers | ブール値 |
true に設定した場合、割り当てられた他のハンドラーだけでなく、ルートロガーのログハンドラーを使用します。
|
| category | 文字列 |
ログメッセージがキャプチャーされるログカテゴリー。
|
2.5.3. コンソールログハンドラーのプロパティー リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | データタイプ | 説明 |
|---|---|---|
| level | 文字列 |
ログハンドラーが記録するログメッセージの最大レベル。
|
| encoding | 文字列 |
出力に使用される文字エンコーディングスキーム。
|
| formatter | 文字列 |
このログハンドラーで使用するログフォーマッター。
|
| target | 文字列 |
ログハンドラーの出力先となるシステム出力ストリーム。これは システムエラーストリームの場合は System.err、標準出力ストリームの場合は System.out とすることができます。
|
| autoflush | ブール値 |
true に設定すると、ログメッセージは受信直後にハンドラーのターゲットに送信されます。
|
| name | 文字列 |
このログハンドラーの一意の ID。
|
2.5.4. ファイルログハンドラープロパティー リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | データタイプ | 詳細 |
|---|---|---|
| level | 文字列 |
ログハンドラーが記録するログメッセージの最大レベル。
|
| encoding | 文字列 |
出力に使用される文字エンコーディングスキーム。
|
| formatter | 文字列 |
このログハンドラーで使用するログフォーマッター。
|
| append | ブール値 |
true に設定された場合、このハンドラーが書き込んだすべてのメッセージがファイル (すでに存在する場合) に追加されます。false に設定された場合、アプリケーションサーバーが起動されるたびに、新しいファイルが作成されます。
append に対する変更を反映するには、サーバーを再起動する必要があります。
|
| autoflush | ブール値 |
true に設定された場合は、受信直後にハンドラーにより割り当てられたファイルに送信されます。
autoflush に対する変更を反映するには、サーバーを再起動する必要があります。
|
| name | 文字列 |
このログハンドラーの一意の ID。
|
| file | オブジェクト |
このログハンドラーの出力が書き込まれるファイルを表すオブジェクト。このオブジェクトには、
relative-to と path の 2 つの設定プロパティーが含まれます。
|
| relative-to | 文字列 |
ファイルオブジェクトのプロパティーであり、ログファイルが書き込まれるディレクトリーです。ここでは、JBoss Enterprise Application Platform 6 のファイルパス変数を指定できます。
jboss.server.log.dir 変数はサーバーの log/ ディレクトリーを示します。
|
| path | 文字列 |
ファイルオブジェクトのプロパティーであり、ログメッセージが書き込まれるファイルの名前です。これは、完全パスを決定するために、
relative-to プロパティーの値に追加されます。
|
2.5.5. 周期ログハンドラープロパティー リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | データタイプ | 説明 |
|---|---|---|
| append | ブール値 |
true に設定された場合、このハンドラーが書き込んだすべてのメッセージがファイル (すでに存在する場合) に追加されます。false に設定された場合、アプリケーションサーバーが起動されるたびに、新しいファイルが作成されます。append に対する変更を反映するには、サーバーを再起動する必要があります。
|
| autoflush | ブール値 |
true に設定された場合は、受信直後にハンドラーにより割り当てられたファイルに送信されます。autoflush に対する変更を反映するには、サーバーを再起動する必要があります。
|
| encoding | 文字列 |
出力に使用する文字エンコーディングスキーム
|
| formatter | 文字列 |
このログハンドラーで使用するログフォーマッター。
|
| level | 文字列 |
ログハンドラーが記録するログメッセージの最大レベル。
|
| name | 文字列 |
このログハンドラーの一意の ID。
|
| file | オブジェクト |
このログハンドラーの出力が書き込まれるファイルを表すオブジェクト。このオブジェクトには、
relative-to と path の 2 つの設定プロパティーが含まれます。
|
| relative-to | 文字列 |
ファイルオブジェクトのプロパティーであり、ログファイルが書き込まれるディレクトリーです。ここでは、ファイルパス変数を指定できます。
jboss.server.log.dir 変数はサーバーの log/ ディレクトリーを示します。
|
| path | 文字列 |
ファイルオブジェクトのプロパティーであり、ログメッセージが書き込まれるファイルの名前です。完全パスを決定するために、
relative-to プロパティーの値に追加される相対パス名です。
|
| suffix | 文字列 |
ローテーションされたログのファイル名に追加され、ローテーションの周期を決定するために使用される文字列です。この接尾辞の形式では、ドット (.) の後に、
java.text.SimpleDateFormat クラスで解析できる日付文字列が指定されます。ログは接尾辞で定義された最小時間単位に基づいてローテーションされます。たとえば、接尾辞が .yyyy-MM-dd の場合は、毎日ログがローテーションされます。
|
2.5.6. サイズログハンドラープロパティー リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | データタイプ | 説明 |
|---|---|---|
| append | ブール値 |
true に設定された場合、このハンドラーが書き込んだすべてのメッセージがファイル (すでに存在する場合) に追加されます。false に設定された場合、アプリケーションサーバーが起動されるたびに、新しいファイルが作成されます。append に対する変更を反映するには、サーバーを再起動する必要があります。
|
| autoflush | ブール値 |
true に設定された場合は、受信直後にハンドラーにより割り当てられたファイルに送信されます。autoflush に対する変更を反映するには、サーバーを再起動する必要があります。
|
| encoding | 文字列 |
出力に使用する文字エンコーディングスキーム
|
| formatter | 文字列 |
このログハンドラーで使用するログフォーマッター。
|
| level | 文字列 |
ログハンドラーが記録するログメッセージの最大レベル。
|
| name | 文字列 |
このログハンドラーの一意の ID。
|
| file | オブジェクト |
このログハンドラーの出力が書き込まれるファイルを表すオブジェクト。このオブジェクトには、
relative-to と path の 2 つの設定プロパティーが含まれます。
|
| relative-to | 文字列 |
ファイルオブジェクトのプロパティーであり、ログファイルが書き込まれるディレクトリーです。ここでは、ファイルパス変数を指定できます。
jboss.server.log.dir 変数はサーバーの log/ ディレクトリーを示します。
|
| path | 文字列 |
ファイルオブジェクトのプロパティーであり、ログメッセージが書き込まれるファイルの名前です。これは、完全パスを決定するために、
relative-to プロパティーの値に追加されます。
|
| rotate-size | 整数 |
ログファイルがローテーションされる前に到達可能な最大サイズ。数字に追加された単一の文字はサイズ単位を示します。バイトの場合は
b、キロバイトの場合は k、メガバイトの場合は m、ギガバイトの場合は g になります。たとえば、50 メガバイトの場合は、50m になります。
|
| max-backup-index | 整数 |
保持されるローテーションログの最大数。この数字に達すると、最も古いログが再利用されます。
|
2.5.7. 同期ログハンドラープロパティー リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | データタイプ | 詳細 |
|---|---|---|
| level | 文字列 |
ログハンドラーが記録するログメッセージの最大レベル。
|
| name | 文字列 |
このログハンドラーの一意の ID。
|
| Queue-length | 整数 |
サブハンドラーが応答するときに、このハンドラーが保持するログメッセージの最大数。
|
| overflow-action | 文字列 |
キューの長さを超えたときにこのハンドラーがどのように応答するか。これは
BLOCK または DISCARD に設定できます。BLOCK により、キューでスペースが利用可能になるまでロギングアプリケーションが待機します。これは、非同期でないログハンドラーと同じ動作です。DISCARD により、ロギングアプリケーションは動作し続けますが、ログメッセージは削除されます。
|
| subhandlers | 文字列の一覧 |
これは、この非同期ハンドラーがログメッセージを渡すログハンドラーの一覧です。
|
2.6. ロギングの設定例 リンクのコピーリンクがクリップボードにコピーされました!
2.6.1. Root Logger の XML 設定例 リンクのコピーリンクがクリップボードにコピーされました!
2.6.2. ログカテゴリーの XML 設定例 リンクのコピーリンクがクリップボードにコピーされました!
2.6.3. コンソールログハンドラーの XML 設定例 リンクのコピーリンクがクリップボードにコピーされました!
2.6.4. ファイルログハンドラーの XML 設定例 リンクのコピーリンクがクリップボードにコピーされました!
2.6.5. 定期ログハンドラーの XML 設定例 リンクのコピーリンクがクリップボードにコピーされました!
2.6.6. サイズログハンドラーの XML 設定例 リンクのコピーリンクがクリップボードにコピーされました!
2.6.7. 非同期ログハンドラーの XML 設定例 リンクのコピーリンクがクリップボードにコピーされました!
第3章 サーバーヒンティングを用いた高可用性 リンクのコピーリンクがクリップボードにコピーされました!
3.1. サーバーヒンティングについて リンクのコピーリンクがクリップボードにコピーされました!
3.2. JGroups によるサーバーヒンティングの確立 リンクのコピーリンクがクリップボードにコピーされました!
関連トピック:
3.3. リモートクライアントサーバーモードでのサーバーヒンティングの設定 リンクのコピーリンクがクリップボードにコピーされました!
3.4. ライブラリモードでのサーバーヒンティングの設定 リンクのコピーリンクがクリップボードにコピーされました!
<transport clusterName = "MyCluster"
machineId = "LinuxServer01"
rackId = "Rack01"
siteId = "US-WestCoast" />
<transport clusterName = "MyCluster"
machineId = "LinuxServer01"
rackId = "Rack01"
siteId = "US-WestCoast" />
clusterName属性はクラスターへ割り当てられた名前を指定します。machineId属性は、元データを格納する JVM インスタンスを指定します。複数の JVM があるノードや複数の仮想ホストを持つ物理ホストに対して有用な属性です。rackIdパラメーターは、元データが含まれるラックを指定します。これにより、別のラックがバックアップに使用されるようにします。siteIdパラメーターは、相互にレプリケーションを行っている異なるデータセンターのノードを区別します。
第4章 キャッシュモード リンクのコピーリンクがクリップボードにコピーされました!
4.1. キャッシュモードについて リンクのコピーリンクがクリップボードにコピーされました!
- ローカル (スタンドアロン) モード
- クラスターモード
4.2. ローカルモード リンクのコピーリンクがクリップボードにコピーされました!
4.2.1. ローカルモードについて リンクのコピーリンクがクリップボードにコピーされました!
4.2.2. ローカルモードの操作 リンクのコピーリンクがクリップボードにコピーされました!
- データを永続化するライトスルーおよびライトビハインドキャッシュ。
- Java 仮想マシン (JVM) がメモリー不足にならないようにするためのエントリーエビクション。
- 定義された期間後に期限切れになるエントリーのサポート。
ConcurrentMap を拡張するため、マップから JBoss Data Grid への移行プロセスが簡単になります。
4.2.3. ローカルモードの設定 リンクのコピーリンクがクリップボードにコピーされました!
DefaultCacheManager を作成することもできます。どちらの方法でも、ローカルのデフォルトキャッシュが作成されます。
<transport/> がない場合はローカルキャッシュのみ格納できます。例で使用されたコンテナには <transport/> がないため、ローカルキャッシュのみを格納できます。
ConcurrentMap を拡張し、複数のキャッシュシステムと互換性があります。
4.3. クラスターモード リンクのコピーリンクがクリップボードにコピーされました!
4.3.1. クラスターモードについて リンクのコピーリンクがクリップボードにコピーされました!
関連トピック:
4.3.2. クラスターモードの操作 リンクのコピーリンクがクリップボードにコピーされました!
- レプリケーションモードは、クラスターのすべてのキャッシュインスタンスにわたって追加されたエントリーをレプリケートします。
- インバリデーションモードはデータを共有しませんが、無効なエントリーの削除を開始するようリモートキャッシュに伝えます。
- ディストリビューションモードは、クラスターの全ノード上ではなく、ノードのサブセット上の各エントリーを保管します。
4.3.3. 非同期および同期の操作 リンクのコピーリンクがクリップボードにコピーされました!
4.3.4. キャッシュモードのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
4.3.4.1. ReadExternal の無効なデータ リンクのコピーリンクがクリップボードにコピーされました!
Cache.putAsync() を使用する場合、シリアライズを開始するとオブジェクトが変更される可能性があります。それによってデータストリームが破損されると、無効なデータが readExternal に渡されます。このような場合、オブジェクトへのアクセスを同期化すると、この問題を解決することができます。
4.3.4.2. 非同期通信について リンクのコピーリンクがクリップボードにコピーされました!
local-cache によって表され、分散されたモードは distributed-cache、レプリケートされたモードは replicated-cache によって表されます。これらの各要素には、mode プロパティーが含まれ、同期通信の場合は SYNC、非同期通信の場合は SYNC に値を設定することができます。
注記
4.3.4.3. クラスター物理アドレスの読み出し リンクのコピーリンクがクリップボードにコピーされました!
インスタンスメソッド呼び出しを使用して物理アドレスを読み出すことができます。例えば、AdvancedCache.getRpcManager().getTransport().getPhysicalAddresses() のように読み出します。
第5章 ディストリビューションモード リンクのコピーリンクがクリップボードにコピーされました!
5.1. ディストリビューションモードについて リンクのコピーリンクがクリップボードにコピーされました!
5.2. ディストリビューションモードの一貫したハッシュアルゴリズム リンクのコピーリンクがクリップボードにコピーされました!
5.3. ディストリビューションモードにおけるエントリーの検索 リンクのコピーリンクがクリップボードにコピーされました!
PUT 操作が実行されると、リモート呼び出しが num_copies に指定された回数実行されます。クラスターのいずれかのノードでGET 操作が実行されると、リモート呼び出しが 1 回実行されます。バックグラウンドでは、GET 操作が実行されると PUT 操作と同じ回数 (num_copies パラメーターの値) リモート呼び出しが行われますが、これらの呼び出しは同時に実行され、返されたエントリーは即座に呼び出し側に渡されます。
5.4. ディストリビューションモードの戻り値 リンクのコピーリンクがクリップボードにコピーされました!
5.5. ディストリビューションモードの設定 リンクのコピーリンクがクリップボードにコピーされました!
重要
関連トピック:
5.6. 同期および非同期の分散 リンクのコピーリンクがクリップボードにコピーされました!
5.6.1. 同期および非同期の分散について リンクのコピーリンクがクリップボードにコピーされました!
例5.1 通信モードの例
A、B、C という 3 つのキャッシュがクラスターにあり、キャッシュ A を B にマップする K というキーがあるとします。戻り値の必要なクラスター C 上で、Cache.remove(K) のような操作を実行するとします。正常に実行するには、操作が最初にキャッシュ A と B の両方に呼び出しを同期転送し、キャッシュ A または B より返される結果を待つ必要があります。非同期通信が使用された場合、操作が想定通り動作しても戻り値の有用性は保証されません。
5.7. ディストリビューションモードにおける GET および PUT の使用
リンクのコピーリンクがクリップボードにコピーされました!
5.7.1. ディストリビューションモードの GET および PUT 操作について リンクのコピーリンクがクリップボードにコピーされました!
GET コマンドを実行します。これは、java.util.Map コントラクトに従って指定されたキーに関連する以前の値を返すメソッド (Cache.put()) があるからです。これがキーを所有しないインスタンスで実行され、エントリーが 1 次キャッシュで見つからない場合、PUT の前にリモートの GET を実行することが、戻り値を取得するための信頼できる唯一の方法になります。
PUT 操作の前に発生する GET 操作は常に同期になります。
5.7.2. 分散された GET および PUT 操作 リンクのコピーリンクがクリップボードにコピーされました!
PUT 操作を実行する前に、キャッシュが GET 操作を実行することがあります。
GET 操作は同期であるにも関わらず、すべての応答を待たないため、無駄になるリソースが発生します。GET 処理は最初に受信する有効な応答を許可するため、パフォーマンスはクラスターの大きさとは関係ありません。
Flag.SKIP_REMOTE_LOOKUP フラグを無効にします。
java.util.Map インターフェースコントラクトに違反します。これは、信頼できず正確でない戻り値が特定のメソッドに提供されるため、コントラクトに違反することになります。そのため、必ずこれらの戻り値が設定上重要な目的に使用されないようにしてください。
第6章 レプリケーションモード リンクのコピーリンクがクリップボードにコピーされました!
6.1. レプリケーションモードについて リンクのコピーリンクがクリップボードにコピーされました!
6.2. 最適化されたレプリケーションモードの使用 リンクのコピーリンクがクリップボードにコピーされました!
6.3. レプリケーションモードの戻り値 リンクのコピーリンクがクリップボードにコピーされました!
6.4. レプリケーションモードの設定 リンクのコピーリンクがクリップボードにコピーされました!
重要
関連トピック:
6.5. 同期および非同期のレプリケーション リンクのコピーリンクがクリップボードにコピーされました!
6.5.1. 同期および非同期のレプリケーション リンクのコピーリンクがクリップボードにコピーされました!
- 同期レプリケーションは、クラスターの全ノードで変更がレプリケートされるまでスレッドや呼び出し側 (
put()操作の場合) をブロックします。確認応答を待つことで、同期レプリケーションは操作が終了する前にすべてのレプリケーションが正常に適用されるようにします。 - 非同期レプリケーションはノードからの応答を待つ必要がないため、同期レプリケーションよりもかなり高速になります。非同期レプリケーションはバックグラウンドでレプリケーションを実行し、呼び出しは即座に返されます。非同期レプリケーション中に発生したエラーはログに書き込まれます。そのため、クラスターのすべてのキャッシュインスタンスでトランザクションが正常にレプリケートされなくても、トランザクションは正常に終了することが可能です。
6.5.2. 非同期レプリケーションの挙動に対するトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
- ステート転送を無効にし、
ClusteredCacheLoaderを使用して必要な時にリモートステートをレイジーにルックアップします。 - ステート転送と
REPL_SYNCを有効にします。非同期 API (cache.putAsync(k, v)など) を使用して「fire-and-forget」機能を有効にします。 - ステート転送と
REPL_ASYNCを有効にします。PRC はすべて同期的になりますが、レプリケーションキューを有効にすると (非同期モードで推奨) クライアントスレッドは中断されません。
6.6. レプリケーションキュー リンクのコピーリンクがクリップボードにコピーされました!
6.6.1. レプリケーションキュー リンクのコピーリンクがクリップボードにコピーされました!
- 以前設定された間隔。
- 要素数を越えるキューサイズ。
- 以前設定された間隔と要素数を越えるキューサイズの組み合わせ。
6.6.2. レプリケーションキューの操作 リンクのコピーリンクがクリップボードにコピーされました!
6.6.3. レプリケーションキューの使用 リンクのコピーリンクがクリップボードにコピーされました!
- 非同期マーシャリングを無効にします。
max-threads数の値を、transport executorに対して1に設定します。transport executorは次のようにstandalone.xmlで定義されます。<transport executor="infinispan-transport"/>
<transport executor="infinispan-transport"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
queue-flush-interval、値はミリ秒単位) やキューサイズ (queue-size) と共に次のように設定することができます。
6.7. よくある質問 リンクのコピーリンクがクリップボードにコピーされました!
6.7.1. レプリケーション保証について リンクのコピーリンクがクリップボードにコピーされました!
6.7.2. 内部ネットワークのレプリケーショントラフィック リンクのコピーリンクがクリップボードにコピーされました!
IP アドレスを介したトラフィックにパブリック IP アドレスを介したトラフィックよりも低い課金を行ったり、内部ネットワークトラフィックにまったく課金しないことがあります ( GoGrid など)。低料金で利用できるよう、内部ネットワークを使用してレプリケーションのトラフィックを転送するよう JBoss Data Grid を設定することが可能です。このような設定では、割り当てられた内部 IP アドレスを調べるのは簡単ではありませんが、JBoss Data Grid は JGroups インターフェースを使用してこの問題を解決します。
第7章 インバリデーションモード リンクのコピーリンクがクリップボードにコピーされました!
7.1. インバリデーションモードについて リンクのコピーリンクがクリップボードにコピーされました!
7.2. インバリデーションモードの使用 リンクのコピーリンクがクリップボードにコピーされました!
7.3. インバリデーションモードの設定 リンクのコピーリンクがクリップボードにコピーされました!
重要
関連トピック:
7.4. 同期的 / 非同期的な無効化 リンクのコピーリンクがクリップボードにコピーされました!
- 同期的な無効化は、クラスターのすべてのキャッシュが無効化メッセージを受信し、古いデータをエビクトするまでスレッドをブロックします。
- 非同期的な無効化は、応答待ちのスレッドをブロックせずに無効化メッセージがブロードキャストされる fire-and-forget モードで操作します。
7.5. 1 次キャッシュの無効化 リンクのコピーリンクがクリップボードにコピーされました!
7.5.1. 1 次キャッシュと無効化 リンクのコピーリンクがクリップボードにコピーされました!
第8章 キャッシュ書き込みモード リンクのコピーリンクがクリップボードにコピーされました!
8.1. ライトスルーおよびライトビハインドキャッシング リンクのコピーリンクがクリップボードにコピーされました!
- ライトスルー (同期)
- ライトビハインド (非同期)
8.2. ライトスルーキャッシング リンクのコピーリンクがクリップボードにコピーされました!
8.2.1. ライトスルーキャッシングについて リンクのコピーリンクがクリップボードにコピーされました!
Cache.put() 呼び出しより)、JBoss Data Grid が基盤のキャッシュストアを見つけ、更新するまで呼び出しが返されないようにします。この機能により、キャッシュストアへの更新をクライアントスレッド境界内で終了させることができます。
8.2.2. ライトスルーキャッシングの利点 リンクのコピーリンクがクリップボードにコピーされました!
8.2.3. ライトスルーキャッシングの設定 (ライブラリモード) リンクのコピーリンクがクリップボードにコピーされました!
8.3. ライトビハインドキャッシング リンクのコピーリンクがクリップボードにコピーされました!
8.3.1. ライトビハインドキャッシングについて リンクのコピーリンクがクリップボードにコピーされました!
8.3.2. ライトビハインドキャッシングの設定 リンクのコピーリンクがクリップボードにコピーされました!
write-behind 要素をキャッシュストアに追加します。以下は、write-behind 要素をリモートキャッシュストアの設定に追加する例になりますが、他のキャッシュストアタイプの場合でも同様になります。
注記
8.3.3. スケジュール外のライトビハインドストラテジーについて リンクのコピーリンクがクリップボードにコピーされました!
8.3.4. スケジュール外のライトビハインドストラテジーのライブラリー設定 リンクのコピーリンクがクリップボードにコピーされました!
<async enabled="true" threadPoolSize="10" />
<async enabled="true" threadPoolSize="10" />
8.3.5. スケジュール外のライトビハインドストラテジーのリモート設定 リンクのコピーリンクがクリップボードにコピーされました!
file-store 要素内に write-behind を追加すると、スケジュール外のライトビハインドストラテジーの設定がすべてのキャッシュストアに対して許可されます。
第9章 ロック リンクのコピーリンクがクリップボードにコピーされました!
9.1. 楽観的ロックについて リンクのコピーリンクがクリップボードにコピーされました!
writeSkewCheck が有効になっている場合、トランザクションが終了する前に、競合する変更が 1 つ以上データに加えられると、楽観的ロックモードのトランザクションはロールバックします。
9.2. 悲観的ロックについて リンクのコピーリンクがクリップボードにコピーされました!
9.3. 悲観的ロックのタイプ リンクのコピーリンクがクリップボードにコピーされました!
- 明示的な楽観的ロックは、JBoss Data Grid Lock API を使用してトランザクションの間キャッシュユーザーがキャッシュキーを明示的にロックできるようにします。ロック呼び出しは、クラスターの全ノードにおいて、指定されたキャッシュキー上でロックの取得を試みます。ロックはすべてコミットまたはロールバックフェーズ中に開放されます。
- 暗黙的な悲観的ロックは、キャッシュキーが変更操作のためアクセスされる時にキャッシュキーがバックグラウンドでロックされるようにします。暗黙的な悲観的ロックを使用すると、各変更操作に対してキーが確実にローカルでロックされるよう JBoss Data Grid がチェックします。ロックされていないキャッシュキーが見つかると、JBoss Data Grid はロックされていないキャッシュキーのロックを取得するため、クラスターワイドのロックを要求します。
9.4. 明示的な悲観的ロックの例 リンクのコピーリンクがクリップボードにコピーされました!
cache.lock(K) が実行されると、K でクラスターワイドのロックが取得されます。
cache.put(K,V5) が実行されると、取得の成功が保証されます。
tx.commit() が実行されると、この処理のために保持されたロックが開放されます。
9.5. 暗黙的な悲観的ロックの例 リンクのコピーリンクがクリップボードにコピーされました!
- 行
cache.put(K,V)が実行されると、Kでクラスターワイドのロックが取得されます。 - 行
cache.put(K2,V2)が実行されると、K2でクラスターワイドのロックが取得されます。 - 行
cache.put(K,V5)が実行されると、Kのクラスターワイドのロックは以前取得されたため、ロックの取得は実行できませんが、put操作は発生します。 - 行
tx.commit()が実行されると、このトランザクションのために保持されたすべてのロックが開放されます。
9.6. 楽観的ロックと悲観的ロックの設定 リンクのコピーリンクがクリップボードにコピーされました!
transaction 要素内に locking パラメーターを使用します。
次のように楽観的ロックを設定します。
<transaction locking="OPTIMISTIC" />
<transaction locking="OPTIMISTIC" />
次のように悲観的ロックを設定します。
<transaction locking="PESSIMISTIC" />
<transaction locking="PESSIMISTIC" />
9.7. ロック操作 リンクのコピーリンクがクリップボードにコピーされました!
9.7.1. LockManager について リンクのコピーリンクがクリップボードにコピーされました!
LockManager コンポーネントは、書き込み処理が始まる前にエントリーをロックします。LockManager は LockContainer を使用してロックを見つけたり、ロックを保持および作成します。このような実装では、通常 2 つのタイプの LockContainer が使用されます。1 つ目のタイプはロックストライピングのサポート提供し、2 つ目のタイプはエントリーごとに 1 つのロックをサポートします。
関連トピック:
9.7.2. ロックの取得について リンクのコピーリンクがクリップボードにコピーされました!
9.7.3. 平行性レベルについて リンクのコピーリンクがクリップボードにコピーされました!
DataContainers 内部のコレクションなど、関連するすべての JDK ConcurrentHashMap ベースのコレクションを調整します。
9.8. ロックストライピング リンクのコピーリンクがクリップボードにコピーされました!
9.8.1. ロックストライピングについて リンクのコピーリンクがクリップボードにコピーされました!
9.8.2. ロックストライピングの設定 リンクのコピーリンクがクリップボードにコピーされました!
striping 要素を true に設定します。
<locking isolation="REPEATABLE_READ" acquire-timeout="20000" concurrency-level="500" striping="true" />
<locking isolation="REPEATABLE_READ"
acquire-timeout="20000"
concurrency-level="500"
striping="true" />
9.8.3. ロックストライピングの代替 リンクのコピーリンクがクリップボードにコピーされました!
9.9. 分離レベル リンクのコピーリンクがクリップボードにコピーされました!
9.9.1. 分離レベルについて リンクのコピーリンクがクリップボードにコピーされました!
READ_COMMITTED と REPEATABLE_READ の 2 つです。
READ_COMMITTEDは、幅広い要件に適用できるデフォルトの分離レベルです。REPEATABLE_READはlocking設定要素を使用して設定できます。
9.9.2. READ_COMMITTED について リンクのコピーリンクがクリップボードにコピーされました!
READ_COMMITTED は JBoss Data Grid で使用できる 2 つの分離モードの 1 つです。
READ_COMMITTED モードでは、書き込み操作はデータ自体ではなくデータのコピーとして作成されます。書き込み操作は他のデータの書き込みをブロックしますが、書き込みは読み出し操作をブロックしません。そのため、READ_COMMITTED と REPEATABLE_READ の両モードは、書き込み操作がいつ発生するかに関係なく、いつでも読み取り操作を許可します。
READ_COMMITTED モードでは、読み取りの合間に書き込み操作によってデータが変更されると、トランザクション内で同じキーが複数読み取りされた場合に結果が異なる可能性があります。 これは、反復不可能読み出しと呼ばれ、REPEATABLE_READ モードでは回避されます。
9.9.3. REPEATABLE_READ について リンクのコピーリンクがクリップボードにコピーされました!
REPEATABLE_READ は JBoss Data Grid で使用できる 2 つの分離モードの 1 つです。
REPEATABLE_READ は読み取り操作中の書き込み操作や、書き込み操作時の読み取り操作を許可しません。これにより、単一のトランザクションの同じ行に 2 つの読み取り操作があるのに読み出した値が異なる時に発生する「反復不可能読み取り」が起こらないようにします。
REPEATABLE_READ 分離モードは、変更が発生する前に行の値を保存します。これにより、同じ行の 2番目の読み取り操作は変更された新しい値ではなく、保存された値を読み出すため、「反復不可能読み取り」の発生を防ぐことができます。そのため、読み出しの合間に書き込み操作が発生しても、2 つの読み取り操作によって読み出される 2 つの値は常に同じになります。
第10章 キャッシュストアとキャッシュローダー リンクのコピーリンクがクリップボードにコピーされました!
10.1. キャッシュストアについて リンクのコピーリンクがクリップボードにコピーされました!
- キャッシュにコピーがない時にデータストアよりデータを取り込みます。
- キャッシュのデータに加えられた変更をデータストアにプッシュします。
10.2. ファイルシステムベースのキャッシュストアについて リンクのコピーリンクがクリップボードにコピーされました!
FileCacheStore が含まれています。
FileCacheStore はシンプルなファイルシステムベースの実装です。
FileCacheStore には制限があるため、実稼働環境では制限内での使用が可能です。適切なファイルロックがなく、データが破損する原因となるため、共有ファイルシステム (NFS や Windows の共有など) 上では使用しないでください。また、ファイルシステムは本質的にトランザクションではないため、トランザクションコンテキストでキャッシュが使用されると、コミットフェーズ中にファイルが障害を書き込む原因となります。
FileCacheStore はテストでの使用に適していますが、高度な平行性やトランザクション、ストレスベースの環境における使用には適していません。
10.3. ファイルキャッシュストアの設定 リンクのコピーリンクがクリップボードにコピーされました!
<local-cache name="default">
<file-store />
</local-cache>
<local-cache name="default">
<file-store />
</local-cache>
- キャッシュの名前を指定するため、
local-cache属性のnameパラメーターが使用されます。 file-store要素はファイルキャッシュストアの設定情報を指定します。この要素の属性には、名前付きパスを定義するために使用されるrelative-toパラメーターや、relative-to内のディレクトリを指定するために使用されるpathパラメーターが含まれます。
10.4. リモートキャッシュストア リンクのコピーリンクがクリップボードにコピーされました!
10.4.1. リモートキャッシュストアについて リンクのコピーリンクがクリップボードにコピーされました!
RemoteCacheStore は、リモート JBoss Data Grid クラスターにデータを保存するキャッシュローダーの実装です。RemoteCacheStore は Hot Rod クライアントサーバーアーキテクチャーを使用してリモートクラスターを通信します。
RemoteCacheStore とクラスターとの間の接続を細かく調整する機能も提供します。
10.4.2. リモートキャッシュストアの設定 (リモートクライアントサーバーモード) リンクのコピーリンクがクリップボードにコピーされました!
10.4.3. リモートキャッシュストアの設定 (ライブラリモード) リンクのコピーリンクがクリップボードにコピーされました!
hotrod.properties という名前のファイルを作成し、関連するクラスパスに含まれるようにします。
JBoss Data Grid のライブラリモードにおけるリモートキャッシュストアの設定例は次の通りです。
重要
hotRodClientPropertiesFile と命名されたリモートキャッシュストアは、hotrod.properties ファイルを参照します。適切に操作するには、このファイルをリモートキャッシュストアに対して定義する必要があります。
10.4.4. リモートキャッシュストア設定の属性 リンクのコピーリンクがクリップボードにコピーされました!
remote-store 要素は、Hot Rod を使用してアクセスされるリモートキャッシュストアの設定情報を指定します。remote-store 要素内に定義されるプロパティーは Hot Rod のクライアントプロパティーとして処理されます。
cacheパラメーターは使用されているキャッシュの名前を指定します。socket-timeoutパラメーターは、リモートキャッシュのソケットタイムアウトの時間を指定します。tcp-no-delayパラメーターは、TCP パケットが遅延され一括して送信されるかを指定します。このパラメーターの有効な値はtrueとfalseになります。fetch-stateパラメーターは、クラスターへ参加する時に永続ステートが取り込まれるかを決定します。このパラメーターの有効な値はtrueとfalseになります。passivationパラメーターは、キャッシュのエントリーがパッシベートされるか (true) またはキャッシュストアが内容のコピーをメモリーに保持するか (false) を決定します。preloadパラメーターは、起動中にエントリーをキャッシュにロードするかを指定します。このパラメーターの有効な値はtrueとfalseになります。purgeパラメーターは、キャッシュストアの起動時にキャッシュストアがパージされるかどうかを指定します。このパラメーターの有効な値はtrueとfalseになります。
remote-server 要素はリモートキャッシュストアによって使用されるリモートサーバーに関する情報を提供します。
outbound-socket-bindingパラメーターは、リモートキャッシュストアのアウトバウンドソケットを指定します。
重要
standalone.xml ファイルにも定義します。
10.4.5. hotrod.properties ファイル リンクのコピーリンクがクリップボードにコピーされました!
infinispan.client.hotrod.server_list=remote-server:11222
infinispan.client.hotrod.server_list=remote-server:11222
infinispan.client.hotrod.request_balancing_strategy- レプリケートされた Hot Rod サーバークラスターでは、このストラテジーに従ってクライアントがサーバーへの要求のバランスを取ります。このプロパティーのデフォルト値は
org.infinispan.client.hotrod.impl.transport.tcp.RoundRobinBalancingStrategyです。 infinispan.client.hotrod.server_list- 接続する Hot Rod サーバーの初期リストです。「host1:port1;host2:port2」 のような形式で指定されます。最低でも 1 つの host:port を指定する必要があります。このプロパティーのデフォルト値は
127.0.0.1:11222です。 infinispan.client.hotrod.force_return_values- すべての呼び出しに対して暗黙的に Flag.FORCE_RETURN_VALUE を行うかどうか。このプロパティーのデフォルト値は
falseです。 infinispan.client.hotrod.tcp_no_delay- TCP スタックの TCP NODELAY に影響します。このプロパティーのデフォルト値は
trueです。 infinispan.client.hotrod.ping_on_startup- true の場合、クラスターのトポロジーを取り込むため、ping リクエストがバックエンドサーバーへ送信されます。このプロパティーのデフォルト値は
trueです。 infinispan.client.hotrod.transport_factory- 使用されるトランスポートを制御します。現在、TcpTransport のみがサポートされます。このプロパティーのデフォルト値は
org.infinispan.client.hotrod.impl.transport.tcp.TcpTransportFactoryです。 infinispan.client.hotrod.marshaller- ユーザーオブジェクトをシリアライズおよびデシリアライズするため、カスタムマーシャラーの実装を指定できるようにします。このプロパティーのデフォルト値は
org.infinispan.marshall.jboss.GenericJBossMarshallerです。 infinispan.client.hotrod.async_executor_factory- 非同期呼び出しのカスタム非同期エクゼキューターを指定できるようにします。このプロパティーのデフォルト値は
org.infinispan.client.hotrod.impl.async.DefaultAsyncExecutorFactoryです。 infinispan.client.hotrod.default_executor_factory.pool_size- デフォルトのエクゼキューターが使用される場合、エクゼキューターを初期化するスレッド数を設定します。このプロパティーのデフォルト値は
10です。 infinispan.client.hotrod.default_executor_factory.queue_size- デフォルトのエクゼキューターが使用される場合、エクゼキューターを初期化するキューサイズを設定します。このプロパティーのデフォルト値は
100000です。 infinispan.client.hotrod.hash_function_impl.1- ハッシュ関数のバージョンと使用中の一貫したハッシュアルゴリズムを指定します。使用される Hot Rod サーバーのバージョンと密接に関係しています。このプロパティーのデフォルト値は
Hash function specified by the server in the responses as indicated in ConsistentHashFactoryです。 infinispan.client.hotrod.key_size_estimate- このヒントは、キーをシリアライズおよびデシリアライズする時にアレイのサイズ変更を最小限にするため、バイトバッファーのサイズを設定できるようにします。このプロパティーのデフォルト値は
64です。 infinispan.client.hotrod.value_size_estimate- このヒントは、値をシリアライズおよびデシリアライズする時にアレイのリサイズを最小限にするため、バイトバッファーをサイジングできるようにします。このプロパティーのデフォルト値は
512です。 infinispan.client.hotrod.socket_timeout- このプロパティーは、サーバーからのバイト待ちを断念する前の最大ソケット読み取りタイムアウトを定義します。The default value for this property is
60000 (equals 60 seconds). infinispan.client.hotrod.protocol_version- このプロパティーは、クライアントが使用する必要があるプロトコルのバージョンを定義します。他の有効値には 1.0 が含まれます。このプロパティーのデフォルト値は
1.1です。 infinispan.client.hotrod.connect_timeout- このプロパティーは、サーバーへの接続を断念する前の最大ソケット接続タイムアウトを定義します。The default value for this property is
60000 (equals 60 seconds).
10.4.6. リモートキャッシュストアのアウトバウンドソケットの定義 リンクのコピーリンクがクリップボードにコピーされました!
standalone.xml ファイルの outbound-socket-binding 要素を使用して定義されます。
standalone.xml ファイルにおけるこの設定の例は次の通りです。
<outbound-socket-binding name="remote-store-hotrod-server"> <remote-destination host="127.0.0.1" port="11322"/> </outbound-socket-binding>
<outbound-socket-binding name="remote-store-hotrod-server">
<remote-destination host="127.0.0.1"
port="11322"/>
</outbound-socket-binding>
10.5. JDBC ベースのキャッシュストア リンクのコピーリンクがクリップボードにコピーされました!
10.5.1. JDBC ベースのキャッシュストアについて リンクのコピーリンクがクリップボードにコピーされました!
JdbcBinaryCacheStoreJdbcStringBasedCacheStoreJdbcMixedCacheStore
10.5.2. JDBC キャッシュの選択 リンクのコピーリンクがクリップボードにコピーされました!
JdbcStringBasedCacheStore はストレス下でより優れたスループットを提供するため、キータイプを制御する場合に適しています。
JdbcStringBasedCacheStore は、Key2StringMapper を書いてキーを文字列オブジェクトにマップできる場合のみ使用することができます。JdbcStringBasedCacheStore を使用できない場合、JdbcBinaryCacheStore または JdbcMixedCacheStore を代わりに使用できます。JdbcStringBasedCacheStore がほとんどのキーを処理し、Key2StringMapper を使用して一部のキーを変換できない場合に JdbcMixedCacheStore を使用するのがよいでしょう。
10.5.3. JdbcBinaryCacheStores リンクのコピーリンクがクリップボードにコピーされました!
10.5.3.1. JdbcBinaryCacheStore について リンクのコピーリンクがクリップボードにコピーされました!
JdbcBinaryCacheStore はすべてのキータイプをサポートします。同じテーブル行/Blob の同じハッシュ値 (キー上の hashCode メソッド) を持つすべてのキーを格納します。含まれるキーに共通するハッシュ値が、テーブルの行/Blob の主キーとして設定されます。このハッシュ値により、JdbcBinaryCacheStore は大変優れた柔軟性を提供しますが、平行性とスループットが犠牲になります。
k1、k2、k3) のハッシュコードが同じである場合、同じテーブル行に格納されます。3 つの異なるスレッドが k1、k2、k3 を同時に更新しようとすると、すべてのキーが同じ行を共有するため同時には更新できないため、順次更新する必要があります。
10.5.3.2. パッシベーションを有効にした JdbcBinaryCacheStore リモート設定 リンクのコピーリンクがクリップボードにコピーされました!
JdbcBinaryCacheStore の設定です。
10.5.3.3. パッシベーションを無効にした JdbcBinaryCacheStore リモート設定 リンクのコピーリンクがクリップボードにコピーされました!
JdbcBinaryCacheStore の設定です。
10.5.3.4. JdbcBinaryCacheStore リモート設定の属性 リンクのコピーリンクがクリップボードにコピーされました!
JdbcBinaryCacheStore を設定するために使用される要素とパラメーターの一覧は次の通りです。
cache-container 要素は、次のパラメーターを使用してキャッシュコンテナに関する情報を指定します。
nameパラメーターはキャッシュコンテナの名前を定義します。default-cacheパラメーターは、キャッシュコンテナと共に使用されるデフォルトキャッシュの名前を定義します。listener-executorは非同期キャッシュリスナーの通知に使用されるエクゼキューターを定義します。startパラメーターはキャッシュコンテナが起動する場所を示します (要求時またはサーバー起動時にレイジーに起動するかなど)。このパラメーターの有効な値はEAGERとLAZYです。
local-cache 要素は次のパラメーターを使用して、キャッシュコンテナと共に使用されるローカルキャッシュに関する情報を指定します。
nameパラメーターは使用するローカルキャッシュの名前を指定します。startパラメーターはキャッシュが起動する場所を示します (要求時またはサーバー起動時にレイジーに起動するかなど)。このパラメーターの有効な値はEAGERとLAZYです。batchingパラメーターは、ローカルキャッシュに対してバッチ処理が有効であるかを指定します。indexingパラメーターはローカルキャッシュに使用される索引作業のタイプを指定します。このパラメーターの有効な値はNONE、LOCAL、およびALLです。
locking 要素はローカルキャッシュのロック設定を指定します。
isolationパラメーターはローカルキャッシュに使用される分離レベルを定義します。このパラメーターに有効な値はREPEATABLE_READとREAD_COMMITTEDです。acquire-timeoutパラメーターは取得した操作がタイムアウトするミリ秒単位の値を指定します。concurrency-levelパラメーターは LockManager によって使用されるロックストライプの数を定義します。stripingパラメーターは、ロックストライピングがローカルキャッシュに使用されるかどうかを指定します。
transaction 要素はローカルキャッシュのトランザクション関連の設定を指定します。
modeパラメーターはローカルキャッシュに使用されるトランザクションモードを指定します。このパラメーターの有効な値はNONE、NON_XA(XAResource を使用しない)、NON_DURABLE_XA(リカバリーを用いずに XAResource を使用する) およびFULL_XA(リカバリーを用いて XAResource を使用する) です。
eviction 要素はローカルキャッシュのエビクション設定情報を指定します。
strategyパラメーターは使用されるエビクションストラテジーやアルゴリズムを指定します。このパラメーターの有効な値にはNONE、FIFO、LRU、UNORDERED、LIRSなどがあります。max-entriesパラメーターはキャッシュインスタンスにおけるエントリーの最大数を指定します。
binary-keyed-jdbc-store 要素は、バイナリのキーボードから情報が入力されたキャッシュの JDBC ストアに対する設定を指定します。
datasourceパラメーターはデータソースの JNDI 名を定義します。passivationパラメーターは、キャッシュのエントリーがパッシベートされるか (true) またはキャッシュストアが内容のコピーをメモリーに保持するか (false) を決定します。preloadパラメーターは、起動中にエントリーをキャッシュにロードするかを指定します。このパラメーターの有効な値はtrueとfalseになります。purgeパラメーターは、起動時にキャッスストアがパージされるかどうかを指定します。 このパラメーターで有効な値はtrueとfalseです。
property 要素には、キャッシュストアに関連するプロパティーに関する情報が含まれます。
nameパラメーターはキャッシュストアの名前を指定します。- ${database.type} を有効なデータベースタイプの値 (
DB2_390、SQL_SERVER、MYSQL、ORACLE、POSTGRES、SYBASEなど) に置き換える必要があります。
binary-keyed-table 要素は、バイナリのキャッシュエントリーを格納するために使用されるデータベーステーブルに関する情報を指定します。
prefixパラメーターはデータベーステーブル名のプレフィックスの文字列を指定します。
id-column 要素は、キャッシュエントリーの ID を保持するデータベース列に関する情報を指定します。
nameパラメーターはデータベース列の名前を指定します。typeパラメーターはデータベース列のタイプを指定します。
data-column 要素には、キャッシュエントリーデータを保持するデータベース列に関する情報が含まれます。
nameパラメーターはデータベース列の名前を指定します。typeパラメーターはデータベース列のタイプを指定します。
timestamp-column 要素は、キャッシュエントリーのタイムスタンプを保持するデータベース列に関する情報を指定します。
nameパラメーターはデータベース列の名前を指定します。typeパラメーターはデータベース列のタイプを指定します。
10.5.3.5. JdbcBinaryCacheStore のライブラリーモード設定 リンクのコピーリンクがクリップボードにコピーされました!
JdbcBinaryCacheStore の設定例は次の通りです。
10.5.4. JdbcStringBasedCacheStores リンクのコピーリンクがクリップボードにコピーされました!
10.5.4.1. JdbcStringBasedCacheStore について リンクのコピーリンクがクリップボードにコピーされました!
JdbcStringBasedCacheStore は複数のエントリーを各行にグループ化せずに、各エントリーをテーブルの独自の行に格納するため、平行負荷下でスループットが増加します。また、各キーを String オブジェクトへマッピングする (プラグ可能な) 全単射も使用します。Key2StringMapper インターフェースは全単射を定義します。
DefaultTwoWayKey2StringMapper と呼ばれるデフォルトの実装が含まれています。
10.5.4.2. 複数ノードの JdbcStringBasedCacheStore リモート設定 リンクのコピーリンクがクリップボードにコピーされました!
10.5.4.3. パッシベーションを有効にした JdbcStringBasedCacheStore リモート設定 リンクのコピーリンクがクリップボードにコピーされました!
JdbcBinaryCacheStore の例になります。
10.5.4.4. パッシベーションを無効にした JdbcStringBasedCacheStore リモート設定 リンクのコピーリンクがクリップボードにコピーされました!
JdbcStringBasedCacheStore の設定になります。
10.5.4.5. JdbcStringBasedCacheStore リモート設定の属性 リンクのコピーリンクがクリップボードにコピーされました!
JdbcStringBasedCacheStore を設定するために使用される属性とパラメーターの一覧は次の通りです。
cache-container 要素はキャッシュコンテナに関する情報を指定します。
nameパラメーターはキャッシュコンテナの名前を定義します。default-cacheパラメーターは、キャッシュコンテナと共に使用されるデフォルトキャッシュの名前を定義します。listener-executorは非同期キャッシュリスナーの通知に使用されるエクゼキューターを定義します。startパラメーターはキャッシュコンテナが起動する場所を示します (要求時またはサーバー起動時にレイジーに起動するかなど)。このパラメーターの有効な値はEAGERとLAZYです。
local-cache 要素はキャッシュコンテナと共に使用されるローカルキャッシュに関する情報を指定します。
nameパラメーターは使用するローカルキャッシュの名前を指定します。startパラメーターはキャッシュが起動する場所を示します (要求時またはサーバー起動時にレイジーに起動するかなど)。このパラメーターの有効な値はEAGERとLAZYです。batchingパラメーターは、ローカルキャッシュに対してバッチ処理が有効であるかを指定します。indexingパラメーターはローカルキャッシュに使用される索引作業のタイプを指定します。このパラメーターの有効な値はNONE、LOCAL、およびALLです。
transport 要素には、キャッシュコンテナによって使用されるトランスポートの説明が含まれます。
stackパラメーターはトランスポートに使用される JGroups スタックを指定します。executorパラメーターはトランスポートに使用されるエクゼキューターを指定します。lock-timeoutパラメーターはトランスポートのロックに対するタイムアウト値を指定します。
replicated-cache 要素は使用中のレプリケートされたキャッシュに関する情報を指定します。
nameパラメーターはレプリケートされたキャッシュの名前を指定します。startパラメーターはキャッシュが要求時または即座に起動するかどうかを指定します。このパラメーターの有効な値はEAGERとLAZYです。modeパラメーターはレプリケートされたキャッシュのキャッシュモードを指定します。このパラメーターの有効な値はSYNCとASYNCです。batchingパラメーターは、レプリケートされたキャッシュにバッチ処理を使用できるかどうかを指定します。indexingパラメーターは、キャッシュに追加されたエントリーが索引付けされるかどうかを指定します。有効な場合、レプリケートされたキャッシュのエントリーが変更または削除された時に索引が更新されます。remote-timeoutパラメーターは、リモート呼び出しが受信確認を待機する期間を指定します。指定期間の後、リモート呼び出しは待機を中止し、例外がスローされます。このパラメーターはASYNCモードパラメーターと共に使用されます。
locking 要素はローカルキャッシュのロック設定を指定します。
isolationパラメーターはローカルキャッシュに使用される分離レベルを定義します。このパラメーターに有効な値はREPEATABLE_READとREAD_COMMITTEDです。acquire-timeoutパラメーターは取得した操作がタイムアウトするミリ秒単位の値を指定します。concurrency-levelパラメーターは LockManager によって使用されるロックストライプの数を定義します。stripingパラメーターは、ロックストライピングがローカルキャッシュに使用されるかどうかを指定します。
transaction 要素はローカルキャッシュのトランザクション関連の設定を指定します。
modeパラメーターはローカルキャッシュに使用されるトランザクションモードを指定します。このパラメーターの有効な値はNONE、NON_XA(XAResource を使用しない)、NON_DURABLE_XA(リカバリーを用いずに XAResource を使用する) およびFULL_XA(リカバリーを用いて XAResource を使用する) です。
eviction 要素はローカルキャッシュのエビクション設定情報を指定します。
strategyパラメーターは使用されるエビクションストラテジーやアルゴリズムを指定します。このパラメーターの有効な値にはNONE、FIFO、LRU、UNORDERED、LIRSなどがあります。max-entriesパラメーターはキャッシュインスタンスにおけるエントリーの最大数を指定します。
string-keyed-jdbc-store 要素は、文字列ベースのキーボードから情報が入力されたキャッシュの JDBC ストアに対する設定を指定します。
datasourceパラメーターはデータソースの JNDI 名を定義します。passivationパラメーターは、キャッシュのエントリーがパッシベートされるか (true) またはキャッシュストアが内容のコピーをメモリーに保持するか (false) を決定します。preloadパラメーターは、起動中にエントリーをキャッシュにロードするかどうかを指定します。このパラメーターで有効な値はtrueとfalseです。purgeパラメーターは、起動時にキャッスストアがパージされるかどうかを指定します。 このパラメーターで有効な値はtrueとfalseです。sharedパラメーターは、複数のキャッシュストアインスタンスがキャッシュストアを共有する場合に使用されます。複数のキャッシュインスタンスが同じ変更内容を複数回書き込まないようにするため、このパラメーターを設定することができます。このパラメーターに有効な値はENABLEDとDISABLEDです。singletonパラメーターは、クラスターが基盤のストアと対話する場合に使用されるシングルトンストアを有効にします。
property 要素には、キャッシュストアに関連するプロパティーに関する情報が含まれます。
nameパラメーターはキャッシュストアの名前を指定します。- ${database.type} を有効なデータベースタイプの値 (
DB2_390、SQL_SERVER、MYSQL、ORACLE、POSTGRES、SYBASEなど) に置き換える必要があります。
string-keyed-table 要素は、文字別ベースのキャッシュエントリーを格納するために使用されるデータベーステーブルに関する情報を指定します。
prefixパラメーターはデータベーステーブル名のプレフィックスの文字列を指定します。
id-column 要素は、キャッシュエントリーの ID を保持するデータベース列に関する情報を指定します。
nameパラメーターはデータベース列の名前を指定します。typeパラメーターはデータベース列のタイプを指定します。
data-column 要素には、キャッシュエントリーデータを保持するデータベース列に関する情報が含まれます。
nameパラメーターはデータベース列の名前を指定します。typeパラメーターはデータベース列のタイプを指定します。
timestamp-column 要素は、キャッシュエントリーのタイムスタンプを保持するデータベース列に関する情報を指定します。
nameパラメーターはデータベース列の名前を指定します。typeパラメーターはデータベース列のタイプを指定します。
10.5.4.6. JdbcStringBasedCacheStore のライブラリーモード設定 リンクのコピーリンクがクリップボードにコピーされました!
JdbcStringBasedCacheStore の設定例は次の通りです。
10.5.5. JdbcMixedCacheStore リンクのコピーリンクがクリップボードにコピーされました!
10.5.5.1. JdbcMixedCacheStore について リンクのコピーリンクがクリップボードにコピーされました!
JdbcMixedCacheStore は、キーのタイプを基にキーを JdbcBinaryCacheStore または JdbcStringBasedCacheStore に委譲するハイブリッド実装です。
10.5.5.2. パッシベーションを有効にした JdbcMixedCacheStore リモート設定 リンクのコピーリンクがクリップボードにコピーされました!
JdbcMixedCacheStore の設定になります。
10.5.5.3. パッシベーションを無効にした JdbcMixedCacheStore リモート設定 リンクのコピーリンクがクリップボードにコピーされました!
JdbcMixedCacheStore の設定になります。
10.5.5.4. JdbcMixedCacheStore リモート設定の属性 リンクのコピーリンクがクリップボードにコピーされました!
JdbcMixedCacheStore を設定するために使用される要素とパラメーターの一覧は次の通りです。
cache-container 要素は、次のパラメーターを使用してキャッシュコンテナに関する情報を指定します。
nameパラメーターはキャッシュコンテナの名前を定義します。default-cacheパラメーターは、キャッシュコンテナと共に使用されるデフォルトキャッシュの名前を定義します。listener-executorは非同期キャッシュリスナーの通知に使用されるエクゼキューターを定義します。startパラメーターはキャッシュコンテナが起動する場所を示します (要求時またはサーバー起動時にレイジーに起動するかなど)。このパラメーターの有効な値はEAGERとLAZYです。
local-cache 要素は次のパラメーターを使用して、キャッシュコンテナと共に使用されるローカルキャッシュに関する情報を指定します。
nameパラメーターは使用するローカルキャッシュの名前を指定します。startパラメーターはキャッシュが起動する場所を示します (要求時またはサーバー起動時にレイジーに起動するかなど)。このパラメーターの有効な値はEAGERとLAZYです。batchingパラメーターは、ローカルキャッシュに対してバッチ処理が有効であるかを指定します。indexingパラメーターはローカルキャッシュに使用される索引作業のタイプを指定します。このパラメーターの有効な値はNONE、LOCAL、およびALLです。
locking 要素はローカルキャッシュのロック設定を指定します。
isolationパラメーターはローカルキャッシュに使用される分離レベルを定義します。このパラメーターに有効な値はREPEATABLE_READとREAD_COMMITTEDです。acquire-timeoutパラメーターは取得した操作がタイムアウトするミリ秒単位の値を指定します。concurrency-levelパラメーターは LockManager によって使用されるロックストライプの数を定義します。stripingパラメーターは、ロックストライピングがローカルキャッシュに使用されるかどうかを指定します。
transaction 要素はローカルキャッシュのトランザクション関連の設定を指定します。
modeパラメーターはローカルキャッシュに使用されるトランザクションモードを指定します。このパラメーターの有効な値はNONE、NON_XA(XAResource を使用しない)、NON_DURABLE_XA(リカバリーを用いずに XAResource を使用する) およびFULL_XA(リカバリーを用いて XAResource を使用する) です。
eviction 要素はローカルキャッシュのエビクション設定情報を指定します。
strategyパラメーターは使用されるエビクションストラテジーやアルゴリズムを指定します。このパラメーターの有効な値にはNONE、FIFO、LRU、UNORDERED、LIRSなどがあります。max-entriesパラメーターはキャッシュインスタンスにおけるエントリーの最大数を指定します。
mixed-keyed-jdbc-store 要素は、混合のキーボードから情報が入力されたキャッシュの JDBC ストアに対する設定を指定します。
datasourceパラメーターはデータソースの JNDI 名を定義します。passivationパラメーターは、キャッシュのエントリーがパッシベートされるか (true) またはキャッシュストアが内容のコピーをメモリーに保持するか (false) を決定します。preloadパラメーターは、起動中にエントリーをキャッシュにロードするかどうかを指定します。このパラメーターで有効な値はtrueとfalseです。purgeパラメーターは、起動時にキャッスストアがパージされるかどうかを指定します。 このパラメーターで有効な値はtrueとfalseです。
property 要素には、キャッシュストアに関連するプロパティーに関する情報が含まれます。
nameパラメーターはキャッシュストアの名前を指定します。- ${database.type} を有効なデータベースタイプの値 (
DB2_390、SQL_SERVER、MYSQL、ORACLE、POSTGRES、SYBASEなど) に置き換える必要があります。
mixed-keyed-table 要素は、混合のキャッシュエントリーを格納するために使用されるデータベーステーブルに関する情報を指定します。
prefixパラメーターはデータベーステーブル名のプレフィックスの文字列を指定します。
string-keyed-table 要素は、文字別ベースのキャッシュエントリーを格納するために使用されるデータベーステーブルに関する情報を指定します。
prefixパラメーターはデータベーステーブル名のプレフィックスの文字列を指定します。
id-column 要素は、キャッシュエントリーの ID を保持するデータベース列に関する情報を指定します。
nameパラメーターはデータベース列の名前を指定します。typeパラメーターはデータベース列のタイプを指定します。
data-column 要素には、キャッシュエントリーデータを保持するデータベース列に関する情報が含まれます。
nameパラメーターはデータベース列の名前を指定します。typeパラメーターはデータベース列のタイプを指定します。
timestamp-column 要素は、キャッシュエントリーのタイムスタンプを保持するデータベース列に関する情報を指定します。
nameパラメーターはデータベース列の名前を指定します。typeパラメーターはデータベース列のタイプを指定します。
10.5.5.5. JdbcMixedCacheStore のライブラリーモード設定 リンクのコピーリンクがクリップボードにコピーされました!
JdbcMixedCacheStore の設定例は次の通りです。
10.5.6. カスタムキャッシュストア リンクのコピーリンクがクリップボードにコピーされました!
10.5.6.1. カスタムキャッシュストアについて リンクのコピーリンクがクリップボードにコピーされました!
10.5.6.2. カスタムキャッシュストアの設定 (リモートモード) リンクのコピーリンクがクリップボードにコピーされました!
重要
org.jboss.as.clustering.infinispan モジュールの依存関係に追加します。
10.5.6.3. カスタムキャッシュストアの設定 (ライブラリモード) リンクのコピーリンクがクリップボードにコピーされました!
10.6. よくある質問 リンクのコピーリンクがクリップボードにコピーされました!
10.6.1. 非同期キャッシュストアの変更について リンクのコピーリンクがクリップボードにコピーされました!
10.7. キャッシュストアのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
10.7.1. JdbcStringBasedCacheStore の IOExceptions リンクのコピーリンクがクリップボードにコピーされました!
JdbcStringBasedCacheStore を使用している時に IOException Unsupported protocol version 48 エラーが発生した場合、データ列タイプが正しいタイプである BLOB や VARBINARY ではなく、VARCHAR や CLOB などに設定されていることを示しています。JdbcStringBasedCacheStore は文字列であるキーのみを必要とし、値はバイナリ列に保存されるため、すべてのデータタイプを値に使用できます。
10.8. キャッシュローダー リンクのコピーリンクがクリップボードにコピーされました!
10.8.1. キャッシュローダーについて リンクのコピーリンクがクリップボードにコピーされました!
10.8.2. キャッシュローダーとキャッシュストア リンクのコピーリンクがクリップボードにコピーされました!
CacheLoader インターフェースと複数の実装が含まれていました。JBoss Data Grid ではこれらが CacheLoader と CacheStore の 2 つの異なるインターフェースに分割されました。CacheLoader は以前に存在したステートを別の場所よりロードし、CacheStore (CacheLoader を拡張します) はメソッドを公開してステートを格納し、ロードします。この分割により、読み取り専用ソースの定義が容易になりました。
10.8.4. 接続ファクトリー リンクのコピーリンクがクリップボードにコピーされました!
10.8.4.1. 接続ファクトリーについて リンクのコピーリンクがクリップボードにコピーされました!
ConnectionFactory 実装に依存してデータベースへの接続を取得します。このプロセスは接続管理またはプーリングとも呼ばれます。
ConnectionFactoryClass 設定属性を使用して指定することができます。 JBoss Data Grid には次の ConnectionFactory 実装が含まれています。
- ManagedConnectionFactory
- SimpleConnectionFactory
10.8.4.2. ManagedConnectionFactory について リンクのコピーリンクがクリップボードにコピーされました!
ManagedConnectionFactory は、アプリケーションサーバーなど管理された環境内での使用に適した接続ファクトリーです。この接続ファクトリーは JNDI ツリー内の設定された場所を調査でき、接続管理を DataSource へ委譲できます。 ManagedConnectionFactory は DataSource が含まれる管理された環境内で使用されます。この Datasource は接続プーリングへ委譲されます。
10.8.4.3. SimpleConnectionFactory について リンクのコピーリンクがクリップボードにコピーされました!
SimpleConnectionFactory は呼び出しごとにデータベース接続を作成する接続ファクトリーです。この接続ファクトリーは実稼働環境での使用には向いていません。
第11章 キャッシュマネージャー リンクのコピーリンクがクリップボードにコピーされました!
11.1. キャッシュマネージャーについて リンクのコピーリンクがクリップボードにコピーされました!
11.2. 複数のキャッシュマネージャー リンクのコピーリンクがクリップボードにコピーされました!
11.2.1. 単一のキャッシュマネージャーを用いた複数キャッシュの作成 リンクのコピーリンクがクリップボードにコピーされました!
11.2.2. 複数のキャッシュマネージャーの使用 リンクのコピーリンクがクリップボードにコピーされました!
第12章 エビクション リンクのコピーリンクがクリップボードにコピーされました!
12.1. エビクションについて リンクのコピーリンクがクリップボードにコピーされました!
12.2. エビクション操作 リンクのコピーリンクがクリップボードにコピーされました!
12.3. エビクションの用途 リンクのコピーリンクがクリップボードにコピーされました!
関連トピック:
12.4. エビクションストラテジー リンクのコピーリンクがクリップボードにコピーされました!
12.4.1. エビクションストラテジーについて リンクのコピーリンクがクリップボードにコピーされました!
EvictionStrategy.NONE: 設定されているエビクションストラテジーはありません。EvictionStrategy.FIFO: 先入れ先出しのエビクションストラテジーです。EvictionStrategy.LRU: LRU (Least Recently Used) 方式のエビクションストラテジーです。幅広いデプロイメントの要件と互換性があるため、デフォルトのエビクションアルゴリズムとなっています。EvictionStrategy.UNORDERED: 順番付けのないエビクションストラテジーです。EvictionStrategy.LIRS: LIRS (Low Inter-reference Recency Set) 方式のエビクションストラテジーです。
12.4.2. LRU エビクションアルゴリズムの制限 リンクのコピーリンクがクリップボードにコピーされました!
- 1 度だけ使用できるアクセスエントリーを時間内に置き換えられない。
- 最初にアクセスされたエントリーが不必要に置き換えられる。
12.5. エビクションの使用 リンクのコピーリンクがクリップボードにコピーされました!
12.5.1. エビクションの初期化 リンクのコピーリンクがクリップボードにコピーされました!
max-entries 属性の値をゼロよりも大きい数に設定します。max-entries の値セットを調整して、使用する設定の最適値を探します。max-entries に設定する値が大きすぎると、JBoss Data Grid のメモリーが不足するため注意してください。
12.5.2. デフォルトのエビクション設定 リンクのコピーリンクがクリップボードにコピーされました!
eviction 要素を使用してエビクションを有効にすると、次のデフォルト値が使用されます。
- ストラテジー: 指定されたエビクションストラテジーがない場合、
EvictionStrategy.NONEがデフォルトとみなされます。 - max-entries: 指定された値がない場合、
max-entriesの値は無制限のエントリーを許可する-1に設定されます。max-entriesの値を0に設定するとすべてのエントリーが拒否されます。そのため、エビクションスレッドは空のキャッシュを保持しようとします。
12.5.3. エビクションの設定例 リンクのコピーリンクがクリップボードにコピーされました!
JBoss Data Grid のライブラリーモードに有効なエビクションの XML 設定例は次の通りです。
<eviction strategy="LRU" maxEntries="2000"/>
<eviction strategy="LRU" maxEntries="2000"/>
以下を使用すると、JBoss Data Grid のライブラリモードでエビクションの設定をプログラムを用いて定義することが可能です。
Configuration c = new ConfigurationBuilder().eviction().strategy(EvictionStrategy.LRU)
.maxEntries(2000)
.build();
Configuration c = new ConfigurationBuilder().eviction().strategy(EvictionStrategy.LRU)
.maxEntries(2000)
.build();
JBoss Data Grid のリモートクライアントサーバーモードで XML を用いたエビクションの設定例は次の通りです。
<eviction strategy="FIFO" max-entries="20"/>
<eviction strategy="FIFO" max-entries="20"/>
注記
maxEntries パラメーター、リモートクライアントサーバーモードは max-entries パラメーターを使用することに注意してください。
12.5.4. エビクション設定のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
configuration 要素の max-entries パラメーターに指定された値よりも大きくすることができます。これは、max-entries の値を 2 の累乗以外の値に設定することは可能ですが、基盤のアルゴリズムがこの値を V (max-entries の値に最も近い 2 を累乗した値) に変更するからです。エビクションアルゴリズムは、キャッシュコンテナのサイズが V の値を越えないようにします。
12.6. エビクションとパッシベーション リンクのコピーリンクがクリップボードにコピーされました!
12.6.1. エビクションとパッシベーションについて リンクのコピーリンクがクリップボードにコピーされました!
関連トピック:
第13章 エクスパレーション リンクのコピーリンクがクリップボードにコピーされました!
13.1. エクスパレーションについて リンクのコピーリンクがクリップボードにコピーされました!
- ライフスパンの値。
- 最大アイドル時間の値。
-1 が作成時に割り当てられます。
13.2. エクスパレーションの操作 リンクのコピーリンクがクリップボードにコピーされました!
lifespan) または最大アイドル時間 (ライブラリモードでは maxIdle、リモートクライアントサーバーモードでは max-idle) は、エントリーのキャッシュ全体のデフォルトよりも優先されます。
13.3. エビクションとエクスパレーションの比較 リンクのコピーリンクがクリップボードにコピーされました!
lifespan) とアイドル時間 (ライブラリモードでは maxIdle、リモートクライアントサーバーモードでは max-idle) の値は、各キャッシュエントリーと一緒にレプリケートされます。
13.4. キャッシュエントリーの期限切れ通知 リンクのコピーリンクがクリップボードにコピーされました!
- ユーザースレッドがエントリーを要求し、そのエントリーが期限切れであることが判明した場合。
- エントリーがディスクへパッシベートまたはオーバフローされ、期限切れであることが判明した場合。
- エビクションメンテナンススレッドが見つけたエントリーが期限切れであることが判明した場合。
13.5. エクスパレーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
次の設定例は、JBoss Data Grid のライブラリモードでエクスパレーションを設定する方法を示しています。
<expiration lifespan="2000" maxIdle="1000" />
<expiration lifespan="2000" maxIdle="1000" />
次の設定例は、JBoss Data Grid のリモートクライアントサーバーモードでエクスパレーションを設定する方法を示しています。
<expiration lifespan="2000" max-idle="1000" />
<expiration lifespan="2000" max-idle="1000" />
13.6. 期限つき (mortal) データと期限なし (immortal) データ リンクのコピーリンクがクリップボードにコピーされました!
13.6.1. データ期限について リンクのコピーリンクがクリップボードにコピーされました!
put(key, value) を使用すると、期限なし (immortal) エントリーと呼ばれる永久に期限切れにならないエントリーが作成されます。また、put(key, value, lifespan, timeunit) を使用して作成されるエントリーは、指定の固定ライフスパンを持つ期限つき (mortal) エントリーで、ライフスパンの後に期限が切れます。
lifespan パラメーターの他に、エクスパレーションを判断するために使用される maxIdle パラメーターも提供します。maxIdle パラメーターと lifespan パラメーターをさまざまな組み合わせで使用してエントリーのライフスパンを設定することができます。
13.6.2. デフォルトのデータ期限 リンクのコピーリンクがクリップボードにコピーされました!
13.6.3. データ期限の設定 リンクのコピーリンクがクリップボードにコピーされました!
13.7. トラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
13.7.1. エクスパレーションのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
put() のような複数キャッシュの操作は、ライフスパン値をパラメーターとして渡されます。この値は間隔を定義し、この間隔の後にエントリーが期限切れになります。エビクションが設定されていない状態でライフスパンの間隔が期限切れになると、JBoss Data Grid がエントリーを削除しなかったように見受けられます。例えば、number of entries など JMX の統計を表示する場合、無効の数字が表示されたり、JBoss Data Grid に関連する永続ストアにこのエントリーが依然含まれていることがあります。JBoss Data Grid は背後でこのエントリーを期限切れエントリーとしてマーク付けしても、削除しません。このようなエントリーの削除は、以下の場合の 1 つに該当すると実行されます。
- 期限切れエントリーに対して
get()またはcontainsKey()の使用を試みると、JBoss Data Grid がエントリーを期限切れとして検出し、削除します。 - エビクション機能を有効にすると、エビクションスレッドが周期的に期限切れエントリーを検出し、パージします。
第14章 1 次キャッシュ リンクのコピーリンクがクリップボードにコピーされました!
14.1. 1 次キャッシュについて リンクのコピーリンクがクリップボードにコピーされました!
disabled になっています。
14.2. 1 次キャッシュエントリー リンクのコピーリンクがクリップボードにコピーされました!
14.2.1. 1 次キャッシュエントリー リンクのコピーリンクがクリップボードにコピーされました!
14.2.2. 1 次キャッシュエントリーのライフスパン リンクのコピーリンクがクリップボードにコピーされました!
600,000 ミリ秒 (10 分) です。このライフスパン値はユーザーの要件に合わせて変更することが可能です。
14.3. 1 次キャッシュの操作 リンクのコピーリンクがクリップボードにコピーされました!
14.3.1. 1 次キャッシュと無効化 リンクのコピーリンクがクリップボードにコピーされました!
14.3.2. GET 操作と用いた 1 次キャッシュの使用 リンクのコピーリンクがクリップボードにコピーされました!
GET 操作が実行されると、リモート呼び出しが繰り返し生成されます。同じキー上で不必要な GET 操作の数を削減するには、L1 キャッシングを有効にします。
第15章 リスナーと通知 リンクのコピーリンクがクリップボードにコピーされました!
15.1. リスナー API について リンクのコピーリンクがクリップボードにコピーされました!
15.2. リスナーの例 リンクのコピーリンクがクリップボードにコピーされました!
15.3. キャッシュエントリーが変更されたリスナーの設定 リンクのコピーリンクがクリップボードにコピーされました!
isPre が false である場合に、変更された値を Cache.get() より読み出しできません。
CacheEntryModifiedEvent.getValue() を使用して、変更されたエントリーの新しい値を読み出します。
15.4. 通知 リンクのコピーリンクがクリップボードにコピーされました!
15.4.1. リスナー通知について リンクのコピーリンクがクリップボードにコピーされました!
@Listener アノテーションが付きます。Listenable は、実装がアタッチするリスナーを持つことを意味するインターフェースです。各リスナーは Listenable で定義されたメソッドを使用して登録されます。
15.4.2. キャッシュレベルの通知について リンクのコピーリンクがクリップボードにコピーされました!
関連トピック:
15.4.3. キャッシュマネージャーレベルの通知 リンクのコピーリンクがクリップボードにコピーされました!
- クラスターに参加または離脱するノード
- キャッシュの開始および停止
15.4.4. 同期および非同期通知について リンクのコピーリンクがクリップボードにコピーされました!
@Listener (sync = false)public class MyAsyncListener { .... }
@Listener (sync = false)public class MyAsyncListener { .... }
<asyncListenerExecutor/> 要素を使用して、非同期通知を送信するために使用されるスレッドプールを調整します。
15.5. Futures の通知 リンクのコピーリンクがクリップボードにコピーされました!
15.5.1. NotifyingFutures について リンクのコピーリンクがクリップボードにコピーされました!
Futures を返しませんが、NotifyingFuture と呼ばれるサブインターフェースを返します。JDK の Future とは異なり、終了した future についてユーザーに通知するため、リスナーを NotifyingFuture にアタッチすることが可能です。
注記
NotifyingFutures はライブラリモードでのみ使用可能です。
15.5.2. NotifyingFutures の例 リンクのコピーリンクがクリップボードにコピーされました!
NotifyingFutures を使用する方法を示しています。
第16章 アクティベーションモードとパッシベーションモード リンクのコピーリンクがクリップボードにコピーされました!
16.1. アクティベーションモードについて リンクのコピーリンクがクリップボードにコピーされました!
16.2. パッシベーションモードについて リンクのコピーリンクがクリップボードにコピーされました!
16.3. パッシベーションモードの利点 リンクのコピーリンクがクリップボードにコピーされました!
16.4. パッシベーションフラグについて リンクのコピーリンクがクリップボードにコピーされました!
16.5. エビクションとパッシベーション リンクのコピーリンクがクリップボードにコピーされました!
16.5.1. エビクションとパッシベーションについて リンクのコピーリンクがクリップボードにコピーされました!
16.5.2. エビクションとパッシベーションの用途 リンクのコピーリンクがクリップボードにコピーされました!
- パッシベートされたエントリーに関する通知がキャッシュリスナーへ送信されます。
- エビクトされたエントリーが保存されます。
16.5.3. パッシベーションが無効な場合のエビクションの例 リンクのコピーリンクがクリップボードにコピーされました!
| 手順 | メモリー内のキー | ディスク上のキー |
|---|---|---|
keyOne の挿入 | メモリー: keyOne | ディスク: keyOne |
keyTwo の挿入 | メモリー: keyOne、 keyTwo | ディスク: keyOne、 keyTwo |
エビクションスレッドが実行され、keyOne をエビクトする | メモリー: keyTwo | ディスク: keyOne、 keyTwo |
keyOne の読み取り | メモリー: keyOne、 keyTwo | ディスク: keyOne、 keyTwo |
エビクションスレッドが実行され、keyTwo をエビクトする | メモリー: keyOne | ディスク: keyOne、 keyTwo |
keyTwo の削除 | メモリー: keyOne | ディスク: keyOne |
16.5.4. パッシベーションが有効な場合のエビクションの例 リンクのコピーリンクがクリップボードにコピーされました!
| 手順 | メモリー内のキー | ディスク上のキー |
|---|---|---|
keyOne の挿入 | メモリー: keyOne | ディスク: |
keyTwo の挿入 | メモリー: keyOne、 keyTwo | ディスク: |
エビクションスレッドが実行され、keyOne をエビクトする | メモリー: keyTwo | ディスク: keyOne |
keyOne の読み取り | メモリー: keyOne、 keyTwo | ディスク: |
エビクションスレッドが実行され、keyTwo をエビクトする | メモリー: keyOne | ディスク: keyTwo |
keyTwo の削除 | メモリー: keyOne | ディスク: |
第17章 カスタムインターセプター リンクのコピーリンクがクリップボードにコピーされました!
17.1. カスタムインターセプターについて リンクのコピーリンクがクリップボードにコピーされました!
17.2. カスタムインターセプター設計 リンクのコピーリンクがクリップボードにコピーされました!
- カスタムインターセプターは
CommandInterceptorを拡張しなければなりません。 - カスタムインターセプターはインスタンス化を可能にするために、パブリックの空のコンストラクターを宣言しなければなりません。
- カスタムインターセプターでは、
property要素を介して定義されたプロパティーに対して JavaBean スタイルセッターを定義する必要があります。
17.3. カスタムインターセプターの追加 リンクのコピーリンクがクリップボードにコピーされました!
17.3.1. カスタムインターセプターを宣言して追加 リンクのコピーリンクがクリップボードにコピーされました!
注記
17.3.2. カスタムインターセプターをプログラミングにより追加 リンクのコピーリンクがクリップボードにコピーされました!
AdvancedCache への参照を取得します。
addInterceptor() メソッドを使用してインターセプターを追加します。
advCache.addInterceptor(new MyInterceptor(), 0);
advCache.addInterceptor(new MyInterceptor(), 0);
第18章 トランザクション リンクのコピーリンクがクリップボードにコピーされました!
18.1. Java トランザクション API のトランザクションについて リンクのコピーリンクがクリップボードにコピーされました!
- 最初に、現在スレッドに関連付けされているトランザクションを読み出します。
XAResourceが登録されていない場合は、XAResourceをトランザクションマネージャーに登録し、トランザクションがコミットされたりロールバックされた時に通知を受け取るようにします。
重要
ExceptionTimeout のエラーが発生し、Unable to acquire lock after {time} on key {key} for requester {thread} という警告が表示された場合は、トランザクションを有効にします。これは、非トランザクションキャッシュが書き込む各ノードに対するロックを取得するため、起こります。トランザクションを使用すると、キャッシュが単一ノードに対するロックを取得するため、デッドロックが回避されます。
18.2. 複数のキャッシュインスタンスにわたるトランザクション リンクのコピーリンクがクリップボードにコピーされました!
18.3. トランザクション / バッチ処理および無効化メッセージ リンクのコピーリンクがクリップボードにコピーされました!
18.4. トランザクションマネージャー リンクのコピーリンクがクリップボードにコピーされました!
18.4.1. JTA トランザクションマネージャーのルックアップクラスについて リンクのコピーリンクがクリップボードにコピーされました!
TransactionManagerLookup インターフェースの実装に属するクラス名を用いて、キャッシュを設定します。キャッシュが初期化されると、指定クラスのインスタンスが作成されます。そして getTransactionManager() メソッドを呼び出してトランザクションマネージャーへの参照を見つけ、返します。
DummyTransactionManagerLookupはテスト目的でトランザクションマネージャーを提供します。このテスト向けのトランザクションマネージャーは実稼働環境では使用されず、特に並列トランザクションやリカバリーなどの機能は厳しく制限されます。JBossStandaloneJTAManagerLookupは、JBoss Data Grid がスタンドアロン環境を実行する場合のデフォルトのトランザクションマネージャーです。これにより、JBoss Transactions ベースの完全に機能するトランザクションマネージャーで、DummyTransactionManagerLookupの機能制限が解消されます。GenericTransactionManagaerLookupは、ほとんどの Java EE アプリケーションサーバーでトランザクションマネージャーを見つけるために使用されるルックアップクラスです。デフォルトはDummyTransactionManagerLookupです。JBossTransactionManagerLookupは、JBoss Application Server インスタンス内でトランザクションマネージャーを見つけるルックアップクラスです。
注記
18.4.2. トランザクションマネージャーの使用 リンクのコピーリンクがクリップボードにコピーされました!
18.4.2.1. キャッシュからのトランザクションマネージャーの取得 リンクのコピーリンクがクリップボードにコピーされました!
手順18.1 キャッシュからのトランザクションマネージャーの取得
BasicCacheContainerの設定場所プロパティーに次のプロパティーを追加して、transactionManagerLookupClassを定義します。Configuration config = new ConfigurationBuilder() ... .transaction().transactionManagerLookup(new GenericTransactionManagerLookup())
Configuration config = new ConfigurationBuilder() ... .transaction().transactionManagerLookup(new GenericTransactionManagerLookup())Copy to Clipboard Copied! Toggle word wrap Toggle overflow TransactionManagerLookup.getTransactionManagerを次のように呼び出します。TransactionManager tm = cache.getAdvancedCache().getTransactionManager();
TransactionManager tm = cache.getAdvancedCache().getTransactionManager();Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.4.2.2. トランザクションの設定 リンクのコピーリンクがクリップボードにコピーされました!
mode属性はキャッシュトランザクションモードを設定します。この属性の有効な値はNONE(デフォルト)、NON_XA、NON_DURABLE_XA、FULL_XAです。stop-timeout属性は、キャッシュが停止した時に JBoss Data Grid が継続するリモートおよびローカルトランザクションを待機する期間 (ミリ秒数) を示します。locking属性はキャッシュに対して使用されるロックモードを指定します。この属性に有効な値はOPTIMISTIC(デフォルト) とPESSIMISTICです。
18.4.2.3. トランザクションマネージャーと XAResources リンクのコピーリンクがクリップボードにコピーされました!
XAResource 実装への参照を提供し、XAResource.recover を実行する必要があります。
18.4.2.4. XAResource の参照の取得 リンクのコピーリンクがクリップボードにコピーされました!
XAResource への参照を取得するには、次の API を使用します。
XAResource xar = cache.getAdvancedCache().getXAResource();
XAResource xar = cache.getAdvancedCache().getXAResource();
18.4.2.5. デフォルトの分散トランザクションの挙動 リンクのコピーリンクがクリップボードにコピーされました!
XAResource より分散トランザクションで JBoss Data Grid を最初のクラス参加者として登録するのがデフォルトの挙動になります。JBoss Data Grid がトランザクションの参加者になる必要がない場合、同期化を介してトランザクションのライフサイクル状態 (準備、完了など) に関して通知することができます。
18.5. トランザクションの同期化 リンクのコピーリンクがクリップボードにコピーされました!
18.5.1. トランザクション (JTA) 同期化について リンクのコピーリンクがクリップボードにコピーされました!
XAResource として登録しなくても、JBoss Data Grid がトランザクションイベントへ応答できるようになります。その結果、トランザクションマネージャーがトランザクション操作を最適化し、2 相コミット (2PC) アルゴリズムではなく、1 相コミット (1PC) アルゴリズムが必要となります。
18.5.2. 同期化を有効にする リンクのコピーリンクがクリップボードにコピーされました!
NONE(同期)NO_XA(同期)
注記
18.6. ステートの調整 リンクのコピーリンクがクリップボードにコピーされました!
18.6.1. ステートの調整について リンクのコピーリンクがクリップボードにコピーされました!
18.6.2. トランザクションリカバリーについて リンクのコピーリンクがクリップボードにコピーされました!
18.6.3. トランザクションリカバリーを有効にする リンクのコピーリンクがクリップボードにコピーされました!
次のように XML 設定を使用し、トランザクションリカバリーを有効にします。
<transaction useEagerLocking="true" eagerLockSingleNode="true">
<recovery enabled="true" recoveryInfoCacheName="noRecovery"/>
</transaction>
<transaction useEagerLocking="true" eagerLockSingleNode="true">
<recovery enabled="true" recoveryInfoCacheName="noRecovery"/>
</transaction>
recoveryInfoCacheName 属性は任意です。
次のように Fluent Configuration API を介してトランザクションリカバリーを有効にすることもできます。
手順18.2 プログラミングによるトランザクションリカバリーの設定
- JBoss Data Grid のトランザクションリカバリーを有効にするには
.recoveryを呼び出します。configuration.fluent().transaction().recovery();
configuration.fluent().transaction().recovery();Copy to Clipboard Copied! Toggle word wrap Toggle overflow - トランザクションリカバリーの状態を確認するには、次のプログラミング設定を使用します。
boolean isRecoveryEnabled = configuration.isTransactionRecoveryEnabled();
boolean isRecoveryEnabled = configuration.isTransactionRecoveryEnabled();Copy to Clipboard Copied! Toggle word wrap Toggle overflow - JBoss Data Grid のトランザクションリカバリーを無効にするには、次のプログラミング設定を使用します。
configuration.fluent().transaction().recovery().disable();
configuration.fluent().transaction().recovery().disable();Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.6.4. トランザクションリカバリーのプロセス リンクのコピーリンクがクリップボードにコピーされました!
手順18.3 トランザクションリカバリーのプロセス
- トランザクションマネージャーは介入が必要なトランザクションの一覧を作成します。
- 電子メールまたはログを使用して、JMX を使用して JBoss Data Grid に接続するシステム管理者へトランザクション (トランザクション ID を含む) の一覧を提供します。各トランザクションの状態は
COMMITTEDかPREPAREDになります。COMMITTEDとPREPAREDの両方の状態であるトランザクションがある場合、ノード上で準備状態である間にトランザクションが他のノードでコミットされたことを意味します。 - システム管理者は、トランザクションマネージャーより受信した XID を JBoss Data Grid の内部 ID へ視覚的にマッピングします。XID (バイトアレイ) を JMX ツールに渡し、このマッピングがない状態で JBoss Data Grid によって再アセンブルすることはできないため、この手順が必要となります。
- マッピングされた内部 ID を基に、システム管理者はトランザクションに対してコミットまたはロールバックプロセスを強制します。
18.6.5. トランザクションリカバリーの例 リンクのコピーリンクがクリップボードにコピーされました!
例18.1 データベースに格納された口座から JBoss Data Grid 内の口座への送金
- 送信元 (データベース) と送信先 (JBoss Data Grid) リソース間の 2 フェーズコミットプロトコルを実行するために、
TransactionManager.commit()メソッドが呼び出されます。 TransactionManagerが、準備フェーズ (2 フェーズコミットの最初のフェーズ) を開始するようデータベースと JBoss Data Grid に指示します。
18.6.6. トランザクションメモリーおよび JMX サポート リンクのコピーリンクがクリップボードにコピーされました!
18.6.7. 強制コミットおよびロールバック操作 リンクのコピーリンクがクリップボードにコピーされました!
18.6.8. トランザクションおよび例外 リンクのコピーリンクがクリップボードにコピーされました!
CacheException (または、CacheException のサブクラス) を返すと、トランザクションはロールバックするよう自動的にマークされます。
18.7. デッドロックの検出 リンクのコピーリンクがクリップボードにコピーされました!
18.7.1. デッドロックの検出について リンクのコピーリンクがクリップボードにコピーされました!
disabled に設定されます。
18.7.2. デッドロック検出を有効にする リンクのコピーリンクがクリップボードにコピーされました!
disabled に設定されていますが、以下を追加して namedCache 設定要素を使用すると、デッドロック検出を有効にし、各キャッシュに対して設定を行うことが可能です。
<deadlockDetection enabled="true" spinDuration="1000"/>
<deadlockDetection enabled="true" spinDuration="1000"/>
注記
第19章 マーシャリング リンクのコピーリンクがクリップボードにコピーされました!
19.1. マーシャリングについて リンクのコピーリンクがクリップボードにコピーされました!
19.2. マーシャリングの利点 リンクのコピーリンクがクリップボードにコピーされました!
- クラスター内の他の JBoss Data Grid ノードへ送信するため、データを変換します。
- 基礎のキャッシュストアに格納するためデータを変換します。
19.3. マーシャリングフレームワークについて リンクのコピーリンクがクリップボードにコピーされました!
java.io.ObjectOutputStream および java.io.ObjectInputStream よりも高パフォーマンスな java.io.ObjectOutput および java.io.ObjectInput 実装を使用します。
19.4. シリアライズ不可能なオブジェクトのサポート リンクのコピーリンクがクリップボードにコピーされました!
Serializable または Externalizable サポートをクラスに導入できない場合、一例として XStream を使用してシリアライズ不可能なオブジェクトを JBoss Data Grid に格納できる文字列に変換し、対応することもできます。
注記
19.5. トラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
19.5.1. マーシャリングのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
java.lang.Object@b40ec4 はシリアライズ可能でないため、org.infinispan.commands.write.PutKeyValueCommand インスタンス内の java.lang.Object インスタンスはシリアライズできないことを示しています。
DEBUG または TRACE ロギングレベルが有効である場合、スタックトレースにあるオブジェクトの toString() 表現がマーシャリング例外に含まれます。このような状況を表す例は次の通りです。
org.infinispan.marshall.VersionAwareMarshallerTest$1 のインスタンスがアンマーシャリングされた時に IOException がスローされます。
DEBUG または TRACE ロギングレベルが有効な場合、マーシャリング例外と似た方法で、クラスタイプのクラスローダー情報が提供されます。このクラスローダー情報の例は次の通りです。
19.5.2. ステートレシーバーの EOFExceptions リンクのコピーリンクがクリップボードにコピーされました!
EOFException をログに表示します。
第20章 JGroups インターフェース リンクのコピーリンクがクリップボードにコピーされました!
20.1. JGroups インターフェースについて リンクのコピーリンクがクリップボードにコピーされました!
20.2. JGroups インターフェースの設定 リンクのコピーリンクがクリップボードにコピーされました!
bind_addr プロパティーをキーワードに設定します。ドット付き 10 進法または記号の IP アドレスは用いません。
<socket-binding name="jgroups-udp" ... interface="site-local"/>
<socket-binding name="jgroups-udp" ... interface="site-local"/>
link-local:169.x.x.xまたは254.x.x.xアドレスを使用します。1 つのボックス内のトラフィックに適しています。site-local:192.168.x.xのようなプライベート IP アドレスを使用します。これにより、GoGrid や同様のプロバイダーより課金される追加の帯域幅が発生しないようにします。global: パブリック IP アドレスを選択します。レプリケーショントラフィックへ使用しないようにしてください。non-loopback:127.x.x.x以外のアドレスで、アクティブなインターフェースで最初に見つかったアドレスを使用します。
20.3. ソケットのバインディグについて リンクのコピーリンクがクリップボードにコピーされました!
20.3.1. グループおよび個別のソケットバインディングについて リンクのコピーリンクがクリップボードにコピーされました!
20.3.2. 単一のソケットをバインドする例 リンクのコピーリンクがクリップボードにコピーされました!
socket-binding 要素を用いて個別のソケットをバインドする例を表しています。
<socket-binding name="jgroups-udp" ... interface="site-local"/>
<socket-binding name="jgroups-udp" ... interface="site-local"/>
20.3.3. ソケットのグループをバインドする例 リンクのコピーリンクがクリップボードにコピーされました!
socket-binding-group 要素を用いてグループをバインドする例を表しています。
<socket-binding-group name="ha-sockets" default-interface="global"> ... </socket-binding-group>
<socket-binding-group name="ha-sockets" default-interface="global"> ... </socket-binding-group>
20.4. クラスターモードの JGroups リンクのコピーリンクがクリップボードにコピーされました!
20.4.1. クラスタモードにおける JGroups の設定 リンクのコピーリンクがクリップボードにコピーされました!
jgroups.xml を探します。
20.4.2. 事前設定された JGroups ファイル リンクのコピーリンクがクリップボードにコピーされました!
20.4.2.1. 事前設定された JGroups ファイルの使用 リンクのコピーリンクがクリップボードにコピーされました!
infinispan-core.jar にパッケージ化され、デフォルトでクラスパス上にて使用可能です。これらのいずれかのファイルを使用するには、jgroups.xml を使用する代わりに使用するファイルの名前を指定します。
jgroups-udp.xmljgroups-tcp.xml
20.4.2.2. jgroups-udp.xml リンクのコピーリンクがクリップボードにコピーされました!
jgroups-udp.xml は JBoss Data Grid の事前設定された JGroups ファイルです。
jgroups-udp.xml設定は UDP をトランスポートとして使用し、UDP マルチキャストをディスカバリーに使用します。jgroups-udp.xml設定は大型のクラスター (101 以上のノード) に適しています。jgroups-udp.xml設定は、無効化またはレプリケーションモードを使用する場合に適しています。- ソケットの非効率な使用を最小限にします。
| システムプロパティー | 説明 | デフォルト | 必要性 |
|---|---|---|---|
| jgroups.udp.mcast_addr | マルチキャスト (通信とディスカバリーの両方) に使用する IP アドレス。IP マルチキャストに適した有効なクラス D IPアドレスでなければなりません。 | 228.6.7.8 | 不要 |
| jgroups.udp.mcast_port | マルチキャストに使用するポート | 46655 | 不要 |
| jgroups.udp.ip_ttl | IP マルチキャストパケットの TTL (有効期間) を指定します。この値は、パケットがドロップされる前に許可されるネットワークホップの数になります。 | 2 | 不要 |
20.4.2.3. jgroups-tcp.xml リンクのコピーリンクがクリップボードにコピーされました!
jgroups-tcp.xml は JBoss Data Grid の事前設定された JGroups ファイルです。
jgroups-tcp.xml設定は TCP をトランスポートとして使用し、UDP マルチキャストをディスカバリーに使用します。jgroups-tcp.xml設定は、ディストリビューションモードを使用している場合のみ、小型のクラスター (100 ノード未満) への使用に適しています。これは、TCP はポイントツーポイントプロトコルとしての方が効率が良いからです。
| システムプロパティー | 説明 | デフォルト | 必要性 |
|---|---|---|---|
| jgroups.tcp.address | TCP トランスポートに使用する IP アドレス。 | 127.0.0.1 | 不要 |
| jgroups.tcp.port | TCP ソケットに使用するポート | 7800 | 不要 |
| jgroups.udp.mcast_addr | マルチキャスト (ディスカバリーのため) に使用する IP アドレス。IP マルチキャストに適した有効なクラス D IPアドレスでなければなりません。 | 228.6.7.8 | 不要 |
| jgroups.udp.mcast_port | マルチキャストに使用するポート | 46655 | 不要 |
| jgroups.udp.ip_ttl | IP マルチキャストパケットの TTL (有効期間) を指定します。この値は、パケットがドロップされる前に許可されるネットワークホップの数になります。 | 2 | 不要 |
第21章 JBoss Data Grid の管理ツール リンクのコピーリンクがクリップボードにコピーされました!
21.1. JMX (Java Management Extensions) リンクのコピーリンクがクリップボードにコピーされました!
21.1.1. Java Management Extensions (JMX) について リンクのコピーリンクがクリップボードにコピーされました!
MBeans によって管理および監視されます。
21.1.2. JBoss Data Grid における JMX の使用 リンクのコピーリンクがクリップボードにコピーされました!
21.1.3. JMX 統計レベル リンクのコピーリンクがクリップボードにコピーされました!
- 個別のキャッシュインスタンスによって管理情報が生成されるキャッシュレベル。
CacheManagerレベル。このレベルでは、CacheManagerエンティティーがCacheManagerより作成されたすべてのキャッシュインスタンスを管理します。そのため、管理情報は個別のキャッシュではなく、これらすべてのキャッシュインスタンスに対して生成されます。
21.1.4. キャッシュインスタンスに対して JMX を有効にする リンクのコピーリンクがクリップボードにコピーされました!
デフォルトキャッシュインスタンスに対する <default> 要素内または特定の名前付きキャッシュに対するターゲット <namedCache> 要素下に、次のスニペットを追加します。
<jmxStatistics enabled="true"/>
<jmxStatistics enabled="true"/>
プログラムを用いて JMX をキャッシュレベルで有効にするには、以下のコードを追加します。
Configuration configuration = ... configuration.setExposeJmxStatistics(true);
Configuration configuration = ...
configuration.setExposeJmxStatistics(true);
21.1.5. CacheManagers に対して JMX を有効にする リンクのコピーリンクがクリップボードにコピーされました!
CacheManager レベルでは、次のように宣言的またはプログラムを用いて JMX 統計を有効にすることができます。
次の <global> 要素を追加して、CacheManager レベルで JMX を宣言的に有効にします。
<globalJmxStatistics enabled="true"/>
<globalJmxStatistics enabled="true"/>
次のコードを追加して、プログラムを用いて JMX を CacheManager で有効にします。
GlobalConfiguration globalConfiguration = ... globalConfiguration.setExposeGlobalJmxStatistics(true);
GlobalConfiguration globalConfiguration = ...
globalConfiguration.setExposeGlobalJmxStatistics(true);
21.1.6. 複数の JMX ドメイン リンクのコピーリンクがクリップボードにコピーされました!
CacheManager インスタンスが 1 つの仮想マシンに存在したり、キャッシュインスタンスの名前が CacheManager クラスと異なる場合に、JMX ドメインが複数使用されます。
CacheManager に付けるようにします。
次のスニペットを関係する CacheManager 設定に追加します。
<globalJmxStatistics enabled="true" cacheManagerName="Hibernate2LC"/>
<globalJmxStatistics enabled="true" cacheManagerName="Hibernate2LC"/>
次のコードを追加し、プログラムを用いて CacheManager の名前を設定します。
GlobalConfiguration globalConfiguration = ...
globalConfiguration.setExposeGlobalJmxStatistics(true);
globalConfiguration.setCacheManagerName("Hibernate2LC");
GlobalConfiguration globalConfiguration = ...
globalConfiguration.setExposeGlobalJmxStatistics(true);
globalConfiguration.setCacheManagerName("Hibernate2LC");
21.1.7. MBean について リンクのコピーリンクがクリップボードにコピーされました!
MBean は、サービス、コンポーネント、デバイス、またはアプリケーションなどの管理可能なリソースを表します。
MBeans を提供します。例えば、トランスポート層で統計を提供する MBeans などが提供されます。JBoss Data Grid サーバーは、JMX 統計で設定されます。JMX 統計はホスト名、ポート、読み取りバイト、書き込みバイト、およびワーカースレッドの数を提供する MBean で、次の場所に存在します。
jboss.infinispan:type=Server,name=<Memcached|Hotrod>,component=Transport
jboss.infinispan:type=Server,name=<Memcached|Hotrod>,component=Transport
21.1.8. MBean を理解する リンクのコピーリンクがクリップボードにコピーされました!
MBean を使用できます。
- キャッシュマネージャーレベルの JMX 統計が有効になっている場合、
jboss.infinispan:type=CacheManager,name="DefaultCacheManager"という名前のMBeanが存在し、キャッシュマネージャーMBeanによってプロパティーが指定されます。 - キャッシュレベルの JMX 統計が有効になっている場合、使用される設定に応じて複数の
MBeanが表示されます。例えば、ライトビハインドキャッシュストアが設定されている場合、キャッシュストアコンポーネントに属するプロパティーを公開するMBeanが表示されます。すべてのキャッシュレベルMBeansは同じ形式を使用します。jboss.infinispan:type=Cache,name="<name-of-cache>(<cache-mode>)",manager="<name-of-cache-manager>",component=<component-name>
jboss.infinispan:type=Cache,name="<name-of-cache>(<cache-mode>)",manager="<name-of-cache-manager>",component=<component-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow この形式の詳細は次の通りです。cache-container要素のdefault-cache属性を使用してキャッシュのデフォルト名を指定します。cache-modeはキャッシュのキャッシュモードに置き換えられます。可能な列挙値を小文字にしたものがキャッシュモードを表します。component-nameは、 JMX 参考ドキュメントにある JMX コンポーネント名の 1 つに置き換えられます。
MBean は次のように命名されます。
jboss.infinispan:type=Cache,name="default(dist_sync)", manager="default",component=CacheStore
jboss.infinispan:type=Cache,name="default(dist_sync)", manager="default",component=CacheStore
21.1.9. デフォルトでない MBean サーバーでの MBean の登録 リンクのコピーリンクがクリップボードにコピーされました!
getMBeanServer() メソッドが希望の (デフォルト以外の) MBeanServer を返すようにします。
次のスニペットを追加します。
<globalJmxStatistics enabled="true" mBeanServerLookup="com.acme.MyMBeanServerLookup"/>
<globalJmxStatistics enabled="true" mBeanServerLookup="com.acme.MyMBeanServerLookup"/>
次のコードを追加します。
GlobalConfiguration globalConfiguration = ...
globalConfiguration.setExposeGlobalJmxStatistics(true);
globalConfiguration.setMBeanServerLookup("com.acme.MyMBeanServerLookup")
GlobalConfiguration globalConfiguration = ...
globalConfiguration.setExposeGlobalJmxStatistics(true);
globalConfiguration.setMBeanServerLookup("com.acme.MyMBeanServerLookup")
21.2. JON (JBoss Operations Network) リンクのコピーリンクがクリップボードにコピーされました!
21.2.1. JBoss Operations Network (JON) について リンクのコピーリンクがクリップボードにコピーされました!
21.2.2. JBoss Operations Network (JON) および JMX リンクのコピーリンクがクリップボードにコピーされました!
21.2.3. JBoss Operations Network (JON) の設定 リンクのコピーリンクがクリップボードにコピーされました!
手順21.1 JBoss Operations Network の設定
- JBoss Operations Network をダウンロードしてインストールし、1 つ以上の JBoss Operations Network エージェントを初期化します。JBoss Operations Network エージェントは、JBoss Data Grid インスタンスに関する情報をサーバーへ送信する役割があります。サーバーは受信した情報を GUI を使用して表示します。JBoss Data Grid を実行するマシンに JBoss Operations Network エージェントをインストールすることが推奨設定となります。複数のマシンが使用できる場合、エージェントは各マシン上に存在することができます。
- 最新の JBoss Data Grid のバージョンをダウンロードします。
modules/rhq-pluginディレクトリで JBoss Operations Network のプラグイン jar ファイル (infinispan-rhq-plugin.jar) を見つけます。 - これで、JBoss Operations Network が JBoss Data Grid インスタンスを監視できるようにします。
- JBoss Operations Network は各 JBoss Data Grid インスタンスを見つけた後、各キャッシュマネージャーに対して新しいリソースを JBoss Operations Network サーバーのインベントリー / ディスカバリーキューに表示します。
- 表示されたリソースをインポートします。キャッシュマネージャーはキャッシュマネージャーで実行されているキャッシュの数だけ、子キャッシュリソースを表示します。
JBoss Operations Network を使用して JBoss Data Grid を監視できるようになります。
21.2.4. JBoss Operations Network のプラグインクイックスタート リンクのコピーリンクがクリップボードにコピーされました!
21.2.5. リモート JMX ポートの値 リンクのコピーリンクがクリップボードにコピーされました!
付録A 参照 リンクのコピーリンクがクリップボードにコピーされました!
A.1. Apache Lucene Index について リンクのコピーリンクがクリップボードにコピーされました!
A.2. 一貫性について リンクのコピーリンクがクリップボードにコピーされました!
A.3. 一貫性保証について リンクのコピーリンクがクリップボードにコピーされました!
- キー
Kはノード{A,B}へハッシュ化されます。トランザクションTX1は、例えばノードA上のKロックを取得します。 - 他のキャッシュへのアクセスが、ノード
Bまたは他のノードで発生すると、TX2がKをロックしようとしますが、トランザクションTX1が既にKのロックを保持しているため、タイムアウトが発生しロックの取得に失敗します。
K のロックはトランザクションの発生元に関係なく、常にクラスターの同じノード上で取得されるため、このロックの取得は常に失敗します。
A.4. Java Management Extensions (JMX) について リンクのコピーリンクがクリップボードにコピーされました!
MBeans によって管理および監視されます。
A.5. JBoss Cache について リンクのコピーリンクがクリップボードにコピーされました!
A.6. JSON について リンクのコピーリンクがクリップボードにコピーされました!
A.7. 戻り値について リンクのコピーリンクがクリップボードにコピーされました!
A.8. 実行可能インターフェースについて リンクのコピーリンクがクリップボードにコピーされました!
run() メソッドを宣言します。実行可能オブジェクトは、スレッドコンストラクターに渡された後、独自のスレッドでの実行が可能です。
A.9. 2 相コミット (2PC) について リンクのコピーリンクがクリップボードにコピーされました!
A.10. キーバリューペアについて リンクのコピーリンクがクリップボードにコピーされました!
- キーは特定のデータエントリーに一意であり、関連する特定エントリーのデータ属性によって構成されます。
- バリュー (値) は、キーによって割り当てられ、キーによって識別されるデータです。
A.11. エクスターナライザー リンクのコピーリンクがクリップボードにコピーされました!
A.11.1. エクスターナライザーについて リンクのコピーリンクがクリップボードにコピーされました!
Externalizer クラスは、以下のことを行えるクラスです。
- 該当するオブジェクトタイプをバイトアレイにマーシャリングします。
- バイトアレイの内容をオブジェクトタイプのインスタンスにマーシャリング解除します。
A.11.2. 内部エクスターナライザー実装アクセス リンクのコピーリンクがクリップボードにコピーされました!
A.12. ハッシュ領域の割り当て リンクのコピーリンクがクリップボードにコピーされました!
A.12.1. ハッシュ領域の割り当てについて リンクのコピーリンクがクリップボードにコピーされました!
A.12.2. ハッシュ領域におけるキーの検索 リンクのコピーリンクがクリップボードにコピーされました!
A.12.3. 完全なバイトアレイの要求 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、必要のない巨大なバイトアレイを出力しないように、JBoss Data Grid はバイトアレイの一部のみをログに出力します。以下の場合にバイトアレイがログに出力されます。
- JBoss Data Grid のキャッシュにレイジーデシリアライゼーションが設定されている場合。レイジーデシリアライゼーションは JBoss Data Grid のリモートクライアントサーバーモードでは使用できません。
MemcachedまたはHot Rodサーバーが実行されている場合。
-Dinfinispan.arrays.debug=true システムプロパティーを渡します。
例A.1 部分的なバイトアレイのログ
付録B 改訂履歴 リンクのコピーリンクがクリップボードにコピーされました!
| 改訂履歴 | |||
|---|---|---|---|
| 改訂 1.0.0-29 | Mon Feb 03 2014 | ||
| |||