5.1.4.6 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メソッドを再度呼び出します。