Saída de usuário é o software customizado fornecido pelo
usuário, escrito em C, para rastrear os dados que passam pelos fluxos de mensagens.
As funções fornecidas pelo usuário podem ser chamadas em pontos específicos durante o ciclo de vida de uma mensagem enquanto passa pelo fluxo de mensagens e pode chamar as funções de utilitário para consultar informações sobre o ponto no fluxo e o conteúdo da montagem de mensagem. A função de utilitário também pode modificar
algumas partes da montagem da mensagem.
Para obter informações adicionais sobre como
utilizar saídas de usuário, consulte Por Que Utilizar uma Saída de Usuário?.
As saídas de usuário podem ser chamadas quando ocorrerem um ou ou mais dos seguintes eventos:
- O final da UOW (Unidade de Trabalho) ou da transação (COMMIT ou ROLLBACK).
- Uma mensagem é transmitida entre dois nós.
- Uma mensagem é enfileirada ou enviada com êxito
para um transporte em um nó de saída, de resposta ou de pedido.
- Uma mensagem é removida da fila ou recebida em um nó
de entrada, de resposta ou TimeoutNotification.
No fluxo de mensagens básico mostrado
aqui, é possível controlar mensagens em três níveis:
- Nível da Transação
- Nível do Nó
- Nível de entrada ou saída
No nível da transação, você pode rastrear os seguintes eventos:
- Mensagens sendo lidas no fluxo
- Conclusão da transação
No nível do nó, você pode rastrear os seguintes eventos:
- Uma mensagem sendo transmitida de um nó a outro
- Conclusão do processamento para um nó
No nível de entrada ou saída da mensagem, é possível
rastrear os seguintes eventos:
- Mensagens sendo lidas no fluxo
- Mensagens que estão sendo gravadas a partir do fluxo
Portanto, é possível rastrear cinco tipos diferentes
de eventos, que ocorrem na seguinte seqüência:
- Uma mensagem é removida da fila da origem de entrada (lida no fluxo).
- Uma mensagem é propagada para o nó para processamento.
- Uma mensagem de pedido é enviada para o transporte do nó de saída e as informações do destino
específicas de transporte são gravadas em "WrittenDestination" no LocalEnvironment.
- O processamento do nó foi concluído.
- A transação é encerrada.