MessageQueue.PeekById メソッド

定義

指定したメッセージ ID を持つメッセージのコピーを返します。メッセージはキューから削除されません。

オーバーロード

PeekById(String)

メッセージ ID が id パラメーターと一致するメッセージをピークします。

PeekById(String, TimeSpan)

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

PeekById(String)

メッセージ ID が id パラメーターと一致するメッセージをピークします。

public:
 System::Messaging::Message ^ PeekById(System::String ^ id);
public System.Messaging.Message PeekById (string id);
member this.PeekById : string -> System.Messaging.Message
Public Function PeekById (id As String) As Message

パラメーター

id
String

ピークするメッセージの Id

戻り値

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

例外

id パラメーターが null です。

指定した id を持つメッセージが存在しません。

メッセージ キューのメソッドにアクセスしたときにエラーが発生しました。

次のコード例は、PeekById(String) の使用方法を示します。


// Connect to a queue on the local computer.
MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue");

// Create a new message.
Message^ msg = gcnew Message("Example Message Body");

// Send the message.
queue->Send(msg, "Example Message Label");

// Get the message's Id property value.
String^ id = msg->Id;

// Simulate doing other work so the message has time to arrive.
System::Threading::Thread::Sleep(TimeSpan::FromSeconds(10.0));

// Peek at the message.
msg = queue->PeekById(id);

queue->Close();

// Connect to a queue on the local computer.
MessageQueue queue = new MessageQueue(".\\exampleQueue");

// Create a new message.
Message msg = new Message("Example Message Body");

// Send the message.
queue.Send(msg, "Example Message Label");

// Get the message's Id property value.
string id = msg.Id;

// Simulate doing other work so the message has time to arrive.
System.Threading.Thread.Sleep(TimeSpan.FromSeconds(10.0));

// Peek at the message.
msg = queue.PeekById(id);

注釈

を使用して PeekById(String) 、既知のメッセージ識別子を持つメッセージをキューから削除せずに読み取ります。 メッセージの識別子はメッセージ キュー エンタープライズ全体で一意であるため、指定 id されたパラメーターと一致するメッセージがキューに最大 1 つ存在します。 キューに現在メッセージが含まれていない場合、このオーバーロードは例外をスローします。

2 つの追加メソッドを使用すると、キュー内のメッセージをピークできます。 PeekPeekByCorrelationId(String)。 メソッドは Peek 、キュー内の最初のメッセージを返します PeekByCorrelationId(String) 。キューに送信されたメッセージの結果として作成された受信確認、レポート、またはアプリケーションによって生成された応答メッセージを返します。

次の表は、このメソッドがさまざまなワークグループ モードで使用できるかどうかを示しています。

ワークグループ モード 利用可能
ローカル コンピューター はい
ローカル コンピューターと直接の形式名 はい
リモート コンピューター いいえ
リモート コンピューターと直接形式の名前 はい

こちらもご覧ください

適用対象

PeekById(String, TimeSpan)

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

public:
 System::Messaging::Message ^ PeekById(System::String ^ id, TimeSpan timeout);
public System.Messaging.Message PeekById (string id, TimeSpan timeout);
member this.PeekById : string * TimeSpan -> System.Messaging.Message
Public Function PeekById (id As String, timeout As TimeSpan) As Message

パラメーター

id
String

ピークするメッセージの Id

timeout
TimeSpan

新しいメッセージを検査できるようになるまでの待機時間を示す TimeSpan

戻り値

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

例外

id パラメーターが null です。

timeout パラメーターに指定した値が無効です。timeoutZero よりも小さいか、InfiniteTimeout よりも大きい可能性があります。

指定した id のメッセージがキューに存在せず、timeout パラメーターで指定した時間が経過する前にキューに到達しませんでした。

メッセージ キューのメソッドにアクセスしたときにエラーが発生しました。

次のコード例は、PeekById(String, TimeSpan) の使用方法を示します。


// Connect to a queue on the local computer.
MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue");

// Create a new message.
Message^ msg = gcnew Message("Example Message Body");

// Send the message.
queue->Send(msg, "Example Message Label");

// Get the message's Id property value.
String^ id = msg->Id;

// Peek at the message.
msg = queue->PeekById(id, TimeSpan::FromSeconds(10.0));

queue->Close();

// Connect to a queue on the local computer.
MessageQueue queue = new MessageQueue(".\\exampleQueue");

// Create a new message.
Message msg = new Message("Example Message Body");

// Send the message.
queue.Send(msg, "Example Message Label");

// Get the message's Id property value.
string id = msg.Id;

// Peek at the message.
msg = queue.PeekById(id, TimeSpan.FromSeconds(10.0));

注釈

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

パラメーターは timeout 、このメソッドの合計実行時間を指定しません。 代わりに、新しいメッセージがキューに到着するまでの時間を指定します。 新しいメッセージが到着するたびに、このメソッドは新しいメッセージの を Id 調べて、 パラメーターと一致 id するかどうかを確認します。 そうでない場合、このメソッドはタイムアウト期間を開始し、別の新しいメッセージが到着するまで待機します。 そのため、タイムアウト期間内に新しいメッセージが引き続き到着する場合は、タイムアウト期間が切れるまで、またはパラメーターに一致idするメッセージがId到着するまで、このメソッドを無期限に実行し続けることができます。

2 つの追加メソッドを使用すると、キュー内のメッセージをピークできます。 PeekPeekByCorrelationId(String)。 メソッドは Peek 、キュー内の最初のメッセージを返します PeekByCorrelationId(String) 。キューに送信されたメッセージの結果として作成された受信確認、レポート、またはアプリケーションによって生成された応答メッセージを返します。

次の表は、このメソッドがさまざまなワークグループ モードで使用できるかどうかを示しています。

ワークグループ モード 利用可能
ローカル コンピューター はい
ローカル コンピューターと直接の形式名 はい
リモート コンピューター いいえ
リモート コンピューターと直接形式の名前 はい

こちらもご覧ください

適用対象