プライマリ・コンテンツに移動

Oracle® Data Provider for .NET開発者ガイド ODAC 12.2c リリース1 (12.2.0.1) for Microsoft Windows E88311-03 |
| 目次 | 索引

前 | 次 |

# DequeueArray(int, OracleAQDequeueOptions)

このインスタンス・メソッドは、指定されたデキュー・オプションを使用してキューから複数のメッセージをデキューします。

宣言

    // 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`です。

関連項目:

- Oracle.DataAccess.ClientおよびOracle.ManagedDataAccess.Clientのネームスペース

- OracleAQQueueクラス

- OracleAQQueueメンバー