MessageQueue.Transactional Propriedade

Definição

Recebe 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 de Propriedade

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

Atributos

Exceções

Ocorreu um erro ao aceder a um método de Fila de Mensagens.

Exemplos

O seguinte exemplo de código mostra o valor da propriedade de Transactional uma fila de mensagens.

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

Observações

A mensagem transacional refere-se ao acoplamento de várias mensagens relacionadas numa única transação. Enviar mensagens como parte de uma transação garante que as mensagens são entregues por ordem, entregues apenas uma vez e recuperadas com sucesso da fila de destino.

Se uma fila for transacional, aceita apenas 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 a sintaxe transacional Begin, Commit, e Abort . Se uma mensagem não transacional for enviada para uma fila transacional, este componente cria uma transação de mensagem única para ela, exceto no caso de referenciar uma fila num computador remoto usando um nome de formato direto. Nesta situação, se não especificar um contexto de transação ao enviar uma mensagem, não é criado um para si e a mensagem será enviada para a fila de letras mortas.

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

MessageQueueTransaction está a threading apartment scient, por isso, se o estado do teu apartamento for STA, não podes usar a transação em múltiplos threads. Visual Basic define o estado do thread principal para STA, por isso deve aplicar o MTAThreadAttribute na sub-rotina Main. Caso contrário, enviar uma mensagem transacional usando outro thread gera uma MessageQueueException exceção. Aplica-se MTAThreadAttribute usando o seguinte fragmento.

<System.MTAThreadAttribute>
 public sub Main()

A tabela seguinte mostra se esta propriedade está disponível em vários modos de Grupo de Trabalho.

Modo de grupo de trabalho Available
Computador local Yes
Computador local e nome do formato direto Yes
Computador remoto No
Computador remoto e nome do formato direto No

Aplica-se a

Ver também