概要
下図のように、セッション、リクエスト、コネクションプールには、それぞれタイムアウトを指定するプロパティがあります。
この記事は、その各プロパティについて情報をまとめたものです。
各項目の詳細
種別 | プロパティ名 | 説明 | |
クライアント側(※1) |
セッション | Default Session Timeout |
JDBC/ODBC/ADO.NETクライアントセッションが、指定秒数以上アイドル状態である場合、TDVによりクローズされます。 クローズは、指定秒数経過後「Session Idle Purge Period」の間隔でまとめて実行されます。 アイドル状態とは、アクティブなリクエストを発していない状態です。 |
リクエスト | Default Request Timeout |
リクエストとは、JDBC/ODBC/ADO.NETセッションから発行されたクエリコマンドや、その他のリクエストです。 リクエストが指定秒数の間、アイドルである場合、TDVによって自動的にクローズされます。 データを返し始めた場合であっても、クライアント接続によってアクティブに読み取られていない状態をアイドルとみなします。 リクエストの状態は、マネージャ(Studio/Web)画面のリクエスト一覧から確認することができます。 |
|
データソース側(※2) | コネクションプール | Execution Timeout |
データソースに対する実行クエリがキャンセルされるまでの秒数。 クエリの実行時間に対するタイムアウト値です。データソース定義の「詳細」タブで設定します。設定されていない場合は、構成ダイアログの Default Execution Timeout で設定された値が適用されます。 |
Connection Pool Idle Timeout |
Connection Pool Minimum Size 以上のコネクションがある場合に、プールからドロップされずにアイドル状態を維持できる秒数。この値を超過したコネクションはクローズされます。 |
||
Maximum Connection Lifetime |
コネクションの最大存続時間(分)です。設定時間を超えると、コネクションオブジェクトは破棄されます。存続時間は接続が生成されてからカウントされます。 |
※1 TDV Studio [管理] → [構成...] で、構成ダイアログから設定します。
※2 個別のデータソース定義の、[詳細]タブで設定します。
Connection Pool Idle Timeout と Maximum Connection Lifetime の違いについて
データソース側の Connection Pool Idle Timeout と Maximum Connection Lifetime は、どちらもコネクションプール内のコネクションの期間を管理するものです。似ていますが、それぞれ焦点が異なります:
Connection Pool Idle Timeout は、プール内のアイドルコネクション数を制御するために、主にそのアイドル性に基づいて接続を管理します。
Maximum Connection Lifetime は、アクティビティに関係なくコネクションの最大存続時間を規定し、長寿命コネクションを防ぎます。
■ Connection Pool Idle Timeout
このプロパティは、主にアイドル状態に基づいてコネクションを管理します。 このタイムアウトを超えてコネクションがアイドル状態である場合、リソースを解放するためにプールからコネクションが削除されていきます。
プール サイズが需要に基づいて変動する中で、アイドル状態のコネクション数を管理するができます。 アイドル状態のコネクションが増えることによる、リソースの消費を防ぐことができます。
■ Maximum Connection Lifetime
このプロパティは、プール内のコネクションの最大存続時間 (分単位) を指定します。
主な目的は、接続が定期的に更新またはクローズされるようにして、メモリリークやセキュリティ脆弱性などの問題を引き起こす可能性のある、長期間の接続を防ぐことです。
存続時間を超えたコネクションが、その時アクティブに使用されていた場合は、実行中のリクエストが終了したタイミングで破棄されます。