ヘッダーをスキップ
Oracle® Providers for ASP.NET 開発者ガイド
11gリリース2 (11.2.0.3)for Microsoft Windows
B62266-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

OracleSessionStateStoreクラス

OracleSessionStateStoreクラスにより、ASP.NETアプリケーションは、セッション情報をOracleデータベースに格納できます。

クラスの継承

System.Object

  System.Configuration.Provider.ProviderBase

    System.Web.SessionState.SessionStateStoreProviderBase

      Oracle.Web.SessionState

宣言

// C#
public class OracleSessionStateStore : SessionStateStoreProviderBase

スレッド安全性

すべてのパブリック静的メソッドはスレッドセーフですが、インスタンス・メンバーがスレッドセーフであることは保証されません。

備考

このクラスにより、ASP.NETアプリケーションは、Oracleデータベースにセッション状態情報を格納し、管理できます。このプロバイダが管理するセッション情報は、データベース・セッション情報ではなくアプリケーション・セッション情報を管理することに注意してください。

期限切れのセッション・データはデータベースから定期的に削除されます。

次に、OracleSessionStateStoreをデフォルト・プロバイダとして使用し、カスタマイズされた設定とアプリケーション固有の接続文字列を使用するASP.NETアプリケーションのweb.configの例を示します。

<?xml version="1.0"?>
<configuration xmlns=
  "http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <connectionStrings>
    <add name="my_sessionstate_app_con_string" connectionString=
      "User Id=scott;Password=tiger;Data Source=Oracle"/>
  </connectionStrings>
  <system.web>
    <!-- Enable and customize OracleSessionStateProvider -->
    <sessionState mode="Custom" customProvider="MyOracleSessionStateStore">
      <providers>
        <add name="MyOracleSessionStateStore" 
             type="Oracle.Web.SessionState.OracleSessionStateStore, 
             Oracle.Web, Version=2.112.2.0, Culture=neutral, 
             PublicKeyToken=89b483f429c47342" 
             connectionStringName="my_sessionstate_app_con_string"/>
      </providers>
    </sessionState>
  </system.web>
</configuration>

要件

ネームスペース: Oracle.Web.SessionState

アセンブリ: Oracle.Web.dll

Oracle Providers for ASP.NETのバージョン: Oracle Providers for ASP.NET 2.0およびOracle Providers for ASP.NET 4


OracleSessionStateStoreメンバー

次の表にOracleSessionStateStoreメンバーをリストします。

OracleSessionStateStoreコンストラクタ

OracleSessionStateStoreコンストラクタを、表5-1にリストします。

表5-1 OracleSessionStateStoreコンストラクタ

コンストラクタ 説明

OracleSessionStateStoreコンストラクタ

OracleSessionStateStoreクラスの新規インスタンスをインスタンス化します


OracleSessionStateStoreパブリック・プロパティ

OracleSessionStateStoreパブリック・プロパティを、表5-2にリストします。

表5-2 OracleSessionStateStoreパブリック・プロパティ

パブリック・プロパティ 説明

CommandTimeout


コマンドが例外で実行を終了するまでに実行可能な秒数を取得します

Description

System.Configuration.Provider.Providerbaseからの継承

Name

System.Configuration.Provider.Providerbaseからの継承


OracleSessionStateStoreパブリック・メソッド

OracleSessionStateStoreパブリック・メソッドを、表5-3にリストします。

表5-3 OracleSessionStateStoreパブリック・メソッド

パブリック・メソッド 説明

CreateNewStoreData


現在のリクエストに対して新しいSessionStateStoreDataオブジェクトを作成します

CreateUninitializedItem


データベースに新しいセッション状態項目を追加します

Dispose


このインスタンスのすべてのリソースを解放します

EndRequest


OracleSessionStateStoreオブジェクトが、現在のリクエストに必要な可能性のあるクリーンアップを実行できるようにします

GetItem


データベースから読取り専用セッション項目を戻します

GetItemExclusive


データベースのセッション項目をロックして戻します

Initialize


ASP.NETアプリケーションの構成ファイルで指定されたプロパティ値でプロバイダを初期化します

InitializeRequest


OracleSessionStateStoreプロバイダが必要とするリクエストごとの初期化を実行します

ReleaseItemExclusive


セッション項目の取得試行が複数回失敗した場合に、データベース内のセッション項目に対するロックを解除します

RemoveItem


指定されたセッション項目をデータベースから削除します

ResetItemTimeout


データベース内のセッション項目の失効日とタイムアウトをリセットします

SetAndReleaseItemExclusive


指定されたセッション項目でデータベース内のセッション時間情報を更新し、ロックを解除します

SetItemExpireCallback


期限切れのセッションのコールバックがサポートされていないことを示すfalse値を戻します



OracleSessionStateStoreコンストラクタ

OracleSessionStateStoreコンストラクタでは、OracleSessionStateStoreクラスの新規インスタンスをインスタンス化します。

オーバーロード・リスト:

OracleSessionStateStore()

このコンストラクタでは、OracleSessionStateStoreクラスの新規インスタンスがインスタンス化されます。

宣言

// C#
public OracleSessionStateStore();

備考

このコンストラクタでは、OracleSessionStateStoreクラスの新規インスタンスが作成されます。


OracleSessionStateStoreパブリック・プロパティ

OracleSessionStateStoreパブリック・プロパティを、表5-4にリストします。

表5-4 OracleSessionStateStoreパブリック・プロパティ

パブリック・プロパティ 説明

CommandTimeout


コマンドが例外で実行を終了するまでに実行可能な秒数を取得します

Description

System.Configuration.Provider.Providerbaseからの継承

Name

System.Configuration.Provider.Providerbaseからの継承


CommandTimeout

このプロパティは、コマンドが例外で実行を終了するまでに実行可能な秒数を取得します。

宣言

// C#
public int CommandTimeout {get;}
 

プロパティ値

int

備考

プロバイダをカスタマイズするために、ASP.NET開発者は、commandTimeout属性を使用してweb.configファイルでこのプロパティに整数値を設定できます。

デフォルト値は30秒です。構成ファイルの属性名は、大文字と小文字が区別されます。


OracleSessionStateStoreパブリック・メソッド

OracleSessionStateStoreパブリック・メソッドを、表5-5にリストします。

表5-5 OracleSessionStateStoreパブリック・メソッド

パブリック・メソッド 説明

CreateNewStoreData


現在のリクエストに対して新しいSessionStateStoreDataオブジェクトを作成します

CreateUninitializedItem


データベースに新しいセッション状態項目を追加します

Dispose


このインスタンスのすべてのリソースを解放します

EndRequest


OracleSessionStateStoreオブジェクトが、現在のリクエストに必要な可能性のあるクリーンアップを実行できるようにします

GetItem


データベースから読取り専用セッション項目を戻します

GetItemExclusive


データベースのセッション項目をロックして戻します

Initialize


ASP.NETアプリケーションの構成ファイルで指定されたプロパティ値でプロバイダを初期化します

InitializeRequest


OracleSessionStateStoreプロバイダが必要とするリクエストごとの初期化を実行します

ReleaseItemExclusive


セッション項目の取得試行が複数回失敗した場合に、データベース内のセッション項目に対するロックを解除します

RemoveItem


指定されたセッション項目をデータベースから削除します

ResetItemTimeout


データベース内のセッション項目の失効日とタイムアウトをリセットします

SetAndReleaseItemExclusive


指定されたセッション項目でデータベース内のセッション時間情報を更新し、ロックを解除します

SetItemExpireCallback


期限切れのセッションのコールバックがサポートされていないことを示すfalse値を戻します


CreateNewStoreData

このメソッドは、現在のリクエストに対して新しいSessionStateStoreDataオブジェクトを作成します。

宣言

// C#
public override SessionStateStoreData CreateNewStoreData(HttpContext context, 
   int timeout);

パラメータ

戻り値

現在のリクエストに対する新しいSessionStateStoreDataオブジェクト。

備考

このメソッドは、HttpContextとタイムアウト値に基づいて、現在のリクエストに対して新しいSessionStateStoreDataオブジェクトを作成します。リクエストにセッションIDが含まれていない場合、またはデータベースに見つからないセッションのセッションIDがリクエストに含まれている場合は、SessionStateModuleがASP.NETページに対するリクエストの先頭でこのメソッドを呼び出します。このメソッドは、空のISessionStateItemCollectionオブジェクト、HttpStaticObjectsCollectionコレクションおよび指定されたタイムアウト値で新しいSessionStateStoreDataオブジェクトを作成します。

CreateUninitializedItem

このメソッドは、データベースに新しいセッション状態項目を追加します。

宣言

// C#
public override void CreateUninitializedItem(HttpContext context, string id,
  int timeout);

パラメータ

例外

ArgumentNullException: 入力パラメータはNullです。

OracleException - Oracle関連のエラーが発生しました。

備考

このメソッドは、データベースに初期化されていないセッション状態エントリを追加し、cookieless属性とregenerateExpiredId属性がどちらもtrueに設定されている場合に呼び出されます。

新しいセッションIDを作成した後で、このメソッドが呼び出され、この新しいセッションIDを持つ初期化されていないエントリがデータベースに格納されます。ブラウザは、新しいセッションIDを含むURLにリダイレクトされます。新しいセッションIDはデータベースに存在するため、期限切れのセッションIDと競合しません。

Dispose

このメソッドは、このインスタンスのすべてのリソースを解放します。

宣言

// C#
public override void Dispose();

備考

このメソッドは、アプリケーション・ドメインが閉じられたときにこのインスタンスのすべてのリソースを解放します。

EndRequest

このメソッドは、OracleSessionStateStoreオブジェクトが現在のリクエストに必要な可能性のあるクリーンアップを実行できるようにします。

宣言

// C#
public override void EndRequest(HttpContext context);

パラメータ

備考

このメソッドは、リクエストの最後にSessionStateModuleオブジェクトによって呼び出されます。

GetItem

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

宣言

// C#
public override SessionStateStoreData GetItem(HttpContext context, string id, 
   out bool locked, out TimeSpan lockAge, out Object lockId, 
   out SessionStateActions actions);

パラメータ

戻り値

データベースからのセッション情報を含む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メソッドを再度呼び出します。

GetItemExclusive

このメソッドは、セッション項目をロックし、データベースからそのセッション項目を戻します。

宣言

// C#
public override SessionStateStoreData GetItemExclusive(HttpContext context, 
   string id, out bool locked, out TimeSpan lockAge, out Object lockId, 
   out SessionStateActions actions);

パラメータ

戻り値

データベースからのセッション情報を含む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メソッドを再度呼び出します。

Initialize

このメソッドは、プロバイダを、ASP.NETアプリケーション構成ファイル(web.config)で指定されたプロパティ値で初期化します。

宣言

// C#
public override void Initialize(string name, NameValueCollection config);

パラメータ

例外

ArgumentNullException - configパラメータがnullです。

System.Configuration.Provider.ProviderException - connectionStringName属性が空であるか、構成ファイルに存在しません。または、構成ファイルに無効な属性が見つかりました。

備考

Initializeメソッドは、アプリケーションによって直接呼び出されることを意図していません。

InitializeRequest

このメソッドは、OracleSessionStateStoreプロバイダが必要とするリクエストごとの初期化を実行します。

宣言

// C#
public override void InitializeRequest(HttpContext context);

パラメータ

例外

ArgumentNullException - contextパラメータがnullです。

備考

このメソッドは、他のメソッドを呼び出す前にセッション状態サービスによって呼び出されます。

ReleaseItemExclusive

このメソッドは、セッション項目の取得試行が複数回失敗した場合に、データベース内のセッション項目に対するロックを強制的に解除します。

宣言

// C#
public override void ReleaseItemExclusive(HttpContext context, string id,
    Object lockId);

パラメータ

例外

ArgumentNullException: 入力パラメータはNullです。

OracleException - Oracle関連のエラーが発生しました。

備考

このメソッドは、データベース内のセッション項目に対するロックを解除し、失効日を更新するために、セッション状態サービスによって呼び出されます。SessionStateModuleは、セッション値が変更されていない場合、またはロックがHttpRuntimeSection.ExecutionTimeoutプロパティ値を超えている場合に、リクエストの最後にこのメソッドを呼び出します。

RemoveItem

このメソッドは、指定されたセッション項目をデータベースから削除します。

宣言

// C#
public override void RemoveItem(HttpContext context, string id, Object lockId,
   SessionStateStoreData item);

パラメータ

例外

ArgumentNullException: 入力パラメータはNullです。

OracleException - Oracle関連のエラーが発生しました。

備考

セッション状態サービスは、このメソッドを呼び出して、指定されたセッション項目をデータベースから削除します。アプリケーションは、Session.Abandonメソッドを呼び出して、セッションを取り消すことができます。

ResetItemTimeout

このメソッドは、データベース内のセッション項目の失効日とタイムアウトをリセットします。

宣言

// C#
public override void ResetItemTimeout(HttpContext context, string id);

パラメータ

例外

ArgumentNullException: 入力パラメータはNullです。

OracleException - Oracle関連のエラーが発生しました。

備考

セッション状態サービスは、このメソッドを呼び出して、データベース内のセッション項目の失効日とタイムアウトを現在の日時にリセットします。

SetAndReleaseItemExclusive

このメソッドは、指定されたセッション項目でデータベース内のセッション時間情報を更新し、ロックを解除します。

宣言

// C#
public override void SetAndReleaseItemExclusive(HttpContext context, string id,
   SessionStateStoreDataItem item, Object lockId, bool newItem);

パラメータ

例外

ArgumentNullException: 入力パラメータはNullです。

OracleException - Oracle関連のエラーが発生しました。

備考

セッション項目が変更された場合、セッション状態サービスは、リクエストの最後にこのメソッドを呼び出して、指定されたセッション値でデータベース内に新規項目を作成するか、既存のセッション項目を更新します。このメソッドは、セッション項目の期限も更新し、セッション・データに対するロックを解除します。

SetItemExpireCallback

このメソッドは、期限切れのセッションのコールバックがサポートされないことを示すfalse値を戻します。

宣言

// C#
public override bool SetItemExpireCallback(SessionStateItemExpireCallback 
  expireCallback);

パラメータ

戻り値

false値。

備考

このメソッドは、期限切れのセッションのコールバックがサポートされないことを示すfalse値を常に戻します。