Partilhar via


MessageQueue.Transactional Propriedade

Definição

Obtém um valor que indica se a fila aceita apenas transações.

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

true se a fila aceitar somente mensagens enviadas como parte de uma transação; caso contrário, false.

Atributos

Exceções

Ocorreu um erro ao acessar um método de Enfileiramento de Mensagens.

Exemplos

O exemplo de código a seguir exibe o valor da propriedade de uma fila de Transactional mensagens.

// Display the value of the queue's Transactional property.
Console.WriteLine("MessageQueue.Transactional: {0}",
    queue.Transactional);

Comentários

O sistema de mensagens transacional refere-se ao acoplamento de várias mensagens relacionadas em uma única transação. O envio de mensagens como parte de uma transação garante que as mensagens sejam entregues em ordem, entregues apenas uma vez e recuperadas com êxito da fila de destino.

Se uma fila for transacional, ela aceitará apenas as mensagens enviadas como parte de uma transação. No entanto, uma mensagem não transacional pode ser enviada ou recebida de uma fila de transações local sem usar explicitamente transações BeginCommite Abort sintaxe. Se uma mensagem não transacional for enviada para uma fila transacional, esse componente criará uma transação de mensagem única para ela, exceto no caso de fazer referência a uma fila em um computador remoto usando um nome de formato direto. Nessa situação, se você não especificar um contexto de transação ao enviar uma mensagem, um não será criado para você e a mensagem será enviada para a fila de mensagens mortas.

Se você enviar uma mensagem não transacional para uma fila transacional, não poderá reverter a mensagem no caso de uma exceção.

MessageQueueTransaction é threading apartment aware, portanto, se o estado do seu apartamento é STA, você não pode usar a transação em vários threads. O Visual Basic define o estado do thread principal como STA, portanto, você deve aplicar a MTAThreadAttributeMain sub-rotina. Caso contrário, enviar uma mensagem transacional usando outro thread gera uma MessageQueueException exceção. Aplique-o MTAThreadAttribute usando o fragmento a seguir.

<System.MTAThreadAttribute>
 public sub Main()

A tabela a seguir mostra se essa propriedade está disponível em vários modos de Grupo de Trabalho.

Modo de grupo de trabalho Disponível
Computador local Sim
Nome do computador local e do formato direto Sim
Computador remoto No
Computador remoto e nome do formato direto No

Aplica-se a

Confira também