MessageQueue.PeekById Yöntem

Tanım

İletiyi kuyruktan kaldırmadan belirtilen ileti tanımlayıcısını içeren iletinin bir kopyasını döndürür.

Aşırı Yüklemeler

Name Description
PeekById(String)

İleti tanımlayıcısı parametresiyle eşleşen iletiye id göz atar.

PeekById(String, TimeSpan)

İleti tanımlayıcısı parametresiyle eşleşen iletiye id göz atar. İleti kuyrukta görünene veya zaman aşımı oluşana kadar bekler.

PeekById(String)

İleti tanımlayıcısı parametresiyle eşleşen iletiye id göz atar.

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

Parametreler

id
String

Göz Id atacak iletinin.

Döndürülenler

Message özelliği Id parametresiyle eşleşirid.

Özel durumlar

id parametresi null'dir.

Belirtilen id ileti yok.

Message Queuing yöntemine erişilirken bir hata oluştu.

Örnekler

Aşağıdaki kod örneğinde kullanımı gösterilmektedir 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);

Açıklamalar

Kuyruktan kaldırmadan, bilinen bir ileti tanımlayıcısı olan bir iletiyi okumak için kullanın PeekById(String) . İletinin tanımlayıcısı Message Queuing kuruluşunda benzersizdir, bu nedenle kuyrukta verilen id parametreyle eşleşen en fazla bir ileti olacaktır. Kuyruk şu anda iletiyi içermiyorsa bu aşırı yükleme bir özel durum oluşturur.

İki ek yöntem, kuyruktaki iletilere göz atmanıza olanak sağlar: Peek ve PeekByCorrelationId(String). Peek yöntemi kuyruktaki ilk iletiyi döndürür; PeekByCorrelationId(String) kuyruğa gönderilen bir iletinin sonucu olarak oluşturulan bir bildirim, rapor veya uygulama tarafından oluşturulan yanıt iletisini döndürür.

Aşağıdaki tabloda, bu yöntemin çeşitli Çalışma Grubu modlarında kullanılabilir olup olmadığı gösterilmektedir.

Çalışma grubu modu Mevcut
Yerel bilgisayar Yes
Yerel bilgisayar ve doğrudan biçim adı Yes
Uzak bilgisayar No
Uzak bilgisayar ve doğrudan biçim adı Yes

Ayrıca bkz.

Şunlara uygulanır

PeekById(String, TimeSpan)

İleti tanımlayıcısı parametresiyle eşleşen iletiye id göz atar. İleti kuyrukta görünene veya zaman aşımı oluşana kadar bekler.

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

Parametreler

id
String

Göz Id atacak iletinin.

timeout
TimeSpan

TimeSpan Yeni bir iletinin denetlenmesini bekleme süresini gösteren bir.

Döndürülenler

Message özelliği Id parametresiyle eşleşirid.

Özel durumlar

id parametresi null'dir.

parametresi için belirtilen değer geçerli değil, büyük olasılıkla değerinden timeouttimeout küçük veya büyüktürZero.InfiniteTimeout

Belirtilen id ileti kuyrukta yok ve parametresi tarafından timeout belirtilen süre dolmadan önce gelmedi.

Message Queuing yöntemine erişilirken bir hata oluştu.

Örnekler

Aşağıdaki kod örneğinde kullanımı gösterilmektedir 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));

Açıklamalar

Kuyruktan kaldırmadan, bilinen bir ileti tanımlayıcısı olan bir iletiyi okumak için kullanın PeekById(String) . İletinin tanımlayıcısı Message Queuing kuruluşunda benzersizdir, bu nedenle kuyrukta verilen id parametreyle eşleşen en fazla bir ileti olacaktır. Bu aşırı yükleme, kuyruk şu anda iletiyi içermiyorsa ve zaman aşımı gerçekleşmeden önce yeni bir ileti gelmiyorsa bir özel durum oluşturur.

timeout parametresi bu yöntem için toplam çalışma süresini belirtmez. Bunun yerine, yeni bir iletinin kuyruğa gelmesini bekleme süresini belirtir. Her yeni ileti geldiğinde, bu yöntem parametresiyle eşleşip eşleşmediğini görmek için yeni iletinin öğesini Id incelerid. Aksi takdirde, bu yöntem zaman aşımı süresini başlatır ve başka bir yeni iletinin gelmesini bekler. Bu nedenle, yeni iletiler zaman aşımı süresi içinde gelmeye devam ederse, zaman aşımı süresi dolana kadar veya parametresiyle eşleşen bir ileti gelene Id kadar bu yöntemin id süresiz olarak çalışmaya devam etmesi mümkündür.

İki ek yöntem, kuyruktaki iletilere göz atmanıza olanak sağlar: Peek ve PeekByCorrelationId(String). Peek yöntemi kuyruktaki ilk iletiyi döndürür; PeekByCorrelationId(String) kuyruğa gönderilen bir iletinin sonucu olarak oluşturulan bir bildirim, rapor veya uygulama tarafından oluşturulan yanıt iletisini döndürür.

Aşağıdaki tabloda, bu yöntemin çeşitli Çalışma Grubu modlarında kullanılabilir olup olmadığı gösterilmektedir.

Çalışma grubu modu Mevcut
Yerel bilgisayar Yes
Yerel bilgisayar ve doğrudan biçim adı Yes
Uzak bilgisayar No
Uzak bilgisayar ve doğrudan biçim adı Yes

Ayrıca bkz.

Şunlara uygulanır