Um fluxo de mensagens é executado em uma única transação, iniciada quando os dados são recebidos por um nó de entrada e que pode ser confirmada ou retrocedida quando todo o processamento tiver sido concluído.
Como nós individuais, e o próprio fluxo de mensagens, participam das transações depende da maneira como você projeta e desenvolve o fluxo de mensagens e do nível de configuração adicional executado:
Quando tiver concluído o design e o desenvolvimento do fluxo de mensagens, poderá implementar o arquivo BAR para o broker ou brokers nos quais deseja que o fluxo de mensagens seja executado. Entretanto, se tiver configurado seus fluxos de mensagens para transações coordenadas globalmente, pode ser necessária uma configuração adicional. Você, ou seu administrador do sistema, deve assegurar que seu ambiente do broker, o gerenciador de transações e os gerenciadores de recursos participantes estejam todos configurados corretamente para suportar transações coordenadas, antes de executar o fluxo de mensagens. Para obter detalhes do que pode ser necessário, consulte Configurando a Coordenação Global de Transações (two-phase commit).
Se o ambiente do broker, o gerenciador de transações e os gerenciadores de recursos externos não estiverem configurados corretamente para coordenação global, as transações do fluxo de mensagens não serão coordenadass globalmente.
É possível configurar os nós em seu fluxo de mensagens para determinar como o trabalho realizado por cada nó participa na transação do fluxo de mensagens. A maioria dos nós para os quais a transacionalidade é relevante possui uma ou mais propriedades que você pode configurar para determinar o comportamento. Portanto, é possível decidir para cada nó individual se ele participa da transação do fluxo de mensagens ou opera independentemente. Geralmente, estas propriedades incluem uma opção igual a Automático, para que nós subsequentes no fluxo assumam as características configuradas pelo nó de entrada.
Os nós que suportam transportes que não podem participar das transações podem ter outras propriedades para determinar o que o broker faz quando uma falha do fluxo de mensagens ocorre. Por exemplo, o nó FileInput possui um conjunto de propriedades Retry que podem ser configuradas para determinar o comportamento da falha.
Alguns nós que interagem com recursos externos não fornecem propriedades; geralmente, esses nós são incluídos nas transações do fluxo de mensagens, mas existem algumas exceções; é necessário verificar a seção que descreve as propriedades e como configurá-las, para cada nó que você incluiu em seu fluxo, para assegurar que você entenda qual ação é executada.
Se configurar um nó não para participar da transação do fluxo de mensagens, as ações que ele executa serão confirmadas, ou retrocedidas, quando o nó encerrar. Nenhuma ação adicional é executada quando o fluxo em si é concluído.
Para configurar o comportamento do fluxo de mensagens configurando propriedades do nó:
Quando você tiver configurado seu fluxo de mensagens, deverá incluí-lo em um arquivo BAR antes de poder implementá-lo. Quando incluí-lo em um arquivo BAR, o fluxo de mensagens será compilado e propriedades adicionais estarão disponíveis para configuração.
A propriedade mais importante concernente às transações nos sistemas distribuídos é Transação Coordenada. Por padrão, esta propriedade é limpa (não selecionada), o que significa que o fluxo de mensagens é coordenado parcialmente e o broker confirma ou retrocede a transação do fluxo de mensagens. Se você selecionar esta propriedade, o nó de entrada chamará o gerenciador de transações externo WebSphere MQ para confirmar e retroceder o processamento.
Esta propriedade é ignorada quando o fluxo de mensagens é implementado em um broker que está em execução em um sistema z/OS®.
Para configurar propriedades do fluxo de mensagens: