MessageQueue.Transactional Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Kuyruğun yalnızca işlemleri kabul edip etmediğini gösteren bir değer alır.
public:
property bool Transactional { bool get(); };
[System.Messaging.MessagingDescription("MQ_Transactional")]
public bool Transactional { get; }
[<System.Messaging.MessagingDescription("MQ_Transactional")>]
member this.Transactional : bool
Public ReadOnly Property Transactional As Boolean
Özellik Değeri
true kuyruk yalnızca bir işlemin parçası olarak gönderilen iletileri kabul ederse; aksi takdirde , false.
- Öznitelikler
Özel durumlar
Message Queuing yöntemine erişilirken bir hata oluştu.
Örnekler
Aşağıdaki kod örneği, ileti kuyruğunun Transactional özelliğinin değerini görüntüler.
// Display the value of the queue's Transactional property.
Console.WriteLine("MessageQueue.Transactional: {0}",
queue.Transactional);
Açıklamalar
İşlemsel mesajlaşma, birkaç ilgili iletinin tek bir işlemle birleştirilmiş olmasını ifade eder. bir işlemin parçası olarak ileti göndermek, iletilerin sırayla teslim edilmesini, yalnızca bir kez teslim edilmesini ve hedef kuyruklarından başarıyla alınmasını sağlar.
Bir kuyruk işlem amaçlıysa, yalnızca bir işlemin parçası olarak gönderilen iletileri kabul eder. Ancak, işlemsel olmayan bir ileti, açıkça işlem , ve söz dizimi kullanılmadan yerel bir işlem BeginCommitkuyruğundan gönderilebilir veya Abort alınabilir. İşlem dışı bir ileti bir işlem kuyruğuna gönderilirse, bu bileşen, doğrudan biçimli bir ad kullanarak uzak bir bilgisayardaki kuyruğa başvurma dışında, bunun için tek iletili bir işlem oluşturur. Bu durumda, ileti gönderirken bir işlem bağlamı belirtmezseniz, sizin için bir bağlam oluşturulmaz ve ileti teslim edilemeyen ileti kuyruğuna gönderilir.
İşlem kuyruğuna işlem dışı bir ileti gönderirseniz, özel durum durumunda iletiyi geri alamazsınız.
MessageQueueTransaction iş parçacığı dairenin farkındadır, bu nedenle apartman durumunuz ise STAişlemi birden çok iş parçacığında kullanamazsınız. Visual Basic, ana iş parçacığının durumunu olarak STAayarlar, bu nedenle öğesini alt yordama Main uygulamanız MTAThreadAttribute gerekir. Aksi takdirde, başka bir iş parçacığı kullanarak işlem iletisi göndermek bir MessageQueueException özel durum oluşturur. aşağıdaki parçayı kullanarak öğesini MTAThreadAttribute uygularsınız.
<System.MTAThreadAttribute>
public sub Main()
Aşağıdaki tabloda bu özelliğin çeşitli Çalışma Grubu modlarında kullanılabilir olup olmadığı gösterilmektedir.
| Çalışma grubu modu | Mevcut |
|---|---|
| Yerel bilgisayar | Evet |
| Yerel bilgisayar ve doğrudan biçim adı | Evet |
| Uzak bilgisayar | Hayır |
| Uzak bilgisayar ve doğrudan biçim adı | Hayır |