Transações de Fluxos de Mensagens

Os fluxos de mensagens suportam dois estilos de transações:
  1. Fluxos de Mensagens Coordenados asseguram que todas as atualizações de recursos sejam confirmadas ou seja efetuado rollback delas juntas em uma única transação.
  2. Fluxos de Mensagens Não Coordenados permitem que as atualizações de recursos ocorram de forma independente; as atualizações não são afetadas pelo êxito ou falha geral do fluxo.

Fluxos de Mensagens Coordenados

Um fluxo de mensagens que inclui interação com um banco de dados externo ou outro recurso recuperável pode ser configurado para que todo o seu processamento seja coordenado em uma transação única, global. Esta coordenação assegura que todo o processamento seja concluído com êxito ou que nenhum processamento seja concluído. A transação é consolidada (se todo o processamento for bem-sucedido) ou revertida (se pelo menos uma parte do processamento não for bem-sucedida). Isto significa que todos os recursos afetados (filas, bancos de dados e outros) sejam mantidos em um estado consistente e que a integridade de dados seja preservada.

As atualizações feitas por um fluxo coordenado são confirmadas quando o fluxo conclui com êxito o processamento da mensagem de entrada. Será efetuado backout das atualizações se:
  1. Qualquer nó no fluxo emitir uma exceção que não seja capturada por um nó diferente do nó de entrada, e
  2. O terminal de captura do nó input não esteja conectado.

Para configurar um fluxo de mensagens como coordenado, configure a propriedade Coordenado no fluxo de mensagens.

Para alguns nós de entrada, como os nós MQInput, ou SCADA, é possível configurar a propriedade Modo de Transação nos nós do fluxo para Automático; isso significa que as mensagens farão parte da transação global e o fluxo será marcado como transacional se a mensagem de entrada for persistente e como não coordenado se a mensagem de entrada não for persistente. Os nós subseqüentes no fluxo, que configuram a propriedade de modo de transação como Automático serão incluídos na transação global se o fluxo tiver sido marcado como transacional pelo nó input.

A coordenação de transação de fluxos de mensagens é fornecida em plataformas distribuídas por sistemas WebSphere MQ e no z/OS pelo RRS. Os fluxos de mensagens são sempre coordenados globalmente no z/OS, independentemente de a propriedade Coordenado do fluxo de mensagens estar especificada ou não como coordenado.

Fluxos de Mensagens Não Coordenados

Fluxos não coordenados são fluxos para os quais a propriedade Coordenado não está configurada. As atualizações em recursos utilizados por um fluxo não coordenado são gerenciadas por gerenciadores de recursos separados. Alguns gerenciadores de recursos, como o WebSphere MQSeries, permitem que as atualizações sejam feitas de forma não transacional ou como parte de uma transação específica de recurso. Outros gerenciadores de recursos, como gerenciadores de banco de dados, sempre utilizam uma transação específica de recurso. Uma transação específica de recurso é uma transação cujo escopo está limitado aos recursos pertencentes a um único gerenciador de recursos, como um banco de dados ou gerenciador de filas.

As transações específicas de recurso geralmente são utilizadas quando existe apenas um tipo de recurso recuperável utilizado em um fluxo. (Um exemplo de tal fluxo é um que contém um nó MQInput e um MQOutput, mas que não acessa nenhum dos bancos de dados). As transações específicas de recurso não devem ser utilizadas quando houver mais de um recurso e a integridade de dados tiver que ser mantida.

As atualizações feitas em um recurso acessado de forma não transacional são confirmadas imediatamente. Um nó MQInput configurado para ser não transacional remove mensagens da fila imediatamente e, se o fluxo falhar, as mensagens serão perdidas.

Alguns nós de entrada, como os nós MQInput, ou SCADA, podem fazer parte de uma transação, dependendo da persistência da mensagem de entrada, configurando o modo de transação para Automático. As mensagens se tornam parte da transação e o fluxo marcado como transacional, se a mensagem de entrada for persistente e não transacional se a mensagem não for persistente.

O Amostra Error Handler demonstra a utilização de transações coordenadas globalmente e as diferenças no fluxo de mensagens quando as atualizações do banco de dados são coordenadas (o fluxo principal) e quando elas não são (o fluxo de erro).

Conceitos relacionados
Visão Geral de Fluxos de Mensagens
Tarefas relacionadas
Criação de um Fluxo de Mensagens
Definindo o Conteúdo do Fluxo de Mensagens
Configurando Fluxos de Mensagens Coordenados
Tratando Erros em Fluxos de Mensagens
Referências relacionadas
Nós Internos
Conexões de Banco de Dados para Fluxos de Mensagens Coordenados
Suporte ao Banco de Dados para Fluxos de Mensagens Coordenados
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac00645_