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 |
---|---|
Indica o início de uma transação que consiste em um ou mais operações e mensagens. |
|
Confirme a transação se todas as operações de mensagem continha foram executadas com êxito. |
|
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
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.
Criar uma instância do MessageQueueTransaction classe para controlar a transação.
telefonar the Begin método para o MessageQueueTransaction classe.
Definir cada mensagem que deseja enviar depois de chamar Begin. Para obter mais informações, consulte Como: Criar instâncias de componentes do MessageQueue.
Depois que a última mensagem é enviada, telefonar Commit sobre o MessageQueueTransaction instância para fechar a transação.
Coloque o trabalho inteiro da transação Try...Catch código de verificação de erros para manipular erros que podem surgir.
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