9.1.2.3 OracleDependency(OracleCommand, bool, int, bool)
このコンストラクタでは、OracleDependency
クラスのインスタンスを作成し、指定されたOracleCommand
インスタンスにバインドします。このとき、通知時にその登録が削除されるかどうか、通知登録のタイムアウト値、および通知の継続期間を指定します。
宣言
// C# public OracleDependency (OracleCommand cmd, bool isNotifiedOnce, long timeout, bool isPersistent)
パラメータ
-
cmd
連続問合せ通知要求に関連付けられるコマンド。
-
isNotifiedOnce
通知の発生後に、登録が自動的に削除されるかどうかを示すインジケータ。
-
timeout
秒数で表した、登録が有効な時間。
timeout
が0
に設定されている場合、登録が期限切れになることはありません。timeout
の有効値は、0
から4294967295
です。 -
isPersistent
配信前に、無効化メッセージがデータベース内で永続的にキューされるかどうかを示します。
isPersistent
パラメータがTrue
に設定されている場合、メッセージはデータベース内で永続的にキューされ、データベースがクラッシュおよびシャットダウンした際にも失われることはありません。isPersistent
プロパティがFalse
に設定されている場合、メッセージは配信前にインメモリー・キューに格納されるため、失われる可能性があります。メッセージがデータベース・キューではなくインメモリー・キューに格納されることで、データベース・パフォーマンスは向上します。
例外
ArgumentNullException
- cmd
パラメータがNULLです。
ArgumentOutOfRangeException
- 指定されたtimeout
が無効です。
InvalidOperationException
- 指定されたOracleCommand
インスタンスには、すでに通知要求が含まれています。
備考
このOracleDependency
コンストラクタによりOracleCommand
インスタンスがOracleDependency
インスタンスにバインドされると、OracleNotificationRequest
インスタンスが作成され、OracleCommand.
Notification
プロパティにそのOracleNotificationRequest
インスタンスが設定されます。
連続問合せ通知は、コマンド実行時にデータベースに登録されます。コマンド実行メソッド(ExecuteNonQuery
やExecuteReader
など)により、通知要求が登録されます。OracleDependency
は、複数のOracleCommand
にバインドできます。これらのOracleCommand
オブジェクト文のいずれかが実行されると、関連付けられているOracleCommand
にその文が登録されます。個々のOracleCommand
の登録は個別に発生しますが、OracleDependency
が関連付けられているすべてのOracleCommand
オブジェクトに対して発生する、通知の検出および送信は1つのOracleDependency
で行うことができます。OnChange
イベントのアプリケーションに渡されるOnChangeEventArgs
では、データベース内での変更に関する情報を提供します。
このコンストラクタによって作成されるOracleNotificationRequest
インスタンスのプロパティのデフォルト値は、次のとおりです。
-
IsNotifiedOnce
は指定された値に設定されます。 -
Timeout
は指定された値に設定されます。 -
IsPersistent
は指定された値に設定されます。