メインコンテンツまでスキップ
バージョン: 次へ

QuotaManager

4D.QuotaManager クラスは、4D アプリケーションに適用する使用制限を設定およびモニターするためのインターフェースを提供します。しきい値は、例えば、ほとんど最適化されていないリクエストやサーバーリソースの過度な使用などからサーバーを保護することなどに有用です。例えばREST サーバーの場合、クォータを使用することでREST セッションがアクセス可能なORDA リソースを制限することができます。

4D.QuotaManager オブジェクトは以下の方法でインスタンス化することが可能です:

Web サーバーの設定と適用に関する詳細については、Web server クォータ を参照してください。

履歴
リリース内容
21 R5Web サーバークォータのサポート
21 R4クラスを追加

QuotaManagerオブジェクト​

デフォルトでは、4D.QuotaManager オブジェクトのプロパティはUndefined(未定義)となっており、これは対応するクォータが何も適用されていないことを意味します。

4D.QuotaManager オブジェクト自体は直接代入することはできず、プロパティを追加することや削除することもできません。クォータは、既存のオブジェクトの対応するプロパティを変更することで設定されます。

4D.QuotaManager オブジェクトは以下のプロパティを提供します:

currentValues : Object
クォータマネージャーの現在使用されている値
defaultEntitySetTimeout : Integer
カレントセッションに保存されているREST エンティティセットのデフォルトの非アクティブタイムアウト(秒単位)
inBytesPerHour : Integer
Web サーバーが1時間に受信できる最大バイト数
inBytesPerHourPerSession : Integer
Web サーバーがセッションに対して1時間に受信できる最大の総バイト数
inBytesPerMin : Integer
Web サーバーが1分間に受信できる最大の総バイト数
inBytesPerMinPerSession : Integer
Web サーバーがセッションに対して1分間に受信できる最大の総バイト数
maxEntitySetTimeout : Integer
カレントセッションの途中にメモリ内に保存されているREST エンティティセットの非アクティブタイムアウトの最大値(秒単位)
nbEntitySets : Integer
カレントのセッション内においてメモリ内に許可されているREST エンティティセットの最大数
nbEntitySetsPerSession : Integer
各REST セッションに対してメモリ内に許可されているエンティティセットの最大数
nbGuestSessions : Integer
Web サーバー上のアクティブなゲストセッション の最大総数
nbRequestsPerHour : Integer
Web サーバーが1時間に受信できるリクエストの最大総数
nbRequestsPerHourPerSession : Integer
セッションが1時間に受信できるリクエストの最大総数
nbRequestsPerMin : Integer
Web サーバーが1分間に受信できるリクエストの最大総数
nbRequestsPerMinPerSession : Integer
セッションが1分間に受信できるリクエストの最大総数
nbSessions : Integer
Web サーバー上のアクティブセッションの最大総数
outBytesPerHour : Integer
Web サーバーが1時間に送信できる最大バイト数
outBytesPerHourPerSession : Integer
Web サーバーがセッションに対して1時間に送信できる最大の総バイト数
outBytesPerMin : Integer
Web サーバーが1分間に送信できる最大バイト数
outBytesPerMinPerSession : Integer
Web サーバーがセッションに対して
1分間に送信できる最大の総バイト数

.currentValues​

currentValues : Object

説明​

.currentValues プロパティにはクォータマネージャーの現在使用されている値 が格納されています。これは4D によって自動的に更新され、また読み出し専用です。

このオブジェクトは4D.QuotaManager オブジェクトと同じプロパティを持ちますが、以下のプロパティのみが現在の使用状況を方向します:

.defaultEntitySetTimeout​

defaultEntitySetTimeout : Integer

説明​

注

このクォータは、Session.quotas を使用することで、カレントのREST セッションに対してのみ設定することができます。

.defaultEntitySetTimeout プロパティにはカレントセッションに保存されているREST エンティティセットのデフォルトの非アクティブタイムアウト(秒単位) が格納されています。

スコープ: カレントセッションレベル

デフォルトでは、値は2時間(7200 秒)です。これはまた、$timeout REST API を使用してエンティティセット作成時に定義することもできます。

この値はセッションのquotas.defaultEntitySetTimeout プロパティ を使用することで動的に変更することもできます。これらはセッション内で後で作成されたあらゆるエンティティセットに対して使用することができます(この場合既存のエンティティセットのデフォルトのタイムアウト設定は変更されません)。

注

maxEntitySetTimeout プロパティ値より大きい値を定義した場合、それはmaxEntitySetTimeout の値に揃えられます。

負の値(<= 0)を渡すことはできません(その場合にはエラーが生成されます)。セッションのプロパティ値をリセットするためには、undefined を渡してください。

例題​

REST を処理する4D コード内のどこかで以下の様に書くことができます:

Session.quotas.defaultEntitySetTimeout:=1200

.inBytesPerHour​

inBytesPerHour : Integer

説明​

.inBytesPerHour プロパティにはWeb サーバーが1時間に受信できる最大バイト数 が格納されています。

スコープ: サーバーグローバルレベル

.inBytesPerHourPerSession​

inBytesPerHourPerSession : Integer

説明​

.inBytesPerHourPerSession プロパティにはWeb サーバーがセッションに対して1時間に受信できる最大の総バイト数 が格納されています。

スコープ: セッションデフォルトレベル

.inBytesPerMin​

inBytesPerMin : Integer

説明​

.inBytesPerMin プロパティにはWeb サーバーが1分間に受信できる最大の総バイト数 が格納されています。

スコープ: サーバーグローバルレベル

.inBytesPerMinPerSession​

inBytesPerMinPerSession : Integer

説明​

.inBytesPerMinPerSession プロパティにはWeb サーバーがセッションに対して1分間に受信できる最大の総バイト数 が格納されています。

スコープ: セッションデフォルトレベル

.maxEntitySetTimeout​

maxEntitySetTimeout : Integer

説明​

注

このクォータは、Session.quotas を使用することで、カレントのREST セッションに対してのみ設定することができます。

.maxEntitySetTimeout プロパティにはカレントセッションの途中にメモリ内に保存されているREST エンティティセットの非アクティブタイムアウトの最大値(秒単位) が格納されています。

スコープ: カレントセッションレベル

この値はセッションのquotas.maxEntitySetTimeout プロパティ を使用することで設定することもできます。これらはセッション内で後で作成されたあらゆるエンティティセットに対して使用することができます(この場合既存のエンティティセットのタイムアウトの最大値は変更されません)。

一度.maxEntitySetTimeout プロパティが設定されるとその後セッション内で作成されるあらゆるエンティティセットに対しては.maxEntitySetTimeout の値より長いタイムアウト値を設定することはできません。

例えば、最大非アクティブタイムアウト値が40 分(2400 秒) に設定されていたとして、もしその最大値を超えるタイムアウトを必要とするエンティティセットが作成された場合:

http://127.0.0.1/rest/People?$filter=ID>=4&$method=entityset&$timeout=3000

... リクエスト内で定義されたタイムアウトは無視され、この期間は何も使用されなかった場合には40分後にエンティティセットは解放されます。

負の値(<= 0)を渡すことはできません(その場合にはエラーが生成されます)。セッションのプロパティ値をリセットするためには、undefined を渡してください。

例題​

REST を処理する4D コード内のどこかで以下の様に書くことができます:

Session.quotas.maxEntitySetTimeout:=2400

.nbEntitySets​

nbEntitySets : Integer

説明​

注

このクォータは、Session.quotas を使用することで、カレントのREST セッションに対してのみ設定することができます。

.nbEntitySets プロパティにはカレントのセッション内においてメモリ内に許可されているREST エンティティセットの最大数 が格納されています。

スコープ: カレントセッションレベル

デフォルトでは、エンティティセットがREST リクエストによってメモリに保存される数 には制約はありません(値は 0 に設定されています)。特定のセッションに対して、サーバーのペイロードを抑えるために、上限を設定することができます。

許可されているエンティティセットの最大数に達すると、エンティティセットの作成を必要とするREST リクエストは、少なくとも1つのエンティティセットが解放されるまでは429 HTTP ステータスコードとエラーレスポンス を受け取ります。 $release REST コマンド を使用することで、キャッシュからエンティティセットを解放することができます。

負の値(<= 0)を渡すことはできません(その場合にはエラーが生成されます)。セッションのプロパティ値をリセットするためには、undefined を渡してください。

例題​

REST を処理する4D コード内のどこかで以下の様に書くことができます:

// エンティティセットの最大数は 50
Session.quotas.nbEntitySets:=50

.nbEntitySetsPerSession​

nbEntitySetsPerSession : Integer

説明​

注

このクォータはREST セッションに対してのみ適用されます。

.nbEntitySetsPerSession プロパティには各REST セッションに対してメモリ内に許可されているエンティティセットの最大数 が格納されています。

スコープ: セッションデフォルトレベル

.nbGuestSessions​

nbGuestSessions : Integer

説明​

.nbGuestSessions プロパティにはWeb サーバー上のアクティブなゲストセッション の最大総数 が格納されています。

スコープ: サーバーグローバルレベル

.nbRequestsPerHour​

nbRequestsPerHour : Integer

説明​

.nbRequestsPerHour プロパティにはWeb サーバーが1時間に受信できるリクエストの最大総数 が格納されています。

スコープ: サーバーグローバルレベル

.nbRequestsPerHourPerSession​

nbRequestsPerHourPerSession : Integer

説明​

.nbRequestsPerHourPerSession プロパティにはセッションが1時間に受信できるリクエストの最大総数 が格納されています。

スコープ: セッションデフォルトレベル

.nbRequestsPerMin​

nbRequestsPerMin : Integer

説明​

.nbRequestsPerMin プロパティにはWeb サーバーが1分間に受信できるリクエストの最大総数 が格納されています。

スコープ: サーバーグローバルレベル

.nbRequestsPerMinPerSession​

nbRequestsPerMinPerSession : Integer

説明​

.nbRequestsPerMinPerSession プロパティにはセッションが1分間に受信できるリクエストの最大総数 が格納されています。

スコープ: セッションデフォルトレベル

.nbSessions​

nbSessions : Integer

説明​

.nbSessions プロパティにはWeb サーバー上のアクティブセッションの最大総数 が格納されています。

スコープ: サーバーグローバルレベル

.outBytesPerHour​

outBytesPerHour : Integer

説明​

.outBytesPerHour プロパティにはWeb サーバーが1時間に送信できる最大バイト数 が格納されています。このクォータは、Web サーバーの圧縮設定に関わらず、圧縮されていないレスポンスのペイロードサイズに基づいて評価されます。

スコープ: サーバーグローバルレベル

.outBytesPerHourPerSession​

outBytesPerHourPerSession : Integer

説明​

.outBytesPerHourPerSession プロパティにはWeb サーバーがセッションに対して1時間に送信できる最大の総バイト数 が格納されています。このクォータは、Web サーバーの圧縮設定に関わらず、圧縮されていないレスポンスのペイロードサイズに基づいて評価されます。

スコープ: セッションデフォルトレベル

.outBytesPerMin​

outBytesPerMin : Integer

説明​

.outBytesPerMin プロパティにはWeb サーバーが1分間に送信できる最大バイト数 が格納されています。このクォータは、Web サーバーの圧縮設定に関わらず、圧縮されていないレスポンスのペイロードサイズに基づいて評価されます。

スコープ: サーバーグローバルレベル

.outBytesPerMinPerSession​

outBytesPerMinPerSession : Integer

説明​

.outBytesPerMinPerSession プロパティにはWeb サーバーがセッションに対して 1分間に送信できる最大の総バイト数 が格納されています。このクォータは、Web サーバーの圧縮設定に関わらず、圧縮されていないレスポンスのペイロードサイズに基づいて評価されます。

スコープ: セッションデフォルトレベル