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は指定された値に設定されます。