Aracılığıyla paylaş


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

PeekById(String)

İleti tanımlayıcısı parametresiyle eşleşen iletiyi özetler id .

PeekById(String, TimeSpan)

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

PeekById(String)

İleti tanımlayıcısı parametresiyle eşleşen iletiyi özetler 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

Parametreler

id
String

Göz Id atacak iletinin.

Döndürülenler

MessageId özelliği parametresiyle eşleşirid.

Özel durumlar

id parametresidirnull.

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 Kullanılabilir
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 iletiyi özetler id . İ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 İnceleme için yeni bir ileti sağlanana kadar beklenebilecek süreyi gösteren bir.

Döndürülenler

MessageId özelliği parametresiyle eşleşirid.

Özel durumlar

id parametresidirnull.

parametresi için timeout belirtilen değer geçerli değil, büyük olasılıkla timeout değerinden Zero küçük veya büyüktür 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 gelmezse 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 yeni iletinin parametresiyle eşleşip eşleşmediğini id görmek için iletisini 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 süresiz olarak çalışmaya devam etmesi id 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 Kullanılabilir
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