Destinos de Exceção
Um destino de exceção é um local para mensagens que não podem ser entregues ou permanecer em uma determinação de destino especificada, mas que também não podem ser descartadas. Os destinos de exceção evitam a perda de mensagens quando isso é necessário pela qualidade de serviço especificada para uma mensagem.
- A integração de serviço não pode entregar uma mensagem para a determinação de destino especificada e não pode descartar a mensagem por causa da qualidade de serviço da mensagem. A integração de serviço entrega a mensagem para um destino de exceção.
- Uma mensagem excede o número máximo de tentativas de entrega para um consumidor transacional. Esta situação poderá ocorrer se o consumidor transacional falhar e a mensagem for restaurada e consumida novamente repetidamente. Quando o limite de entrega (as Máximo de entregas com falha por mensagem) for atingido, a mensagem irá para o destino de exceção.
- Um destino que possui mensagens é excluído. Essas mensagens são movidas para um destino de exceção.
- Use o destino de exceção padrão do mecanismo do sistema de mensagens
relevante.Cada mecanismo do sistema de mensagens possui um destino de exceção padrão chamado _SYSTEM.Exception.Destination.messaging_engine_name, criado automaticamente durante a criação de um mecanismo do sistema de mensagens. Esse destino de exceção padrão armazena mensagens que não podem ser entregues para destinos de barramento localizados no mecanismo do sistema de mensagens. Ao usar o destino de exceção padrão, um administrador pode acessar todas as mensagens que não podem ser entregues para um mecanismo do sistema de mensagens em um único local.Nota: Não é possível modificar o destino de exceção padrão e você não deve excluí-lo.
- Use um destino de exceção específico que esteja associado ao
recurso relevante, por exemplo, um destino de fila, um destino de espaço de
tópico, um link do barramento de integração de serviços ou um link do WebSphere MQ.
O destino de exceção associado a um destino será usado se uma mensagem não puder ser entregue porque o número de tentativas de entrega para um consumidor transacional foi excedido. Ao usar um destino de exceção específico para um destino de fila ou de espaço de tópico, um administrador pode acessar as mensagens que não podem ser entregues para esse destino em um local.
O destino de exceção associado a um link será usado se uma mensagem não puder ser entregue porque a determinação do destino está cheia ou não existe.
Um destino de exceção deve ser um destino de fila e pode ser local ou remoto. O destino de exceção já deverá existir antes da configuração de outro recurso para usar esse destino de exceção. Se o destino de exceção não for uma fila ou se não existir quando a mensagem chegar, as mensagens serão roteadas novamente para o destino de exceção padrão do mecanismo do sistema de mensagens relevante.
Observe que não é possível configurar um destino de exceção para um barramento; você deve configurar um destino de exceção para cada destino no barramento.
- Não roteie novamente as mensagens que não podem ser entregues a qualquer destino de exceção,
isto é, especifique Nenhum.
As tentativas de entregar a mensagem continuam. Para um link do barramento de integração de serviços, uma mensagem que não pode ser entregue pode bloquear o processamento de outras mensagens que estão esperando ser entregues ao mesmo destino. Para um link do WebSphere MQ, uma mensagem que não pode ser entregue pode bloquear o processamento de outras mensagens que estão esperando ser entregues por meio desse link ao mesmo barramento.
As opções de relatório configuradas nas propriedades de mensagens individuais podem afetar o processamento do destino de exceção. Dependendo da opção de relatório configurada, quando as condições se aplicarem para que a integração de serviço envie uma mensagem para um destino de exceção, a integração de serviço também enviará uma mensagem de relatório para o destino de resposta da mensagem, ou descartará a mensagem em vez de enviá-la para o destino de exceção, ou ambos.
- Mensagens de melhor esforço serão sempre descartadas se não puderem ser entregues em sua determinação de destino, isto é, elas nunca usam um destino de exceção.
- Uma mensagem não poderá ser disponibilizada aos clientes enquanto não for entregue com êxito em um destino.
A integração de serviço não pode garantir a ordem de mensagens enviadas para um destino de exceção. Por isso, se a ordem das mensagens for importante, será possível configurar um destino de barramento para que ele não use um destino de exceção. Nesta situação, o limite de Máximo de entregas com falha por mensagem especificado para o destino é ignorado e a mensagem permanece disponível aos consumidores. Os consumidores síncronos tentam repetidamente obter a mensagem; os beans orientados a mensagens e outros consumidores assíncronos tentam repetidamente consumir a mensagem. Esta situação continua até que a mensagem seja removida do destino (por exemplo, por um administrador que use o console administrativo) ou o consumidor possa processar subsequentemente a mensagem sem retroceder.