OpenAPI のデフォルト値および制限の設定

業務時間外にシステムに大きな影響を与える操作を実行するには、QueryBuilder プロパティを上書きします。 QueryBuilder のいくつかのパラメータを上書きすることができます。 OData リミッタ設定ファイルで定義されているデフォルトのパラメータ値で、システム全体のパフォーマンスに悪影響を与える OpenAPI クエリからシステムを保護します。 これらのパラメータで、返された結果セットを制限したり、大規模になる可能性のある操作のタイムアウトしきい値を定義したりします。 デフォルトのパラメータ値をカスタマイズして、上書きすることができます。この値は、システムの規模と機能によって異なります。
capm370
業務時間外にシステムに大きな影響を与える操作を実行するには、QueryBuilder プロパティを上書きします。 QueryBuilder のいくつかのパラメータを上書きすることができます。 OData リミッタ設定ファイルで定義されているデフォルトのパラメータ値で、システム全体のパフォーマンスに悪影響を与える OpenAPI クエリからシステムを保護します。 これらのパラメータで、返された結果セットを制限したり、大規模になる可能性のある操作のタイムアウトしきい値を定義したりします。 デフォルトのパラメータ値をカスタマイズして、上書きすることができます。この値は、システムの規模と機能によって異なります。
OpenAPI パラメータの上書き
パラメータを上書きするには、OpenAPI の URL に以下のコードを追加します。
&<Override_parameter>=<override_value>
たとえば、デバイスのクエリで返される行数を上書きするには、以下の URL を使用します。
http://
da_host
:8581/odata/api/devices?$expand=cpumfs&$select=Name,PrimaryIPAddress,cpumfs/im_MemoryUtilization,cpumfs/im_Utilization
&$top=200
以下のパラメータを上書きすることができます。
パラメータ
デフォルト値
上書き
説明
defaultTopLimit
50
$top
返す行の数
defaultExpandTopLimit
100
top
返す展開行の数に対するカスタム パラメータ
defaultQueryTimeoutSecs
30 (秒)
timeout
クエリをタイムアウト例外の前に実行できる全体の時間に対するカスタム パラメータ
Web サービス パラメータの設定
OpenAPI Web サービスのパラメータは、同時使用を制限し、この制限を超えるリクエストの処理時間を制限します。
Web サービス パラメータを上書きするには、以下の設定ファイル内の値を編集します。
/opt/IMDataAggregator/apache-karaf-<
vers
>/etc/com.ca.im.odata.filters.OpenAPIRequestLimiterFilter.cfg
以下の Web サービス パラメータを上書きすることができます。
  • maxRequests
    同時 OpenAPI リクエストの数。 現在のクエリの 1 つが完了するまで、他のリクエストは保留されます。
    デフォルト:
    4
  • suspendMs
    OpenAPI の同時リクエスト数が上限に達した場合に、その他のリクエストが保留される時間の長さ(ミリ秒単位)。 たとえば、20000 と指定すると、リクエストは 20 秒間にわたり保留され、その後拒否されます。 却下されたリクエストは 503 利用不可エラーを生成し、OpenAPI は、クエリを再度自動的に実行しません。
    デフォルト:
    -1 (defaultQueryTimeoutSecs の値を使用します)
  • waitMS
    新規リクエストを受け入れる前に待機する時間(ミリ秒単位)。 このパラメータは、
    maxRequests
    制限に達したときに使用されます。 このパラメータは、次のファイルの
    defaultQueryTimeoutSecs
    と同じ値に設定することをお勧めします: /opt/IMDataAggregator/apache-karaf-
    <vers>
    /etc/com.ca.im.odata.beans.ODataLimiters.cfg
最大結果数の設定
デフォルト値を変更するかまたは制限を増やすには、OpenAPI クエリが返す行数の値を設定します。
以下の手順に従います。
  1. Data Aggregator ホストにログオンします。
  2. 以下のファイルを見つけて編集します。
    /opt/IMDataAggregator/apache-karaf-
    <vers>
    /etc/com.ca.im.odata.beans.ODataLimiters.cfg
  3. ファイルを変更して、制限およびデフォルト値を設定します。 以下の例では、このファイルのデフォルト値が示されます。 太字の属性は、制限およびデフォルト値を制御します。
    defaultTopLimit=50
    defaultExpandTopLimit=100
    maxTopLimit=20000
    maxSubQueryLimit=2000000
    defaultRateTimeIntervalSecs=3600
    defaultHourlyTimeIntervalHours=168
    defaultDailyTimeIntervalDays=30
    defaultWeeklyTimeIntervalWeeks=52
    defaultQueryTimeoutSecs=30
    maxQueryTimeoutSecs=120
    • defaultTopLimit
      出力内の行の最大数のデフォルト値を定義します。
      デフォルト:
      50
    • defaultExpandTopLimit
      出力内の展開行の最大数のデフォルト値を定義します。
      デフォルト:
      100
    • maxTopLimit
      出力内の行の最大数の値の制限を定義します。
      デフォルト:
      20000
    • maxSubQueryLimit
      OpenAPI クエリが返すことができる展開行の最大数を定義します。 QueryBuilder では、展開行の最大数の制限は、この値を行の最大数の指定値で割ることによって計算されます。
      デフォルト:
      2000000
    • defaultRateTimeIntervalSecs
      間隔がレートと等しいときの、クエリの時間間隔のデフォルト値を定義します。 時間間隔が指定されていない場合、クエリ時間は、3,600 秒(1 日)間です。
      デフォルト:
      3600
    • defaultHourlyTimeIntervalHours
      間隔が時間と等しいときの、クエリの時間間隔のデフォルト値を定義します。 時間間隔が指定されていない場合、クエリ時間は 168 時間(7 日間)です。
      デフォルト:
      168
    • defaultDailyTimeIntervalDays
      間隔が日と等しいときの、クエリの時間間隔のデフォルト値を定義します。 時間間隔が指定されていない場合、クエリ時間は 30 日間です。
      デフォルト:
      30
    • defaultWeeklyTimeIntervalWeeks
      間隔が週と等しいときの、クエリの時間間隔のデフォルト値を定義します。 時間間隔が指定されていない場合、クエリ時間は 52 週間です。
      デフォルト:
      52
    • defaultQueryTimeoutSecs
      すべてのクエリの標準的なタイムアウトを定義します。
      デフォルト:
      30
    • maxQueryTimeoutSecs
      timeout
      パラメータを使用して URL 内で指定できる最大タイムアウトを定義します。
      デフォルト:
      120
  4. 変更を保存します。
    新しい値は、ブラウザで QueryBuilder をロードまたは再ロードする際に適用されます。