Você pode configurar um fluxo de mensagens que inclui interação com um banco de dados externo ou outro recurso recuperável para que todo seu o processamento seja coordenado em uma única transação global. Esta coordenação assegura que todo o processamento seja concluído com êxito ou que nenhum processamento seja concluído. A transação será confirmada (se todo o processamento for bem-sucedido) ou revertida (se pelo menos uma parte do processamento não for bem-sucedida). Assim, todos os recursos afetados (filas, bancos de dados etc.) são mantidos em um estado consistente e a integridade de dados é preservada.
Para configurar um fluxo de mensagens como coordenado, configure a propriedade Coordenado no fluxo de mensagens.
Para alguns nós de entrada, como MQInput ou SCADAInput, configure a propriedade Modo de Transação nos nós no fluxo como Automático. A opção Automático torna as mensagens parte da transação global e marca o fluxo de mensagens como transacional, caso a mensagem de entrada seja persistente, ou não coordenado, caso a mensagem de entrada não seja persistente. Os nós subseqüentes no fluxo que definem a propriedade Modo de Transação como Automático serão incluídos na transação global se o fluxo for marcado transacional pelo nó de entrada.
A coordenação de transação dos fluxos de mensagens é fornecida nos sistemas distribuídos pelo WebSphere MQ, e nos sistemas z/OS pelo RRS. Os fluxos de mensagens são sempre globalmente coordenados no z/OS, independentemente da definição da propriedade Coordenado do fluxo de mensagens.
Fluxos não coordenados são fluxos para os quais a propriedade Coordenado não está configurada. As atualizações nos recursos que são utilizados por um fluxo não coordenado são gerenciadas por gerenciadores de recursos separados. Alguns gerenciadores de recursos, como o WebSphere MQ, permitem que atualizações sejam feitas de modo não transacional ou como parte de uma transação de recurso específico. Outros gerenciadores de recursos, como gerenciadores de banco de dados, sempre utilizam uma transação específica de recurso. Transação de recurso específico é aquela com escopo limitado aos recursos pertencentes a um único gerenciador de recursos, como um gerenciador de filas ou de banco de dados.
Transações de recurso específico normalmente são utilizadas quando apenas um tipo de recurso recuperável é utilizado em um fluxo. Um exemplo desse fluxo é um que contém um nó MQInput e MQOutput, mas não acessa nenhum dos bancos de dados. Não utilize transações de recurso específico quando mais de um recurso existir e a integridade de dados tiver de ser mantida.
As atualizações feitas em um recurso que é acessado de modo não transacional são confirmadas imediatamente. Um nó MQInput configurado para ser não transacional remove mensagens da fila imediatamente; se o fluxo falhar, as mensagens serão perdidas.
Configure a propriedade Modo de Transação como Automático para tornar alguns nós de entrada (como MQInput ou SCADAInput) parte de uma transação, dependendo da persistência da mensagem de entrada. Se a mensagem de entrada for persistente, as mensagens se tornarão parte da transação, e o fluxo será marcado como transacional. Se a mensagem não for persistente, o fluxo será marcado como não transacional.