Compartilhar via


mensagem Processamento transacional

Processamento transacional permite garantir que as mensagens em uma transação sejam entregues em ordem, são entregues somente uma vez e são recuperadas com êxito da fila de destino.The MessageQueue componente pode ser usado para enviar e receber mensagens de forma transacional. Ao enviar mensagens dentro de uma transação, você pode agrupar um conjunto de mensagens relacionadas.Todas as mensagens contidas na transação são que um juntos entregues na ordem em que foram enviadas (um o compromisso transação), ou não automaticamente enviadas ou recebidas se houver problemas (um anulado transação).

Há dois tipos principais de transações, que você pode criar a partir de seus aplicativos:

  • Transações internas são usados para enviar mensagens entre dois ou mais serviço de enfileirar de mensagens recursos — ou seja, entre duas filas que pertencem a um serviço de enfileirar de mensagens empresarial.

  • Transações externas são usados para enviar mensagens entre filas e outros recursos, sistema autônomo bancos de dados.

Transações internas e externas são diferentes no seu modelo de programação, no Gerenciador de recursos usada para controlar a transação e em seus padrões de uso.

Transações internas

Transações internas são executadas, criando uma instância do MessageQueueTransaction classe e associá-la a uma instância das MessageQueue componente. Uma transação interna é o tipo mais simples de transação.As mensagens são enviadas entre um ou mais filas de mensagens e serviço de enfileirar de mensagens's coordenador de transações controla as ações que ocorrem.sistema autônomo você controla essas etapas do processo manualmente, transações internas podem ser pensadas sistema autônomo transações manual ou explícitas, enquanto sistema autônomo transações externas são automáticas ou implícita.

O modelo de programação para transações internas são muito simples — você telefonar o Begin método para o MessageQueueTransaction classe e passar uma instância dessa classe para o envio ou recebimento de método. Em seguida, chamar Commit Para salvar as alterações da transação para a fila de destino. Para obter mais informações, consulte Como: Enviar mensagens em transações internas.

Transações internas são um pouco limitadas na funcionalidade, que não é possível executar transações com recursos de enfileirar de mensagens não de mensagem, sistema autônomo bancos de dados.Se você deseja interagir com um banco de dados em uma transação, você deve usar transações externas.No entanto, apesar dessas limitações, transações internas têm um desempenho melhor do que as transações externas.

Transações internas e externas exigem que você enviar sistema autônomo mensagens de uma fila que foi marcado sistema autônomo transacional.Para obter mais informações, consulte Como: Criar filas transacionais.

Transações externas

Normalmente, as transações externas serão usadas quando você deseja enviar mensagens entre filas e outro tipo de recurso.Por exemplo, convém para recuperar uma mensagem de uma fila e enviá-lo para um banco de dados, ou vice-versa.Transações externas diferem das transações internas de várias maneiras:

  • Transações externas contam com um coordenador que não faz parte do sistema enfileirar de mensagens.Na maioria dos casos, esse será o coordenador de transações distribuídas (DTC) da Microsoft.O DTC inscreve sistema autônomo recursos necessários na transação e controla o processo de determinar se todas sistema autônomo ações na transação bem-sucedida ou falharem sistema autônomo uma unidade.

  • Uma transação externa tem um modelo de programação mais complexo.Em vez de simplesmente chamar Begin, Commit, e Abort, você especifica atributos que indicam uma transação externa e registrar o componente de serviços COM + 1.0. Você também deve usar um formulário especial do Send e Receive métodos que leva um parâmetro para o tipo de transação e conjunto este campo para Automatic.

Também existem outros tipos de transações que podem ser enviados sem usar o MessageQueue componente. Para obter mais informações sobre transações em Visual Studio ou o .NET Framework, consulte os tópicos a seguir:

Para obter mais informações

Consulte

Um exemplo que demonstram os atributos usados com transações externas

Consulte a MSDN online.

Transações em C++

Transações

Consulte também

Tarefas

Como: Criar filas transacionais

Como: Enviar mensagens em transações internas

Outros recursos

Lendo e recebendo mensagens