| Oracle® Data Provider for .NET開発者ガイド ODAC 12.2c リリース1 (12.2.0.1) for Microsoft Windows E88311-03 |
|
![]() 前 |
![]() 次 |
このインスタンス・メソッドは、指定されたデキュー・オプションを使用してキューから複数のメッセージをデキューします。
宣言
// C# public OracleAQMessage[] DequeueArray(int dequeueCount, OracleAQDequeueOptions dequeueOptions);
パラメータ
dequeueCount
デキューするメッセージの数を指定するinteger。
dequeueOptions
OracleAQDequeueOptionsオブジェクト。
戻り値
デキューされたメッセージを表すOracleAQMessageインスタンスの配列。
例外
ArgumentOutOfRangeException - dequeueCountが0以下です。
InvalidOperationException - 接続がオープンされていません。
ObjectDisposedException - オブジェクトはすでに処理されています。
OracleException: タイムアウトした場合、「ORA-25228: queue_nameからメッセージをデキュー中に、タイムアウトまたはフェッチ終了になりました。」 というメッセージとともに例外がスローされます。DequeueOptions.Waitが-1以外の値に設定されていると、タイムアウトが発生することがあります。
備考
このメソッドは、Oracle Database 10gリリース1(10.1)以上のリリースでサポートされます。このメソッドをコールしても、キューのDequeueOptionsプロパティは変更されません。
指定したdequeueOptionsオブジェクトがnullの場合は、デキュー・オプションのデフォルト値が使用されます。この操作では、キュー・オブジェクトのDequeueOptionsプロパティは無視されます。
このファンクションをコールする前にMessageTypeプロパティを適切に設定しておく必要があります。MessageTypeがOracleAQMessageType.UDTの場合は、UdtTypeNameプロパティも設定する必要があります。
戻される配列のサイズは、dequeueCountより小さいことがあります。キューに存在するメッセージの実際の数によって異なります。
データベースのバージョンがOracle Database 12cリリース2 (12.2)より前の場合は、DequeueArrayを使用して取得される永続OracleAQMessageオブジェクトのMessageIdプロパティは常にnullです。
デキューされたバッファ・メッセージのMessageId値は、データベースのバージョンに関係なく、常にnullです。