GetItemExclusive
このメソッドは、セッション項目をロックし、データベースからそのセッション項目を戻します。
宣言
// C# public override SessionStateStoreData GetItemExclusive(HttpContext context, string id, out bool locked, out TimeSpan lockAge, out Object lockId, out SessionStateActions actions);
パラメータ
-
context
現在のリクエストの
HttpContext
オブジェクト。 -
id
現在のリクエストのセッションID。
-
locked
セッション項目がデータベース内で正常にロックされた場合は
true
で、それ以外の場合はfalse
であるブール値。 -
lockAge
セッション項目がデータベース内でロックされていた時間の長さを示す
TimeSpan
オブジェクト。 -
lockId
ロック識別子オブジェクト。
-
actions
セッションが初期化されず、cookieがないかどうかを示す
SessionStateActions
列挙値。
戻り値
データベースからのセッション情報を含むSessionStateStoreData
オブジェクト。
例外
ArgumentNullException
- 入力パラメータはNullです。
OracleException
- Oracle関連のエラーが発生しました。
System.Configuration.Provider.ProviderException
- セッション状態情報が無効であり、破損している可能性があります。
備考
このメソッドは、データベースからSessionStateStoreData
オブジェクトを戻し、セッション項目の失効日を更新します。このメソッドは、ページ内の属性がデフォルト値のtrueに設定されている場合にのみ呼び出されます。セッション項目は、他のリクエストによって現在使用されていない場合にのみ取得されます。リクエストの継続中は、データベース内のセッション項目がロックされます。
セッション・データが見つからない場合は、locked
パラメータがfalse
に設定され、null参照が戻されます。セッション状態サービスは、CreateNewStoreData
メソッドを呼び出して、データベースにnewsession
項目を作成します。
セッション・データがデータベースでロックされている場合は、locked
パラメータがtrue
に設定され、lockAge
パラメータは、データベースでセッション項目がロックされていた時間の長さに設定されます。lockId
パラメータはロック識別子に設定され、null参照が戻されます。セッション状態サービスは、このメソッドを0.5秒間隔で呼び出し続けます。lockAge
値がExecutionTimeout
値を超えた場合、セッション状態サービスはReleaseItemExclusive
メソッドを呼び出してロックを解除します。さらに、GetItemExclusive
メソッドを再度呼び出します。