Delivery Retry

A tela Delivery Retry lista os eventos que não foram entregues com sucesso e permite a retentativa manual de entrega.

delivery retry

Retentativas

Automática x Manual

  • Quando a primeira tentativa de entrega de evento a um subscritor falha, o Events Hub tenta reenviar automaticamente, seguindo as configurações cadastradas na policy.

  • Se todas as tentativas automáticas falharem, o evento cai na fila de retentativa da tela Delivery Retry, onde você pode tentar reenviar manualmente.

Filtros

Por padrão, a lista mostra até 50 entregas não realizadas para o dia atual, mas você pode usar os filtros disponíveis para ampliar ou refinar a busca. São eles:

  • From: para escolher a data inicial da busca. Você pode selecionar até 14 dias antes da data atual.

  • To: para escolher a data final da busca. Você pode selecionar o dia de hoje ou até 14 dias atrás.

A busca só pode ser feita em um período máximo de 14 dias até a data atual.

  • Status: filtra os códigos de estado retornados, que podem ser:

    • Sucesso, mas diferente do esperado (Success, different from expected);

    • Erro de cliente (Client Error);

    • Ou erro de servidor (Server Error).

  • Max Results: número máximo de resultados por página, podendo ser 50, 100, 300, ou 500.

  • Event ID: filtra por identificador único do evento, gerado sempre que uma requisição é recebida do publicador. Esse identificador é exibido na tela Event Status.

  • Subscribers: filtra por subscritor, permitindo selecionar vários ao mesmo tempo.

  • Contexts: filtra por contexto, podendo selecionar vários ao mesmo tempo.

A consulta pode retornar até 500 itens, conforme definido no campo Max Results.
Se a entrega que procura não estiver nos 500 primeiros itens, você pode localizá-la na tela Event Status e reenviá-la manualmente clicando no botão VIEW IN DELIVERY RETRY. Outra opção é copiar ID do evento e pesquisá-lo no campo Event ID.

Reenvio manual

Na lista de entregas com falha, cada subscritor está em uma linha. Na coluna SELECT, você pode selecionar itens para tentar entregá-los manualmente. Se preferir, selecione todos de uma vez marcando a opção Select All acima da tabela.
Após escolher os eventos que deseja reenviar, clique no botão RETRY SELECTED.

Se o envio manual for bem-sucedido, o item será removido da lista de Delivery Retry na próxima consulta. Se o retorno recebido for diferente do esperado, o item voltará à lista de falha e poderá ser reenviado novamente.

Você pode excluir um ou mais eventos da tela de Delivery Retry. Para fazer isso:

  1. selecione a unidade ou o lote de eventos para excluir;

  2. clique no botão DELETE SELECTED;

  3. confirme a ação.

Clicando no ícone icon more, você pode escolher quais colunas deseja exibir na tela de Delivery Retry:

delivery retry table
Colunas
  • A data e horário na coluna DATE referem-se à tentativa de entrega aos subscritores pelo Events Hub.

  • A coluna EVENT ID exibe o identificador único do evento. A lista mostra os itens por subscritor e, por isso, pode haver mais de uma linha com o mesmo event ID. O ícone icon copy copia o ID para a sua área de transferência.
    Esse ID pode ser utilizado na tela Event Status para consultar detalhes da mensagem enviada pelo publicador e ver o histórico de tentativas de entrega aos subscritores.

  • As colunas EXPECTED STATUS e DELIVERY STATUS mostram os códigos de retorno HTTP esperados e recebidos pelo Events Hub ao enviar o evento aos subscritores. O código esperado é definido no registro ou edição de subscritores.

    Se o código de retorno esperado for alterado no registro de subscritores, essa modificação será aplicada apenas a novos eventos recebidos pelo Events Hub. Eventos recebidos antes da modificação não utilizarão o novo código esperado para tentativas manuais de envio.
  • A coluna ENABLED TOPICS contém o ícone icon expand, que exibe informações sobre o evento recebido pelo Events Hub. O publicador só é identificado e exibido se houver um interceptor que valide client ID na política aplicada ao handler (Client ID Validation ou OAuth Validation).

    expand delivery retry

As tentativas de entrega mal-sucedidas são exibidas por subscritor. Isso significa que, se uma tentativa de entrega falhar para mais de um subscritor, haverá um item para cada subscritor na lista, mas todos terão o mesmo event ID. Você pode reenviar o evento para um subscritor específico ou para todos eles ao mesmo tempo.

Reenvio automático

Eventos que caem na fila de tentativa manual podem ser reenviados automaticamente por meio da API Event Status. Para acessá-la, vá até Sensedia API Platform  API Design  API Catalog e busque por "Event Status".

A seguir, acompanhe sugestões de boas práticas para o reenvio automático de eventos utilizando a API.

Operação da API

A única operação essencial desta API para o reenvio automático é a /deliveries.

delivery retry api operation
  • Através do endpoint GET /deliveries, você lista todos os eventos com falha no envio.

  • Através do endpoint POST /deliveries, você reenvia aos subscritores os eventos com falha no envio.

Listagem de eventos não enviados

O endpoint GET /deliveries permite listar todos os eventos que não foram enviados com sucesso, onde o código HTTP retornado difere do esperado. Para evitar sobrecarga no sistema, você pode limitar a quantidade de eventos retornados em uma única requisição. A requisição é paginada e você pode escolher entre 10, 25, 50, 100 e 500 eventos por página.

O limite padrão de eventos por requisição é 500.

Para facilitar a ordenação dos resultados, você pode incluir os seguintes parâmetros na requisição do GET:

  • _sortBy: define por qual campo é feita a ordenação dos registros. Valores aceitos:

    • date;

    • eventId;

    • contextName;

    • subscriberName;

    • subscriberUrl;

    • expectedStatusCode;

    • httpStatus.

      Por padrão, o valor é date.

  • _direction: define se a ordenação é feita em ordem descendente (DESC) ou ascendente (ASC). Por padrão, o valor é DESC.

  • _limit: identifica o número de registros a serem retornados. Quando não informado, o valor padrão é 50.

  • _offset: identifica o registro inicial a ser retornado. Quando não informado, o valor padrão é 0.

Filtragem por Datas

Para encontrar eventos específicos, você pode usar os seguintes parâmetros:

  • beginDate: filtra eventos com base em uma data de início dentro de um intervalo de datas. Pode ser de até 14 dias antes da data atual.

  • endDate: filtra eventos com base em uma data de fim dentro de um intervalo de datas. Pode ser o dia de hoje ou até 14 dias atrás.

Reenvio Automático

O endpoint POST /deliveries permite que você envie o evento novamente utilizando os parâmetros:

  • eventId e

  • subscriberId.

O número máximo de itens permitidos na requisição é de 500 eventos com falha no envio. Se o total de itens for maior que 500, envie o valor máximo (500) em uma primeira requisição, aguarde e use o endpoint GET /deliveries novamente para os demais eventos.
Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]