O WebSphere MQ Telemetry Transport entrega mensagens de acordo com os níveis definidos em um QoS (Qualidade de Serviço).Os níveis são descritos abaixo:
As mensagens são entregues de acordo com os melhores esforços da rede TCP/IP subjacente. Uma resposta não é esperada e nenhuma semântica de nova tentativa está definida no protocolo. A mensagem chega no intermediário uma vez ou nunca chega.
O recebimento de uma mensagem pelo intermediário e seu posicionamento em uma fila do WebSphere MQ se aplicável, é confirmado por uma mensagem PUBACK.Se houver um defeito identificado do link de comunicações ou do dispositivo de envio, ou se a mensagem de confirmação não for recebida após um período de tempo especificado, o emissor reenviará a mensagem com o conjunto de bits DUP no cabeçalho da mensagem. A mensagem chega no intermediário pelo menos uma vez.
Os fluxos de protocolos adicionais acima do nível de QoS 1 asseguram que mensagens duplicadas não sejam entregues para o aplicativo de recebimento. Este é o mais alto nível de entrega, para utilização quando mensagens duplicadas não forem aceitáveis. Ocorre um aumento no tráfego da rede, mas geralmente é aceitável, devido à importância do conteúdo da mensagem.
Algumas classes de defeito podem causar a não-entrega de mensagens com o nível de QoS 1 ou 2.
Uma mensagem com nível de QoS 1 ou 2 possui um ID de Mensagem no cabeçalho da mensagem.
Antes de desenvolver um aplicativo que utiliza o WebSphere MQ Telemetry Transport, você deve estar ciente das suposições sobre o QoS níveis 1 e 2.
Alguns aspectos de entrega "garantida" e "confiável" estão cheios de problemas. É difícil obter uma entrega "garantida" em cada circunstância devido à ocorrência de janelas "in doubt", nas quais um dispositivo falha e o sistema fica em um estado em que uma extremidade do link não sabe o que está acontecendo na outra extremidade. Precisamos fazer algumas suposições sobre a confiança dos dispositivos e redes envolvidos na entrega de mensagens e concluir que existe uma boa chance de entregar mensagens de forma confiável.
O WebSphere MQ Telemetry Transport assume que o cliente e o intermediário geralmente são confiáveis e que o canal de comunicações provavelmente parece não ser confiável.Se o dispositivo de cliente falhar, provavelmente será por um defeito catastrófico, em vez de um transitório. A possibilidade de recuperar dados do dispositivo é pequena. Alguns dispositivos possuem armazenamento não-volátil, por exemplo, ROM flash. A provisão de armazenamento mais persistente no dispositivo do cliente protege os dados mais importantes contra alguns modos de defeito.
Além do defeito básico do link de comunicações, a matriz do modo de defeito se torna complexa, resultando em mais cenários do que a especificação para WebSphere MQ Telemetry Transport pode tratar.
O atraso de tempo antes de reenviar uma mensagem cujo recebimento não foi confirmado é específico do aplicativo e não é definido pela especificação de protocolo.
Os níveis de QoS são suportados por fluxos de protocolos que definem a seqüência de fluxos de mensagens entre o cliente e o intermediário.
A tabela abaixo mostra o fluxo de protocolo de nível 0 de QoS.
Client | Mensagem e Direção | Intermediário |
---|---|---|
QoS = 0 | PUBLISH |
Ação: Publicar mensagem para assinantes |
A tabela abaixo mostra o fluxo de protocolo de nível 1 de QoS
Client | Mensagem e Direção | Intermediário |
---|---|---|
QoS = 1 |
PUBLISH |
Ação: Publicar mensagem para assinantes |
Ação: Descartar mensagem | PUBACK |
Se o cliente não receber uma mensagem PUBACK (em um período de tempo definido no aplicativo, ou se for detectado um defeito e a sessão de comunicação for iniciada novamente), o cliente reenviará a mensagem PUBLISH com o conjunto de sinalizadores DUP.
Quando ele recebe uma mensagem duplicada do cliente, o intermediário publica novamente a mensagem para os assinantes e envia outra mensagem PUBACK.
A tabela abaixo mostra o fluxo de protocolo de nível 2 de QoS.
Client | Mensagem e Direção | Intermediário |
---|---|---|
QoS = 2 |
PUBLISH |
Ação: Registrar mensagem em armazenamento persistente |
PUBREC |
ID da Mensagem = x | |
ID da Mensagem = x | PUBREL |
Ação: Publicar mensagem para assinantes |
Ação: descartar mensagem | PUBCOMP |
ID da Mensagem = x |
Se for detectado um defeito, ou após um período de tempo definido, cada parte do fluxo do protocolo será tentada novamente com o conjunto de bits DUP. Os fluxos de protocolo adicionais asseguram que a mensagem seja entregue aos assinantes apenas uma vez. As mensagens SUBSCRIBE e UNSUBSCRIBE utilizando o nível QoS 1.
Conceitos relacionados
WebSphere MQ Telemetry Transport
Referências relacionadas
Cabeçalho Variável do WebSphere MQ Telemetry Transport
Mensagens de Comando WebSphere MQ Telemetry Transport
Avisos |
Marcas |
Downloads |
Biblioteca |
Suporte |
Feedback
![]() ![]() |
ac10850_ |