Partilhar via


Como: Enviar mensagens em transações internas

Transações internas envolvem apenas recursos de enfileirar de mensagens e são gerenciadas totalmente a partir no enfileirar com o MessageQueueTransaction. Criar uma instância de MessageQueueTransaction para manipular o processo de transações e passá-lo para a mensagem está escolhendo enviar sistema autônomo uma transação.

Os seguintes métodos controle processo transacional:

Método

Usado para

Begin

Indica o início de uma transação que consiste em um ou mais operações e mensagens.

Commit

Confirme a transação se todas as operações de mensagem continha foram executadas com êxito.

Abort

Reverter uma transação durante erro - verificação.

Observação:

Uma fila desconectada ou completa não é considerada uma falha.

Na maioria dos casos, seu código transacional deve ser colocado dentro de um Try... Catch... Finally instrução (Visual Basic) (ou try-catch-finally (C# Referência)). Isso permite que você especifique a transação no Try parte da demonstrativo e use o Catch demonstrativo para emitir a Abort método se ocorrerem erros. Consulte o código abaixo para obter um exemplo desse padrão.

Para enviar mensagens dentro de uma transação interna

  1. Criar uma instância do MessageQueue componente e conjunto seus Path propriedade para a fila à qual deseja fazer referência. Para obter mais informações, consulte Como: Criar instâncias de componentes do MessageQueue.

  2. Criar uma instância do MessageQueueTransaction classe para controlar a transação.

  3. telefonar the Begin método para o MessageQueueTransaction classe.

  4. Definir cada mensagem que deseja enviar depois de chamar Begin. Para obter mais informações, consulte Como: Criar instâncias de componentes do MessageQueue.

  5. Depois que a última mensagem é enviada, telefonar Commit sobre o MessageQueueTransaction instância para fechar a transação.

  6. Coloque o trabalho inteiro da transação Try...Catch código de verificação de erros para manipular erros que podem surgir.

  7. Se você detectar um erro, reverta a transação chamando o Abort método.

    Seu código pode ter esta aparência:

    Dim transaction As New System.Messaging.MessageQueueTransaction
    transaction.Begin()
    Try
        MessageQueue1.Send("Message1", "Label1", transaction)
        MessageQueue1.Send("Message2", "Label2", transaction)
        MessageQueue1.Send("Message3", "Label3", transaction)
        transaction.Commit()
    Catch
        transaction.Abort()
    End Try
    
         System.Messaging.MessageQueueTransaction transaction =
                new System.Messaging.MessageQueueTransaction();
            transaction.Begin();
            try
            {
                messageQueue1.Send("Message1", "Label1", transaction);
                messageQueue1.Send("Message2", "Label2", transaction);
                messageQueue1.Send("Message3", "Label3", transaction);
                transaction.Commit();
            }
            catch
            {
                transaction.Abort();
            }
    

Consulte também

Tarefas

Como: Criar filas transacionais

Como: Criar instâncias de componentes do MessageQueue

Conceitos

mensagem Processamento transacional

Outros recursos

Enviando e serializando mensagens