2.4. キャッシュマネージャーの操作

Data Grid キャッシュマネージャーと対話して、クラスターと使用状況の統計を取得します。

2.4.1. 基本的なキャッシュマネージャー情報の取得

GET リクエストで Cache Manager の情報を取得します。

GET /rest/v2/cache-managers/{cacheManagerName}

Data Grid は、次の例のように、JSON 形式の情報で応答します。

{
    "version":"xx.x.x-FINAL",
    "name":"default",
    "coordinator":true,
    "cache_configuration_names":[
        "___protobuf_metadata",
        "cache2",
        "CacheManagerResourceTest",
        "cache1"
    ],
    "cluster_name":"ISPN",
    "physical_addresses":"[127.0.0.1:35770]",
    "coordinator_address":"CacheManagerResourceTest-NodeA-49696",
    "cache_manager_status":"RUNNING",
    "created_cache_count":"3",
    "running_cache_count":"3",
    "node_address":"CacheManagerResourceTest-NodeA-49696",
    "cluster_members":[
        "CacheManagerResourceTest-NodeA-49696",
        "CacheManagerResourceTest-NodeB-28120"
    ],
    "cluster_members_physical_addresses":[
        "127.0.0.1:35770",
        "127.0.0.1:60031"
    ],
    "cluster_size":2,
    "defined_caches":[
        {
            "name":"CacheManagerResourceTest",
            "started":true
        },
        {
            "name":"cache1",
            "started":true
        },
        {
            "name":"___protobuf_metadata",
            "started":true
        },
        {
            "name":"cache2",
            "started":true
        }
    ],
    "local_site": "LON",
    "relay_node": true,
    "relay_nodes_address": [
      "CacheManagerResourceTest-NodeA-49696"
    ],
    "sites_view": [
        "LON",
        "NYC"
    ],
    "rebalancing_enabled": true
}
  • version は、 Data Grid バージョンが含まれています
  • name には、コンフィギュレーションで定義されたキャッシュマネージャーの名前が含まれます。
  • coordinator は、キャッシュ・マネージャーがクラスターのコーディネーターである場合には真となります。
  • cache_configuration_names には、キャッシュマネージャーで定義されたすべてのキャッシュ設定の配列が含まれます
  • cluster_name には、設定で定義されたクラスターの名前が含まれます。
  • physical_addresses は、キャッシュマネージャーに関連する物理ネットワークアドレスを含みます。
  • coordinator_address には、クラスターのコーディネーターの物理ネットワークアドレスが含まれます
  • cache_manager_status キャッシュマネージャーのライフサイクルの状態です。可能な値については、 org.infinispan.lifecycle.ComponentStatus ドキュメントを確認してください
  • created_cache_count 作成されたキャッシュの数、すべての内部およびプライベートキャッシュを除く
  • running_cache_count 実行中の作成されたキャッシュの数
  • node_address には、キャッシュマネージャーの論理アドレスが含まれます
  • cluster_members および cluster_members_physical_addresses は、クラスターのメンバーの論理アドレスと物理アドレスの配列です。
  • cluster_size クラスター内のメンバーの数
  • defined_caches キャッシュマネージャーで定義されているすべてのキャッシュのリスト。プライベートキャッシュは除きますが、アクセス可能な内部キャッシュは含まれます。
  • local_site ローカルサイトの名前。
    クロスサイトレプリケーションが設定されていない場合、Data Grid は "local "を返します。
  • relay_node は、クラスター間の RELAY メッセージを処理するノードであれば true。
  • relay_nodes_address は、リレーノードの論理アドレスの配列です。
  • sites_view クロスサイトレプリケーションに参加しているサイトのリスト。
    クロスサイトレプリケーションが設定されていない場合、 Data Grid は空のリストを返します。
  • rebalancing_enabled は、リバランシングが有効な場合は true。このプロパティーの取得は、サーバーで失敗する可能性があります。その場合、プロパティーはペイロードに存在しません。

2.4.2. クラスターヘルスの取得

GET リクエストを使用して Data Grid クラスターのヘルス情報を取得します。

GET /rest/v2/cache-managers/{cacheManagerName}/health

Data Grid は、次の例のように、JSON 形式のクラスターヘルス情報で応答します。

{
    "cluster_health":{
        "cluster_name":"ISPN",
        "health_status":"HEALTHY",
        "number_of_nodes":2,
        "node_names":[
            "NodeA-36229",
            "NodeB-28703"
        ]
    },
    "cache_health":[
        {
            "status":"HEALTHY",
            "cache_name":"___protobuf_metadata"
        },
        {
            "status":"HEALTHY",
            "cache_name":"cache2"
        },
        {
            "status":"HEALTHY",
            "cache_name":"mycache"
        },
        {
            "status":"HEALTHY",
            "cache_name":"cache1"
        }
    ]
}
  • cluster_health には、クラスターのヘルスが含まれます

    • cluster_name は、設定で定義されているクラスターの名前を指定します。
    • health_status は、次のいずれかを提供します。

      • DEGRADED は、キャッシュの少なくとも 1 つが劣化モードにあることを示します。
      • HEALTHY_REBALANCING は、少なくとも 1 つのキャッシュがリバランス状態にあることを示します。
      • HEALTHY は、クラスター内のすべてのキャッシュインスタンスが期待どおりに動作していることを示します。
      • FAILED は、指定された設定でキャッシュを開始できなかったことを示します。
    • number_of_nodes は、クラスターメンバーの総数を表示します。非クラスター化 (スタンドアロン) サーバーの場合は値 0 を返します。
    • node_names は、すべてのクラスターメンバーの配列です。スタンドアロンサーバーの場合は空です。
  • cache_health には、キャッシュごとのヘルス情報が含まれています

    • status は HEALTHY、DEGRADED、HEALTHY_REBALANCING または FAILED です。
    • cache_name 設定で定義されているキャッシュの名前。

2.4.3. キャッシュマネージャーのヘルスステータスの取得

認証を必要としない GET リクエストを使用してキャッシュマネージャーのヘルスステータスを取得します。

GET /rest/v2/cache-managers/{cacheManagerName}/health/status

Data Grid は以下のいずれかを text/plain 形式で応答します。

  • HEALTHY
  • HEALTHY_REBALANCING
  • DEGRADED
  • FAILED

2.4.4. REST エンドポイントの可用性の確認

HEAD リクエストを使用して Data Grid サーバーの REST エンドポイントの可用性を確認します。

HEAD /rest/v2/cache-managers/{cacheManagerName}/health

正常な応答コードを受信した場合、Data Grid REST サーバーが実行され、要求を処理しています。

2.4.5. キャッシュマネージャーのグローバル設定の取得

GET 要求を使用してキャッシュマネージャーのグローバル設定を取得します。

GET /rest/v2/cache-managers/{cacheManagerName}/config

表2.19 ヘッダー

ヘッダー必須またはオプションパラメーター

Accept

オプション

コンテンツを返すために必要なフォーマットです。対応フォーマットは、application/jsonapplication/xmlです。ヘッダーが指定されていない場合、JSON が想定されます。

参照資料

GlobalConfiguration

2.4.6. すべてのキャッシュの設定を取得する

GET リクエストを使用してすべてのキャッシュの設定を取得します。

GET /rest/v2/cache-managers/{cacheManagerName}/cache-configs

Data Grid は、以下の例のように、各キャッシュとキャッシュ設定を含む JSON 配列で応答します。

[
  {
      "name":"cache1",
      "configuration":{
          "distributed-cache":{
              "mode":"SYNC",
              "partition-handling":{
                  "when-split":"DENY_READ_WRITES"
              },
              "statistics":true
          }
      }
  },
  {
      "name":"cache2",
      "configuration":{
          "distributed-cache":{
              "mode":"SYNC",
              "transaction":{
                  "mode":"NONE"
              }
          }
      }
  }
]

2.4.7. 利用可能なキャッシュテンプレートの一覧表示

GET リクエストで、利用可能なすべての Data Grid キャッシュテンプレートを取得します。

GET /rest/v2/cache-managers/{cacheManagerName}/cache-configs/templates
ヒント

2.4.8. キャッシュのステータスと情報の取得

Cache Manager で利用可能なすべてのキャッシュのリストを、キャッシュ・ステータスおよび詳細とともに、GET 要求で取得します。

GET /rest/v2/cache-managers/{cacheManagerName}/caches

Data Grid は、次の例のように、使用可能な各キャッシュを一覧表示して説明する JSON 配列で応答します。

[ {
  "status" : "RUNNING",
  "name" : "cache1",
  "type" : "local-cache",
  "simple_cache" : false,
  "transactional" : false,
  "persistent" : false,
  "bounded": false,
  "secured": false,
  "indexed": true,
  "has_remote_backup": true,
  "health":"HEALTHY",
  "rebalancing_enabled": true
}, {
  "status" : "RUNNING",
  "name" : "cache2",
  "type" : "distributed-cache",
  "simple_cache" : false,
  "transactional" : true,
  "persistent" : false,
  "bounded": false,
  "secured": false,
  "indexed": true,
  "has_remote_backup": true,
  "health":"HEALTHY",
  "rebalancing_enabled": false
}]

2.4.9. キャッシュマネージャー統計の取得

GET リクエストを使用してキャッシュマネージャーの統計を取得します。

GET /rest/v2/cache-managers/{cacheManagerName}/stats

Data Grid は、次の例のように、JSON 形式のキャッシュマネージャー統計で応答します。

{
    "statistics_enabled":true,
    "read_write_ratio":0.0,
    "time_since_start":1,
    "time_since_reset":1,
    "number_of_entries":0,
    "total_number_of_entries":0,
    "off_heap_memory_used":0,
    "data_memory_used":0,
    "misses":0,
    "remove_hits":0,
    "remove_misses":0,
    "evictions":0,
    "average_read_time":0,
    "average_read_time_nanos":0,
    "average_write_time":0,
    "average_write_time_nanos":0,
    "average_remove_time":0,
    "average_remove_time_nanos":0,
    "required_minimum_number_of_nodes":1,
    "hits":0,
    "stores":0,
    "current_number_of_entries_in_memory":0,
    "hit_ratio":0.0,
    "retrievals":0
}
  • statistics_enabled は、Cache Manager で統計情報の収集が有効になっている場合に true になります。
  • read_write_ratio は、すべてのキャッシュにわたる読み取り/書き込み比率を表示します。
  • time_since_start は、キャッシュマネージャーが開始されてからの時間を秒単位で示します。
  • time_since_reset は、キャッシュマネージャーの統計が最後にリセットされてからの秒数を示します。
  • number_of_entries は、キャッシュマネージャーから現在すべてのキャッシュにあるエントリーの総数を示します。この統計は、ローカルキャッシュインスタンスのエントリーのみを返します。
  • total_number_of_entries は、キャッシュマネージャーのすべてのキャッシュで実行されたストア操作の数を示します。
  • off_heap_memory_used は、このキャッシュコンテナーが使用しているオフヒープメモリーの量を bytes[] 単位で示します。
  • data_memory_used は、現在の退避アルゴリズムが全キャッシュのデータに使用されていると推定している量を bytes[] 単位で示します。エヴィクションが有効になっていない場合は 0 を返します。
  • misses は、すべてのキャッシュにおける get() のミスの数を示しています。
  • remove_hits は、すべてのキャッシュにわたる削除ヒットの数を示します。
  • remove_misses は、すべてのキャッシュにわたる削除ミスの数を示します。
  • evictions は、すべてのキャッシュにおける エヴィクション の数を示しています。
  • average_read_time は、すべてのキャッシュで get() 操作にかかったミリ秒数の平均値を示します。
  • average_read_time_nanosaverage_read_time と同じですが、単位はナノ秒です。
  • average_remove_time は、すべてのキャッシュにおける remove() 操作の平均ミリ秒数を示します。
  • average_remove_time_nanosaverage_remove_time と同じですが、単位はナノ秒です。
  • required_minimum_number_of_nodes は、データの一貫性を保証するために必要な最小のノード数を示します。
  • hits は、すべてのキャッシュにおける get() のヒット数を示します。
  • stores は、すべてのキャッシュにおける put() 操作の回数を提供します。
  • current_number_of_entries_in_memory は、パッシベーションされたエントリーを除く、現在すべてのキャッシュにあるエントリーの総数を示します。
  • hit_ratio は、すべてのキャッシュの合計ヒット率/(ヒット+ミス) 比率を提供します。
  • retrievals は、get() 操作の総数を示しています。

2.4.10. すべてのコンテナーキャッシュをシャットダウンします

POST リクエストを使用して、サーバー上の Data Grid コンテナーをシャットダウンします。

POST /rest/v2/container?action=shutdown

Data Grid は 204 (No Content) と応答し、コンテナー内のすべてのキャッシュをシャットダウンします。サーバーはアクティブなエンドポイントとクラスターリングで実行されたままですが、コンテナーリソースへの REST 呼び出しは、503 Service Unavailable 応答になります。

注記

このメソッドは、主に Data Grid オペレーターによる使用を目的としています。このエンドポイントが呼び出された直後に、サーバープロセスが手動で終了することが期待されます。このメソッドが呼び出されると、コンテナーの状態を再開することはできません。

2.4.11. すべてのキャッシュのリバランスを有効にする

すべてのキャッシュの自動リバランスをオンにします。

POST /rest/v2/cache-managers/{cacheManagerName}?action=enable-rebalancing

2.4.12. すべてのキャッシュのリバランスを無効にする

すべてのキャッシュの自動リバランスをオフにします。

POST /rest/v2/cache-managers/{cacheManagerName}?action=disable-rebalancing

2.4.13. Data Grid キャッシュマネージャーのバックアップ

現在キャッシュマネージャーに保存されているリソース (キャッシュ、キャッシュテンプレート、カウンター、Protobuf スキーマ、サーバータスクなど) を含むバックアップアーカイブ (application/zip) を作成します。

POST /rest/v2/cache-managers/{cacheManagerName}/backups/{backupName}

同じ名前のバックアップがすでに存在する場合、サービスは 409 (Conflict) 応答します。directory パラメーターが無効な場合、サービスは 400 (Bad Request) 返します。202 応答は、バックアップ要求が処理のために受け入れられたことを示します。

オプションで、次のように、バックアップ操作のパラメーターを含む JSON ペイロードをリクエストに含めます。

表2.20 JSON パラメーター

キー必須またはオプション

directory

オプション

バックアップアーカイブを作成および保存するサーバー上の場所を指定します。

resources

オプション

バックアップするリソースを JSON 形式で指定します。デフォルトでは、すべてのリソースがバックアップされます。1 つまたは複数のリソースを指定した場合、Data Grid はそれらのリソースのみをバックアップします。詳細については、リソースパラメーターの表を参照してください。

表2.21 リソースパラメーター

キー必須またはオプション

caches

オプション

バックアップするキャッシュ名の配列を指定するか、すべてのキャッシュを対象とする * を指定します。

cache-configs

オプション

バックアップするキャッシュテンプレートの配列、またはすべてのテンプレートの * を指定します。

counters

オプション

バックアップするカウンター名の配列、またはすべてのカウンターの * を定義します。

proto-schemas

オプション

バックアップする Protobuf スキーマ名の配列、またはすべてのスキーマの * を定義します。

tasks

オプション

バックアップするサーバータスクの配列、またはすべてのタスクの * を指定します。

次の例では、指定されたディレクトリーに [cache1,cache2] という名前のすべてのカウンターとキャッシュを含むバックアップアーカイブを作成します。

{
  "directory": "/path/accessible/to/the/server",
  "resources": {
    "caches": ["cache1", "cache2"],
    "counters": ["*"]
  }
}

2.4.14. バックアップの一覧表示

進行中、完了、または失敗したすべてのバックアップ操作の名前を取得します。

GET /rest/v2/cache-managers/{cacheManagerName}/backups

Data Grid は、以下の例のように、すべてのバックアップ名の配列で応答します。

["backup1", "backup2"]

2.4.15. バックアップの可用性の確認

バックアップ操作が完了していることを確認します。

HEAD /rest/v2/cache-managers/{cacheManagerName}/backups/{backupName}

200 のレスポンスは、バックアップアーカイブが利用可能であることを示します。202 の応答は、バックアップ操作が進行中であることを示します。

2.4.16. バックアップアーカイブのダウンロード

サーバーからバックアップアーカイブをダウンロードします。

GET /rest/v2/cache-managers/{cacheManagerName}/backups/{backupName}

200 のレスポンスは、バックアップアーカイブが利用可能であることを示します。202 の応答は、バックアップ操作が進行中であることを示します。

2.4.17. バックアップアーカイブの削除

サーバーからバックアップアーカイブを削除します。

DELETE /rest/v2/cache-managers/{cacheManagerName}/backups/{backupName}

204 応答は、バックアップアーカイブが削除されたことを示します。202 応答は、バックアップ操作が進行中であるが、操作が完了すると削除されることを示します。

2.4.18. バックアップアーカイブからの Data Grid リソースの復元

バックアップアーカイブから Data Grid リソースを復元します。提供されている {restoreName} は、復元の進行状況を追跡するためのものであり、復元されるバックアップファイルの名前とは無関係です。

重要

バックアップアーカイブ内のコンテナー名が {cacheManagerName} と一致する場合にのみ、リソースを復元できます。

POST /rest/v2/cache-managers/{cacheManagerName}/restores/{restoreName}

202 応答は、復元要求が処理のために受け入れられたことを示します。

2.4.18.1. Data Grid サーバー上のバックアップアーカイブからの復元

サーバー上のアーカイブからバックアップする場合は、POST リクエストに application/json コンテンツタイプを使用します。

表2.22 JSON パラメーター

キー必須またはオプション

location

必須

復元するバックアップアーカイブのパスを指定します。

resources

オプション

復元するリソースを JSON 形式で指定します。デフォルトでは、すべてのリソースを復元します。1 つまたは複数のリソースを指定した場合、Data Grid はそれらのリソースのみをリストアします。詳細については、リソースパラメーターの表を参照してください。

表2.23 リソースパラメーター

キー必須またはオプション

caches

オプション

バックアップするキャッシュ名の配列を指定するか、すべてのキャッシュを対象とする * を指定します。

cache-configs

オプション

バックアップするキャッシュテンプレートの配列、またはすべてのテンプレートの * を指定します。

counters

オプション

バックアップするカウンター名の配列、またはすべてのカウンターの * を定義します。

proto-schemas

オプション

バックアップする Protobuf スキーマ名の配列、またはすべてのスキーマの * を定義します。

tasks

オプション

バックアップするサーバータスクの配列、またはすべてのタスクの * を指定します。

次の例では、サーバー上のバックアップアーカイブからすべてのカウンターを復元します。

{
  "location": "/path/accessible/to/the/server/backup-to-restore.zip",
  "resources": {
    "counters": ["*"]
  }
}

2.4.18.2. ローカルバックアップアーカイブからの復元

ローカルのバックアップアーカイブをサーバーにアップロードするには、POST リクエストに multipart/form-data コンテンツタイプを使用します。

表2.24 フォームデータ

パラメーターContent-Type必須またはオプション

backup

application/zip

必須

復元するバックアップアーカイブのバイトを指定します。

resources

application/json, text/plain

オプション

リクエストパラメーターの JSON オブジェクトを定義します。

要求の例

Content-Type: multipart/form-data; boundary=5ec9bc07-f069-4662-a535-46069afeda32
Content-Length: 7721

--5ec9bc07-f069-4662-a535-46069afeda32
Content-Disposition: form-data; name="resources"
Content-Length: 23

{"scripts":["test.js"]}
--5ec9bc07-f069-4662-a535-46069afeda32
Content-Disposition: form-data; name="backup"; filename="testManagerRestoreParameters.zip"
Content-Type: application/zip
Content-Length: 7353

<zip-bytes>
--5ec9bc07-f069-4662-a535-46069afeda32--

2.4.19. リストの復元

進行中、完了、または失敗したすべての復元要求の名前を取得します。

GET /rest/v2/cache-managers/{cacheManagerName}/restores

Data Grid は、次の例のように、すべての復元名の配列で応答します。

["restore1", "restore2"]

2.4.20. 復元の進行状況を確認する

復元操作が完了したことを確認します。

HEAD /rest/v2/cache-managers/{cacheManagerName}/restores/{restoreName}

201 (Created) 応答は、リストア操作が完了したことを示します。202 (Accepted) 応答は、バックアップ操作が進行中であることを示します。

2.4.21. 復元メタデータの削除

サーバーから復元要求のメタデータを削除します。このアクションにより、復元要求に関連付けられているすべてのメタデータが削除されますが、復元されたコンテンツは削除されません。リクエストのメタデータを削除すると、リクエスト名を使用して後続の復元操作を実行できます。

DELETE /rest/v2/cache-managers/{cacheManagerName}/restores/{restoreName}

204 (No Content) 応答は、復元メタデータが削除されたことを示します。202 (Accepted) 応答は、復元操作が進行中であり、操作が完了すると削除されることを示します。

2.4.22. コンテナー設定イベントのリスニング

Server-Sent Events を使用して、設定変更に関するイベントを受信します。event 値は、create-cacheremove-cacheupdate-cachecreate-templateremove-template、または update- template のいずれかになります。data 値には、作成されたエンティティーの宣言型設定が含まれます。削除イベントには、削除されたエンティティーの名前のみが含まれます。

GET /rest/v2/container/config?action=listen

表2.25 ヘッダー

ヘッダー必須またはオプションパラメーター

Accept

オプション

コンテンツを返すために必要な形式を設定します。サポートされている形式は、 application/yamlapplication/jsonapplication/xml です。デフォルトは application/yaml です。詳細については、 Accept を参照してください。

2.4.23. キャッシュ・マネージャーによるクロスサイト操作

Cache Managers でクロスサイト操作を行うと、すべてのキャッシュに操作が適用されます。

2.4.23.1. バックアップの場所のステータスの取得

GET 要求により、キャッシュ・マネージャーからすべてのバックアップ・ロケーションのステータスを取得します。

GET /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/

Data Grid は、以下の例のように JSON 形式でステータスを応答します。

{
   "SFO-3":{
      "status":"online"
   },
   "NYC-2":{
      "status":"mixed",
      "online":[
         "CACHE_1"
      ],
      "offline":[
         "CACHE_2"
      ],
      "mixed": [
         "CACHE_3"
      ]
   }
}

表2.26 リターンステータス

説明

online

ローカルクラスター内のすべてのノードには、バックアップの場所を含むクロスサイトビューがあります。

offline

ローカルクラスター内のノードには、バックアップの場所とのクロスサイトビューがありません。

mixed

ローカルクラスター内の一部のノードにはバックアップの場所を含むクロスサイトビューがあり、ローカルクラスター内の他のノードにはクロスサイトビューがありません。応答は、各ノードのステータスを示します。

GET /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/{site}

1 つのバックアップの場所のステータスを返します。

2.4.23.2. バックアップの場所をオフラインにする

?action=take-offline パラメーターで、バックアップロケーションをオフラインにします。

POST /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/{siteName}?action=take-offline

2.4.23.3. バックアップの場所をオンラインにする

?action=bring-online パラメーターを使用してバックアップ場所をオンラインにします。

POST /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/{siteName}?action=bring-online

2.4.23.4. 状態遷移モードの取得

GET リクエストで状態転送モードを確認してください。

GET /rest/v2/caches/{cacheName}/x-site/backups/{site}/state-transfer-mode

2.4.23.5. 状態遷移モードの設定

?action=set パラメーターを使用して状態転送モードを設定します。

POST /rest/v2/caches/{cacheName}/x-site/backups/{site}/state-transfer-mode?action=set&mode={mode}

2.4.23.6. 状態遷移の開始

?action=start-push-state パラメーターを使用して、すべてのキャッシュの状態をリモートサイトにプッシュします。

POST /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/{siteName}?action=start-push-state

2.4.23.7. 状態遷移のキャンセル

?action=cancel-push-state パラメーターを使用して、進行中の状態転送操作をキャンセルします。

POST /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/{siteName}?action=cancel-push-state