バッチ要求の管理

バッチ要求には、次の特別な機能があります。

  • サブ要求ヘッダーの指定
  • サブ要求が失敗したときの動作の指定
  • サブ要求の最大数のコンフィギュレーション

サブ要求ヘッダーの指定

以下に、メイン要求ヘッダーをオーバーライドするヘッダーが各サブ要求にあるバッチ要求の例を示します。

{
  "requests": [
    {
      "method": "delete",
      "path": "/activities/xc:55",
      "headers": [
        {
          "name": "GW-Checksum",
          "value": "2"
        }
      ]
    },
    {
      "method": "delete",
      "path": "/activities/xc:57",
      "headers": [
        {
          "name": "GW-Checksum",
          "value": "4"
        }
      ]
    }
  ]
}

onFail 動作の指定

以下に、onFail を使用して、サブ要求が失敗した場合に、残りのサブ要求をスキップする必要があることを指定するバッチ要求の例を示します。

{
  "requests": [
    {
      "method": "patch",
      "path": "/activities/xc:93",
      "body": {
        "data": {
          "attributes": {
            "subject": "PATCH body 1"
          }
        }
      },
      "onFail": "abort"
    },
    {
      "method": "patch",
      "path": "/activities/xc:94",
      "body": {
        "data": {
          "attributes": {
            "subject": "PATCH body 2"
          }
        }
      },
      "onFail": "abort"
    },
    {
      "method": "patch",
      "path": "/activities/xc:95",
      "body": {
        "data": {
          "attributes": {
            "subject": "PATCH body 3"
          }
        }
      }
    }
  ]
}

サブ要求の最大数のコンフィギュレーション

バッチ要求の数は、サブ要求の最大数までに制限されています。最大数は、MaximumAllowedNumberOfBatchSubRequests コンフィギュレーションパラメータで指定されます。ベースコンフィギュレーションでは、このパラメータは 100 に設定されています。バッチ要求の数がサブ要求の最大数よりも多いと、BadInputException により失敗します。

バッチ要求内のサブ要求の数が多いほど、パフォーマンスが低下する可能性が高くなります。バッチ要求に最大数のサブ要求が含まれている場合は、最大数やそのサブ要求の実行内容に応じて、応答が遅くなる可能性があります。

サブ要求の最大数を 100 よりも大きい値に増やすことができます。ただし、サブ要求の数が非常に多いバッチ要求は、次のような悪い結果を伴う可能性があります。

  • 要求で大量のサービスリソースが消費される。これには、メモリとデータベースの両方のリソースが含まれる可能性があります。
  • 要求の完了に長時間かかるため、応答が呼び出し元に送信される前にタイムアウトになる。

したがって、Guidewire では、サブ要求の最大数を必要最小限の値に設定することをお勧めします。最大数を 100 を超える値にするのにビジネス上正当な必要性がある場合は、Guidewire では、上限を必要最小限だけ上げることをお勧めします。

また、バッチ要求は、要求本文の最大サイズに関するアプリケーションサーバーの制限に従うことに注意してください。したがって、サブ要求の数が許容最大数以下であっても、バッチ要求が大きすぎて処理できない可能性もあります。