5.1.4.5 GetItem

このメソッドは、データベースから読取り専用セッション項目を戻します。

宣言

// C#
public override SessionStateStoreData GetItem(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オブジェクトを戻し、セッション項目の失効日を更新します。このメソッドは、リクエストの先頭でセッション状態サービスによって呼び出されます。ページのEnableSessionState属性がReadOnlyに設定されている場合にのみ呼び出されます。

セッション・データが見つからない場合は、lockedパラメータがfalseに設定され、null参照が戻されます。セッション状態サービスは、CreateNewStoreDataメソッドを呼び出して、データベースに新しいセッション項目を作成します。

セッション・データがデータベースでロックされている場合は、lockedパラメータがtrueに設定され、lockAgeパラメータは、データベースでセッション項目がロックされていた時間の長さに設定されます。lockIdパラメータはロック識別子に設定され、null参照が戻されます。セッション状態サービスは、このメソッドを0.5秒間隔で呼び出し続けます。lockAge値がHttpRuntimeSection.ExecutionTimeout値を超えた場合、セッション状態サービスはReleaseItemExclusiveメソッドを呼び出してロックを解除します。さらに、GetItemメソッドを再度呼び出します。