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