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 belirten 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
İşlem mesajlaşması, ilgili birkaç iletinin tek bir işleme bağlanması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şlemselse, 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çim adı kullanarak uzak bilgisayardaki bir kuyruğa başvurma dışında, onun 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şlemsel olmayan bir ileti gönderirseniz, özel durum durumunda iletiyi geri alamazsınız.
MessageQueueTransaction iş parçacığı oluşturma dairesinin farkında olduğundan, daire durumunuz ise STA
işlemi birden çok iş parçacığında kullanamazsınız. Visual Basic, ana iş parçacığının durumunu olarak STA
ayarlar, 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 uygularsınız MTAThreadAttribute .
<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 | 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ı | No |