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