第2章 Data Grid REST API との連携
Data Grid REST API は、Data Grid のデプロイメントを監視、維持、管理し、データへのアクセスを提供します。
2.1. キャッシュの作成と管理 リンクのコピーリンクがクリップボードにコピーされました!
Data Grid のキャッシュを作成・管理し、データに対する操作を行うことができます。
2.1.1. キャッシュの作成 リンクのコピーリンクがクリップボードにコピーされました!
XML または JSON 設定をペイロードに含む POST リクエストで、Data Grid クラスター全体に名前付きキャッシュを作成します。
POST /rest/v2/caches/{cacheName}
POST /rest/v2/caches/{cacheName}
| Header | 必須またはオプション | パラメーター |
|---|---|---|
|
| 必須 |
Data Grid 設定のペイロードの MediaType を設定します ( |
|
| オプション | AdminFlags を設定するために使用されます |
2.1.1.1. XML の設定 リンクのコピーリンクがクリップボードにコピーされました!
XML 形式の Data Grid 設定はスキーマに準拠し、以下を含める必要があります。
-
<infinispan>ルート要素。 -
<cache-container>定義。
XML 設定のサンプル
2.1.1.2. JSON 設定 リンクのコピーリンクがクリップボードにコピーされました!
JSON 形式の Data Grid 設定:
- キャッシュ定義のみが必要です。
XML 設定の構造に従う必要があります。
- XML 要素は JSON オブジェクトになります。
- XML 属性は JSON フィールドになります。
JSON 設定の例
2.1.2. キャッシュの検証 リンクのコピーリンクがクリップボードにコピーされました!
HEAD リクエストで Data Grid クラスターでキャッシュが利用可能かどうかを確認します。
HEAD /rest/v2/caches/{cacheName}
HEAD /rest/v2/caches/{cacheName}
2.1.3. テンプレートを使用したキャッシュの作成 リンクのコピーリンクがクリップボードにコピーされました!
POST リクエストと ?template= パラメーターを使用して、Data Grid テンプレートからキャッシュを作成します。
POST /rest/v2/caches/{cacheName}?template={templateName}
POST /rest/v2/caches/{cacheName}?template={templateName}
使用可能なキャッシュテンプレートをリスト表示する を参照してください。
2.1.4. キャッシュ設定の取得 リンクのコピーリンクがクリップボードにコピーされました!
GET リクエストで Data Grid のキャッシュ設定を取得します。
GET /rest/v2/caches/{name}?action=config
GET /rest/v2/caches/{name}?action=config
| Header | 必須またはオプション | パラメーター |
|---|---|---|
|
| オプション |
コンテンツを返すために必要な形式を設定します。対応フォーマットは、 |
2.1.5. キャッシュ設定を JSON に変換する リンクのコピーリンクがクリップボードにコピーされました!
有効な XML 設定と ?action=toJSON パラメーターを使用して POST 要求を呼び出します。Data Grid は、設定の同等の JSON 表現で応答します。
POST /rest/v2/caches?action=toJSON
POST /rest/v2/caches?action=toJSON
2.1.6. すべてのキャッシュの詳細を取得する リンクのコピーリンクがクリップボードにコピーされました!
GET リクエストを呼び出し、Data Grid キャッシュのすべての詳細を取得します。
GET /rest/v2/caches/{name}
GET /rest/v2/caches/{name}
Data Grid は、以下のような JSON レスポンスを提供します。
-
statsキャッシュの現在の状態を表示します。 -
sizeキャッシュの推定サイズ。 -
configurationキャッシュ設定。 -
rehash_in_progressリハッシュが進行中の場合は true。 -
indexing_in_progressインデックス作成中の場合は true。 -
bounded有効期限が有効になっている。 -
indexedキャッシュがインデックス化されている場合は true。 -
persistentキャッシュが永続化されている場合は true。 -
transactionalキャッシュがトランザクショナルである場合は true。 -
securedキャッシュが保護されている場合は true。 -
has_remote_backupキャッシュがリモートバックアップを持っている場合は true。
2.1.7. エントリーの追加 リンクのコピーリンクがクリップボードにコピーされました!
POST リクエストでキャッシュにエントリーを追加します。
POST /rest/v2/caches/{cacheName}/{cacheKey}
POST /rest/v2/caches/{cacheName}/{cacheKey}
前述の要求は cacheKey キーで cacheName を指定のキャッシュに、ペイロード、またはリクエストボディを配置します。リクエストは、既存のデータを置き換え、適用可能であれば、Time-To-Live と Last-Modified の値を更新します。
指定されたキーの値がすでに存在する場合、POST リクエストは HTTP CONFLICT ステータスを返し、値を変更しません。値を更新するには、PUT リクエストを使用する必要があります。エントリーの入れ替え をご覧ください。
| Header | 必須またはオプション | パラメーター |
|---|---|---|
|
| オプション | リクエストのキーのコンテンツタイプを設定します。詳細は、Key-Content-Type を参照してください。 |
|
| オプション | キーの値の MediaType を設定します。 |
|
| オプション | エントリーが自動的に削除されるまでの秒数を設定します。このパラメーターを設定しない場合、DataGrid は設定のデフォルト値を使用します。負の値を設定すると、エントリーが削除されることはありません。 |
|
| オプション | エントリーがアイドル状態になることができる秒数を設定します。最大アイドル時間が経過してもエントリーの読み取りまたは書き込み操作が発生しない場合、エントリーは自動的に削除されます。このパラメーターを設定しない場合、DataGrid は設定のデフォルト値を使用します。負の値を設定すると、エントリーが削除されることはありません。 |
|
| オプション | エントリーの追加に使用されるフラグ。詳細については、フラグ を参照してください。 |
flags ヘッダーは、キャッシュでのデータ操作を含む他のすべての操作にも適用されます。
timeToLiveSeconds と maxIdleTimeSeconds の両方の値が 0 の場合、Data Grid は設定のデフォルトの lifespan と maxIdle の値を使用します。
only maxIdleTimeSeconds のみ値が 0 の場合、Data Grid が使用します。
-
コンフィグレーションのデフォルトの
maxIdle値を使用します。 -
リクエストパラメーターとして渡した
timeToLiveSecondsの値、または値を渡さなかった場合は-1の値です。
timeToLiveSeconds の値だけが 0 の場合、Data Grid は
-
設定のデフォルトの
lifespan値を使用。 -
リクエストパラメーターとして渡された
maxIdleの値、または値を渡さない場合は-1の値を使用。
2.1.8. エントリーの置き換え リンクのコピーリンクがクリップボードにコピーされました!
キャッシュ内のエントリーを PUT リクエストに置き換えます。
PUT /rest/v2/caches/{cacheName}/{cacheKey}
PUT /rest/v2/caches/{cacheName}/{cacheKey}
指定されたキーの値がすでに存在する場合、 PUT 要求は値を更新します。既存の値を変更したくない場合は、値を変更する代わりに HTTP CONFLICT ステータスを返す POST リクエストを使用します。値の追加 を参照してください。
2.1.9. キーによるデータの取得 リンクのコピーリンクがクリップボードにコピーされました!
GET リクエストを使用して特定のキーのデータを取得します。
GET /rest/v2/caches/{cacheName}/{cacheKey}
GET /rest/v2/caches/{cacheName}/{cacheKey}
サーバーは、応答本文の指定されたキー cacheKey の下にある指定されたキャッシュ cacheName からデータを返します。応答には、MediaType ネゴシエーションに対応する Content-Type ヘッダーが含まれています。
ブラウザーは、たとえばコンテンツ配信ネットワーク (CDN) として、キャッシュに直接アクセスすることもできます。Data Grid は、各エントリーに固有のETagを、Last-Modified および Expires ヘッダーフィールドとともに返します。
これらのフィールドは、リクエストで返されるデータの状態に関する情報を提供します。ETag を使用すると、ブラウザーやその他のクライアントは、変更されたデータのみを要求できるため、帯域幅が節約されます。
| Header | 必須またはオプション | パラメーター |
|---|---|---|
|
| オプション |
リクエストのキーのコンテンツタイプを設定します。デフォルトは |
|
| オプション | コンテンツを返すために必要な形式を設定します。詳細については、 Accept を参照してください。 |
extended パラメーターをクエリー文字列に追加して、追加情報を取得します。
GET /rest/v2/caches/{cacheName}/{cacheKey}?extended
GET /rest/v2/caches/{cacheName}/{cacheKey}?extended
上記のリクエストはカスタムヘッダーを返します:
-
Cluster-Primary-Ownerは、キーのプライマリー所有者であるノード名を返します。 -
Cluster-Node-Nameは、要求を処理したサーバーの JGroups ノード名を返します。 -
Cluster-Physical-Addressは、要求を処理したサーバーの物理 JGroups アドレスを返します。
2.1.10. エントリーが存在するかどうかの確認 リンクのコピーリンクがクリップボードにコピーされました!
HEAD リクエストで特定のエントリーが存在することを確認します。
HEAD /rest/v2/caches/{cacheName}/{cacheKey}
HEAD /rest/v2/caches/{cacheName}/{cacheKey}
上記のリクエストは、ヘッダーフィールドと、エントリーとともに保存したものと同じコンテンツのみを返します。たとえば、文字列を保存した場合、リクエストは文字列を返します。バイナリー、base64 エンコード、blob、またはシリアル化された Java オブジェクトを保存した場合、DataGrid はリクエストのコンテンツを逆シリアル化しません。
HEAD リクエストは、extended パラメーターもサポートしています。
| Header | 必須またはオプション | パラメーター |
|---|---|---|
|
| オプション |
リクエストのキーのコンテンツタイプを設定します。デフォルトは |
2.1.11. エントリーの削除 リンクのコピーリンクがクリップボードにコピーされました!
DELETE リクエストを使用してキャッシュからエントリーを 削除 します。
DELETE /rest/v2/caches/{cacheName}/{cacheKey}
DELETE /rest/v2/caches/{cacheName}/{cacheKey}
| Header | 必須またはオプション | パラメーター |
|---|---|---|
|
| オプション |
リクエストのキーのコンテンツタイプを設定します。デフォルトは |
2.1.12. キャッシュの削除 リンクのコピーリンクがクリップボードにコピーされました!
DELETE リクエストを使用して Data Grid クラスターからキャッシュを DELETE 削除します。
DELETE /rest/v2/caches/{cacheName}
DELETE /rest/v2/caches/{cacheName}
2.1.13. キャッシュからのすべてのキーの取得 リンクのコピーリンクがクリップボードにコピーされました!
GET リクエストを呼び出して、キャッシュ内のすべてのキーを JSON 形式で取得します。
GET /rest/v2/caches/{cacheName}?action=keys
GET /rest/v2/caches/{cacheName}?action=keys
| パラメーター | 必須またはオプション | 値 |
|---|---|---|
|
| オプション |
キーを取得するときの内部バッチサイズを指定します。デフォルト値は |
2.1.14. キャッシュのクリア リンクのコピーリンクがクリップボードにコピーされました!
キャッシュからすべてのデータを削除するには、POST リクエストに ?action=clear パラメーターを付けて実行します。
POST /rest/v2/caches/{cacheName}?action=clear
POST /rest/v2/caches/{cacheName}?action=clear
2.1.15. キャッシュサイズの取得 リンクのコピーリンクがクリップボードにコピーされました!
GET リクエストと ?action=size パラメーターを使用して、クラスター全体のキャッシュのサイズを取得します。
GET /rest/v2/caches/{cacheName}?action=size
GET /rest/v2/caches/{cacheName}?action=size
2.1.16. キャッシュ統計の取得 リンクのコピーリンクがクリップボードにコピーされました!
GET リクエストを使用してキャッシュの実行時統計を取得します。
GET /rest/v2/caches/{cacheName}?action=stats
GET /rest/v2/caches/{cacheName}?action=stats
2.1.17. キャッシュのクエリー リンクのコピーリンクがクリップボードにコピーされました!
GET リクエストと ?action=search&query パラメーターを使用して、キャッシュに対して Ickle クエリーを実行します。
GET /rest/v2/caches/{cacheName}?action=search&query={ickle query}
GET /rest/v2/caches/{cacheName}?action=search&query={ickle query}
Data Grid は、次のようなクエリーヒットで応答します。
-
total_resultsは、クエリーの結果の合計数を表示します。 -
hitsは、クエリーからのマッチの配列です。 hitは、クエリーにマッチするオブジェクトです。ヒントヒットにはすべてのフィールドを含めることができますが、
Select句を使用するとフィールドのサブセットを含めることができます。
| パラメーター | 必須またはオプション | 値 |
|---|---|---|
|
| 必須 | クエリー文字列を指定します。 |
|
| オプション |
返す結果の数を設定します。デフォルトは |
|
| オプション |
返される最初の結果のインデックスを指定します。デフォルトは |
|
| オプション |
Data Grid サーバーがクエリーを実行する方法を指定します。値は |
クエリーパラメーターを指定せずにリクエストの本文を使用するには、以下のように POST リクエストを呼び出します。
POST /rest/v2/caches/{cacheName}?action=search
POST /rest/v2/caches/{cacheName}?action=search
次の例は、リクエスト本文のクエリーを示しています。
{
"query":"from Entity where name:\"user1\"",
"max_results":20,
"offset":10
}
{
"query":"from Entity where name:\"user1\"",
"max_results":20,
"offset":10
}
2.1.18. データのインデックスの再作成 リンクのコピーリンクがクリップボードにコピーされました!
POST リクエストと ?action=mass-index&mode={mode} パラメーターを使用して、キャッシュ内のすべてのデータのインデックスを再作成します。
POST /v2/caches/{cacheName}/search/indexes?action=mass-index&mode={mode}
POST /v2/caches/{cacheName}/search/indexes?action=mass-index&mode={mode}
mode パラメーターの値は以下の通りです。
-
syncは、インデックス変更操作が完了した後にのみ200の応答を返します。 -
asyncは200の応答を即座に返し、再インデックス化操作はクラスター内で実行を継続します。Index StatisticsREST コールで状態を確認できます。
2.1.19. インデックスのパージ リンクのコピーリンクがクリップボードにコピーされました!
POST リクエストと ?action=clear パラメーターを使用して、キャッシュからすべてのインデックスを削除します。
POST /v2/caches/{cacheName}/search/indexes?action=clear
POST /v2/caches/{cacheName}/search/indexes?action=clear
2.1.20. インデックス統計情報の取得 リンクのコピーリンクがクリップボードにコピーされました!
GET リクエストでキャッシュ内のインデックスの情報を取得します。
GET /v2/caches/{cacheName}/search/indexes/stats
GET /v2/caches/{cacheName}/search/indexes/stats
Data Grid は、以下のような JSON レスポンスを提供します。
-
indexed_class_namesキャッシュに存在するインデックスのクラス名を提供します。Protobuf の場合、値は常にorg.infinispan.query.remote.impl.indexing.ProtobufValueWrapperです。 -
indexed_entities_countクラスごとにインデックスされているエンティティーの数を提供します。 -
index_sizesキャッシュ内の各インデックスのサイズをバイト単位で指定します。 -
reindexingキャッシュに対してインデックス変更操作が行われたかどうかを示す。この値がtrueの場合、MassIndexerはキャッシュで起動したことになります。
2.1.21. クエリー統計情報の取得 リンクのコピーリンクがクリップボードにコピーされました!
GET リクエストでキャッシュに実行されたクエリーの情報を取得します。
GET /v2/caches/{cacheName}/search/query/stats
GET /v2/caches/{cacheName}/search/query/stats
Data Grid は、以下のような JSON レスポンスを提供します。
-
search_query_execution_count実行されたクエリーの数を提供します。 -
search_query_total_timeクエリーに費やされた総時間を提供します。 -
search_query_execution_max_timeクエリーにかかる最大時間を指定します。 -
search_query_execution_avg_timeクエリーの平均実行時間を提供します。 -
object_loading_total_timeクエリー実行後にキャッシュからオブジェクトをロードするのにかかった時間の合計を提供します。 -
object_loading_execution_max_timeオブジェクトのロード実行にかかる最大時間を提供します。 -
object_loading_execution_avg_timeオブジェクトのロード実行にかかる最大時間を提供します。 -
objects_loaded_countロードされたオブジェクトの数を提供します。 -
search_query_execution_max_time_query_string実行された最も遅いクエリーを提供します。
2.1.22. クエリー統計のクリア リンクのコピーリンクがクリップボードにコピーされました!
POST リクエストと ?action=clear パラメーターを使用して、ランタイムの統計情報をリセットすることができます。
POST /v2/caches/{cacheName}/search/query/stats?action=clear
POST /v2/caches/{cacheName}/search/query/stats?action=clear
2.1.23. キャッシュのリスト表示 リンクのコピーリンクがクリップボードにコピーされました!
GET リクエストを使用して、 Data Grid クラスターで使用可能なすべてのキャッシュをリスト表示します。
GET /rest/v2/caches/
GET /rest/v2/caches/
2.1.24. キャッシュを利用したクロスサイト・オペレーション リンクのコピーリンクがクリップボードにコピーされました!
Data Grid REST API を使用して、クロスサイトレプリケーション操作を行います。
2.1.24.1. すべてのバックアップロケーションのステータス取得 リンクのコピーリンクがクリップボードにコピーされました!
GET リクエストですべてのバックアップロケーションのステータスを取得します。
GET /v2/caches/{cacheName}/x-site/backups/
GET /v2/caches/{cacheName}/x-site/backups/
Data Grid は、以下の例のように、各バックアップロケーションのステータスを JSON 形式で応答します。
{
"NYC": "online",
"LON": "offline"
}
{
"NYC": "online",
"LON": "offline"
}
| 値 | 説明 |
|---|---|
|
| ローカルクラスター内のすべてのノードには、バックアップの場所を含むクロスサイトビューがあります。 |
|
| ローカルクラスター内のノードには、バックアップの場所とのクロスサイトビューがありません。 |
|
| ローカルクラスター内の一部のノードにはバックアップの場所を含むクロスサイトビューがあり、ローカルクラスター内の他のノードにはクロスサイトビューがありません。応答は、各ノードのステータスを示します。 |
2.1.24.2. 特定のバックアップ場所のステータスの取得 リンクのコピーリンクがクリップボードにコピーされました!
GET リクエストでバックアップロケーションのステータスを取得する。
GET /v2/caches/{cacheName}/x-site/backups/{siteName}
GET /v2/caches/{cacheName}/x-site/backups/{siteName}
Data Grid は、以下の例のように、サイト内の各ノードのステータスを JSON 形式で応答します。
{
"NodeA":"offline",
"NodeB":"online"
}
{
"NodeA":"offline",
"NodeB":"online"
}
| 値 | 説明 |
|---|---|
|
| ノードはオンラインです。 |
|
| ノードはオフラインです。 |
|
| ステータスを取得できません。リモートキャッシュがシャットダウンしているか、リクエスト中にネットワークエラーが発生した可能性があります。 |
2.1.24.3. バックアップ先をオフラインにする リンクのコピーリンクがクリップボードにコピーされました!
POST リクエストと ?action=take-offline パラメーターを使用して、バックアップの場所をオフラインにします。
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=take-offline
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=take-offline
2.1.24.4. バックアップ場所をオンラインにする リンクのコピーリンクがクリップボードにコピーされました!
?action=bring-online パラメーターを使用してバックアップ場所をオンラインにします。
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=bring-online
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=bring-online
2.1.24.5. バックアップ場所への状態のプッシュ リンクのコピーリンクがクリップボードにコピーされました!
?action=start-push-state パラメーターを使用して、キャッシュ状態をバックアップ場所にプッシュします。
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=start-push-state
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=start-push-state
2.1.24.6. 状態転送のキャンセル リンクのコピーリンクがクリップボードにコピーされました!
?action=cancel-push-state パラメーターを使用して状態転送操作をキャンセルします。
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=cancel-push-state
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=cancel-push-state
2.1.24.7. 状態転送ステータスの取得 リンクのコピーリンクがクリップボードにコピーされました!
?action=push-state-status パラメーターを使用して状態転送操作のステータスを取得します。
GET /v2/caches/{cacheName}/x-site/backups?action=push-state-status
GET /v2/caches/{cacheName}/x-site/backups?action=push-state-status
Data Grid は、以下の例のように、各バックアップ拠点の状態移行の状況を JSON 形式で応答します。
{
"NYC":"CANCELED",
"LON":"OK"
}
{
"NYC":"CANCELED",
"LON":"OK"
}
| 値 | 説明 |
|---|---|
|
| バックアップ場所への状態転送が進行中です。 |
|
| 状態の転送が正常に完了しました。 |
|
| 状態転送でエラーが発生しました。ログファイルを確認してください。 |
|
| 状態移行のキャンセルが進行中です。 |
2.1.24.8. 状態転送ステータスのクリア リンクのコピーリンクがクリップボードにコピーされました!
?action=clear-push-state-status パラメーターを使用して送信サイトの状態転送ステータスをクリアします。
POST /v2/caches/{cacheName}/x-site/local?action=clear-push-state-status
POST /v2/caches/{cacheName}/x-site/local?action=clear-push-state-status
2.1.24.9. オフラインテイク条件の変更 リンクのコピーリンクがクリップボードにコピーされました!
特定の条件が満たされると、サイトはオフラインになります。オフラインにするパラメーターを変更して、バックアップロケーションが自動的にオフラインになるタイミングを制御します。
手順
GETリクエストとtake-offline-configパラメーターで設定されたテイクオフラインパラメーターを確認します。GET /v2/caches/{cacheName}/x-site/backups/{siteName}/take-offline-configGET /v2/caches/{cacheName}/x-site/backups/{siteName}/take-offline-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow Data Grid のレスポンスには、以下のように
after_failuresとmin_waitフィールドがあります。{ "after_failures": 2, "min_wait": 1000 }{ "after_failures": 2, "min_wait": 1000 }Copy to Clipboard Copied! Toggle word wrap Toggle overflow PUTリクエストの本文のオフライン取得パラメーターを変更します。PUT /v2/caches/{cacheName}/x-site/backups/{siteName}/take-offline-configPUT /v2/caches/{cacheName}/x-site/backups/{siteName}/take-offline-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.1.24.10. 受信サイトからの状態転送のキャンセル リンクのコピーリンクがクリップボードにコピーされました!
2 つのバックアップ場所間の接続が切断された場合、プッシュを受信しているサイトでの状態転送をキャンセルできます。
?action=cancel-receive-state パラメーターで、リモートサイトからの状態転送をキャンセルし、ローカルキャッシュの現在の状態を維持する。
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=cancel-receive-state
POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=cancel-receive-state
2.1.25. ローリングアップグレード リンクのコピーリンクがクリップボードにコピーされました!
Data Grid クラスター間でキャッシュデータのローリングアップグレードを実行します
2.1.25.1. データの同期 リンクのコピーリンクがクリップボードにコピーされました!
ソースクラスターからターゲットクラスターへのデータの同期には、POST リクエストと ?action=sync-data パラメーターを使用します。
POST /v2/caches/{cacheName}?action=sync-data
POST /v2/caches/{cacheName}?action=sync-data
操作が完了すると、Data Grid はターゲットクラスターにコピーされたエントリーの合計数で応答します。
2.1.25.2. ソースクラスターの接続 リンクのコピーリンクがクリップボードにコピーされました!
データをターゲットクラスターに同期した後、POST 要求と ?action=disconnect-source パラメーターを使用してソースクラスターから切断します。
POST /v2/caches/{cacheName}?action=disconnect-source
POST /v2/caches/{cacheName}?action=disconnect-source