プライマリ・コンテンツに移動
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プロパティを適切に設定しておく必要があります。MessageTypeOracleAQMessageType.UDTの場合は、UdtTypeNameプロパティも設定する必要があります。

戻される配列のサイズは、dequeueCountより小さいことがあります。キューに存在するメッセージの実際の数によって異なります。

データベースのバージョンがOracle Database 12cリリース2 (12.2)より前の場合は、DequeueArrayを使用して取得される永続OracleAQMessageオブジェクトのMessageIdプロパティは常にnullです。

デキューされたバッファ・メッセージのMessageId値は、データベースのバージョンに関係なく、常にnullです。