É importante proteger as mensagens que fluem pelo domínio do seu intermediário. Isso é válido para as mensagens geradas pelo aplicativo e as utilizadas internamente para comunicação entre componentes. As mensagens utilizadas internamente entre componentes sempre utilizam o protocolo WebSphere MQ. As mensagens de aplicativos podem utilizar todos os protocolos de transporte suportados.
Para mensagens de aplicativos e internas que viajam pelo WebSphere MQ, duas técnicas protegem contra a perda de mensagens:
Se uma mensagem for persistente, o WebSphere MQ assegurará que ela não seja perdida quando ocorrer uma falha, copiando-a em disco.
Um aplicativo pode pedir que uma mensagem seja processada em uma UOW (Unit-of-Work) sincronizada
Para obter informações adicionais sobre como utilizar essas opções, consulte WebSphere MQGuia de Administração do Sistema.
Os componentes do WebSphere Message Broker utilizam mensagens do WebSphere MQ para comunicar eventos e dados entre processos e subsistemas do intermediário e o Configuration Manager e o Servidor de Nome de Usuário. Os componentes asseguram que os recursos do WebSphere MQ sejam explorados para proteção contra a perda de mensagens. Não é necessário executar nenhuma etapa adicional para configurar WebSphere MQ ou WebSphere Message Broker para proteger-se contra a perda de mensagens internas.
Se a entrega de mensagens de aplicativos for crítica, será necessário projetar programas aplicativos e os fluxos de mensagens que eles utilizam para assegurar que as mensagens não sejam perdidas. As técnicas utilizadas dependem do protocolo utilizado pelos aplicativos.
Os produtos do sistema de mensagens do WebSphere MQ fornecem persistência de mensagem, que define a duração da mensagem no sistema e garante a integridade da mensagem. As mensagens não-persistentes serão perdidas caso ocorra uma falha no sistema ou gerenciador de fila. Mensagens persistentes são sempre recuperadas no caso de uma falha.
Quando um nó input lê uma mensagem que é lida a partir de uma fila de entrada, a ação padrão é utilizar a persistência definida no cabeçalho de mensagens (MDMQ) do WebSphere MQ que foi definido pelo aplicativo que criou a mensagem ou pela persistência padrão da fila de entrada. A mensagem retém essa persistência durante o fluxo de mensagens, a menos que seja alterada em um nó de processamento de mensagens subseqüente.
Você pode substituir o valor de persistência de cada mensagem quando o fluxo de mensagens terminar em um nó output. Este nó possui uma propriedade que permite a você especificar a persistência de cada mensagem quando ela é colocada na fila de saída, como o valor solicitado, ou como um valor padrão. Se você especificar o padrão, a mensagem utiliza o valor de persistência definido para as filas nas quais as mensagens são gravadas.
Se uma mensagem passar por um nó Publication, a persistência de mensagens enviadas para assinantes será determinada pelas opções de registro dos assinantes. Se um assinante tiver solicitado entrega persistente de mensagem, e for autorizado para fazer isto por ACL explicita ou implícita (herdada), a mensagem é entregue de maneira persistente independente de sua propriedade de persistência existente. Além disso, se o usuário tiver requisitado entrega de mensagem não-persistente, a mensagem será entregue de modo não-persistente independente da existência de sua propriedade de persistência.
Se um fluxo de mensagens criar uma nova mensagem (por exemplo, em um nó Compute), a persistência no MQMD da nova mensagem será copiada a partir da persistência no MQMD da mensagem recebida.
A ação padrão de um fluxo de mensagens é processar mensagens de entrada sob o ponto de sincronização em uma transação controlada pelo intermediário. Isso significa que uma mensagem que falha ao ser processada por qualquer motivo é recuperada pelo intermediário. Como ela foi recebida sob o ponto de sincronização, a mensagem com falha será reindicada na fila de entrada e poderá ser processada novamente. Se o processamento falhar, os procedimentos de tratamento de erros que estão configurados para esse fluxo de mensagens (definidos pela forma que o fluxo de mensagens foi configurado ou pelo intermediário) serão executados.
Para obter detalhes completos do processamento de nós de entrada, consulte Gerenciando Erros no Nó Input.
Se uma mensagem SCADA persistente for publicada, ela poderá ser reduzida para o mais alto nível que o cliente pode aceitar. Em algumas circunstâncias, isso pode significar que a mensagem se torna não-persistente.