次の方法で共有


MessageQueue.PeekById メソッド (String, TimeSpan)

メッセージ ID が id パラメータと一致するメッセージをピークします。メッセージがキューに出現するか、タイムアウトが発生するまで待機します。

Overloads Public Function PeekById( _
   ByVal id As String, _   ByVal timeout As TimeSpan _) As Message
[C#]
public Message PeekById(stringid,TimeSpantimeout);
[C++]
public: Message* PeekById(String* id,TimeSpantimeout);
[JScript]
public function PeekById(
   id : String,timeout : TimeSpan) : Message;

パラメータ

  • id
    ピークするメッセージの Id
  • timeout
    キューにメッセージが到達するまで待機する最大時間を示す TimeSpan

戻り値

id パラメータと一致する Id プロパティを持つ Message

例外

例外の種類 条件
ArgumentNullException id パラメータが null 参照 (Visual Basic では Nothing) です。
ArgumentException timeout パラメータに指定した値が不正です。 timeoutTimeSpan.Zero よりも小さいか、 TimeSpan.MaxValue よりも大きい可能性があります。
InvalidOperationException 指定した id のメッセージがキューに存在せず、 timeout パラメータで指定した時間が経過する前にキューに到達しませんでした。
MessageQueueException メッセージ キューの API にアクセスしたときにエラーが発生しました。

解説

PeekById を使用して、既知のメッセージ ID を持つメッセージをキューから削除せずに読み取ります。メッセージの ID は、メッセージ キュー エンタープライズを通じて一意です。そのため、指定された id パラメータと一致するメッセージは、キューに 1 つしか存在しません。現在、キューにメッセージが含まれていない場合、タイムアウトが発生する前にメッセージが到達しない場合、このオーバーロードは例外をスローします。

キューのメッセージをピークするメソッドは、他に 2 つあります。 PeekPeekByCorrelationId です。 Peek メソッドは、キューの最初のメッセージを返します。 PeekByCorrelationId メソッドは、メッセージがキューに送信されたときに作成された、受信確認、レポート、アプリケーション生成の応答のメッセージを返します。

このメソッドが各種のワークグループ モードで使用できるかどうかを次の表に示します。

ワークグループ モード 使用可否
ローカル コンピュータ はい
ローカル コンピュータ + 直接書式名 はい
リモート コンピュータ いいえ
リモート コンピュータ + 直接書式名 はい

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

MessageQueue クラス | MessageQueue メンバ | System.Messaging 名前空間 | MessageQueue.PeekById オーバーロードの一覧 | InfiniteTimeout | Id | Peek | PeekByCorrelationId | ReceiveById | BeginPeek