Class MensageriaService

java.lang.Object
br.com.xadm.comum.mensageria.MensageriaService

@Singleton public class MensageriaService extends Object
API do motor para os apps + transições de estado usadas pelo relay/tela. As transições rodam cada uma em sua própria transação curta (chamadas cross-bean a partir do RelayM2m), o que garante o isolamento por mensagem: falha de uma linha não faz rollback das irmãs do lote.
  • Constructor Details

  • Method Details

    • enfileirar

      public MensagemM2m enfileirar(String tipo, String correlationId, String payload, String resumo)
      Enfileira uma mensagem de saída, participando da transação corrente do produtor (outbox transacional real): se a transação de negócio faz rollback, a mensagem não nasce.
      Parameters:
      tipo - discriminador de roteamento (resolve o EnviadorMensagem).
      correlationId - correlação/observabilidade (= request-id); não é chave de dedup.
      payload - JSON suficiente para remontar a chamada tipada no reenvio.
      resumo - texto curto legível para a tela.
      Returns:
      a mensagem persistida (SAIDA/PENDENTE).
    • registrarEntrada

      public MensagemM2m registrarEntrada(String tipo, String correlationId, String payload, String resumo)
      Registra uma mensagem recebida para auditoria simétrica (ENTRADA/RECEBIDO). Sem retry — a idempotência do negócio é do receptor, não desta lib.
      Returns:
      a linha de auditoria persistida.
    • aplicarResultado

      public void aplicarResultado(long id, ResultadoEnvio resultado)
      Aplica o resultado de um despacho (transação curta própria). Sucesso → ENVIADO; falha → tentativas++ e ERRO, ou PAUSADO + alarme ao atingir o teto.
    • registrarFalhaExcecao

      public void registrarFalhaExcecao(long id, String mensagemErro)
      Registra a falha de uma exceção inesperada do enviador (transação curta própria): conta como tentativa e pode PAUSAR no teto.
    • reenviar

      public void reenviar(long id)
      Reenvia (ação do operador): volta a PENDENTE e zera tentativas — o próximo tick do relay refaz o envio a partir do payload salvo. Só para linhas de saída.
    • cancelar

      public void cancelar(long id)
      Cancela (ação do operador): CANCELADO, o relay ignora. Só para linhas de saída.