MessageQueue.Transactional Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene un valor que indica si la cola acepta solo transacciones.
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
Valor de propiedad
Es true
si la cola acepta solo los mensajes enviados como parte de una transacción; de lo contrario, es false
.
- Atributos
Excepciones
Error al obtener acceso a un método de Message Queuing.
Ejemplos
En el ejemplo de código siguiente se muestra el valor de la propiedad de una cola de Transactional mensajes.
// Display the value of the queue's Transactional property.
Console.WriteLine("MessageQueue.Transactional: {0}",
queue.Transactional);
Comentarios
La mensajería transaccional hace referencia al acoplamiento de varios mensajes relacionados en una sola transacción. El envío de mensajes como parte de una transacción garantiza que los mensajes se entregan en orden, se entregan una sola vez y se recuperan correctamente de su cola de destino.
Si una cola es transaccional, solo acepta mensajes que se envían como parte de una transacción. Sin embargo, se puede enviar o recibir un mensaje no transaccional desde una cola de transacciones local sin usar explícitamente la sintaxis transaccional Begin, Commity Abort . Si se envía un mensaje no transaccional a una cola transaccional, este componente crea una transacción de un solo mensaje para ella, excepto en el caso de hacer referencia a una cola en un equipo remoto mediante un nombre de formato directo. En esta situación, si no especifica un contexto de transacción al enviar un mensaje, no se crea uno automáticamente y el mensaje se enviará a la cola de mensajes fallidos.
Si envía un mensaje no transaccional a una cola transaccional, no podrá revertir el mensaje en caso de una excepción.
MessageQueueTransaction es compatible con el departamento de subprocesos, por lo que si el estado del apartamento es STA
, no puede usar la transacción en varios subprocesos. Visual Basic establece el estado del subproceso STA
principal en , por lo que debe aplicar en MTAThreadAttribute la Main
subrutina. De lo contrario, al enviar un mensaje transaccional mediante otro subproceso se producirá una excepción MessageQueueException. El elemento MTAThreadAttribute se aplica mediante el fragmento siguiente.
<System.MTAThreadAttribute>
public sub Main()
En la tabla siguiente se muestra si esta propiedad está disponible en varios modos de grupo de trabajo.
Modo de grupo de trabajo | Disponible |
---|---|
Equipo local | Sí |
Equipo local y nombre de formato directo | Sí |
Equipo remoto | No |
Equipo remoto y nombre de formato directo | No |