MessageQueue.Transactional Özellik

Tanım

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 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 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

Şunlara uygulanır

Ayrıca bkz.