Dati di analisi bloccati nella coda dei messaggi non recapitabili Qpidd

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Sintomo

Dati di analisi mancanti nell'interfaccia utente Edge perché il server Qpidd non trasferisce i messaggi di analisi su PostgreSQL. In Edge, il componente edge-qpid-server corrisponde al server Qpidd.

Qpidd gestisce due code per ogni gruppo di analisi:

  • ax-q-axgroup001-consumer-group-001

    Questa coda contiene i messaggi di analisi trasmessi dai processori e dai router di messaggi. I messaggi vengono estratti da qui da edge-qpid-server, che analizza i messaggi e li inserisce in PostgreSQL. Una volta elaborati correttamente, i messaggi vengono rimossi dalla coda.

  • ax-q-axgroup001-consumer-group-001-dl

    Questa coda corrisponde alla coda dei messaggi non recapitabili. Funge da destinazione per i messaggi che edge-qpid-server non è riuscito a elaborare e quindi non desidera più ricevere. Questo errore viene solitamente compilato quando viene superato il numero massimo di pubblicazioni o se PostgreSQL ha rifiutato l'inserimento di nuovi dati a causa di errori di runtime.

Messaggio di errore

La causa principale potrebbe essere dovuta a vari errori di runtime del componente edge-qpid-server. In genere, se edge-qpid-server riceve un errore di runtime da PostgreSQL, crea la coda dei messaggi non recapitabili, se non esiste già, e invia lì il seguente messaggio:

yyyy-MM-dd HH:mm:ss,SSS ax-q-axgroup001-consumer-group-001-persistpool-thread-6 WARN c.a.a.m.MessageConsumer - MessageConsumer.process() : Sending message batch to the DLQ.

Possibili cause

Causa Descrizione Istruzioni per la risoluzione dei problemi applicabili per
Messaggi bloccati nella coda messaggi non recapitabili di qpidd edge-qpid-server non è riuscito a comprendere i messaggi letti dal broker Qpidd oppure a rendere persistenti i messaggi su PostgreSQL. Utenti del cloud privato perimetrale

Passaggi di diagnosi comuni

Esegui questo comando per visualizzare le statistiche della coda Qpidd:

qpid-stat -q

L'output restituisce l'insieme di code registrate con il broker. Se i messaggi nella coda il cui nome termina con "-dl" sono stati completati, significa che sono presenti messaggi bloccati nella coda dei messaggi non recapitabili.

Queues
  queue                                     dur  autoDel  excl  msg   msgIn  msgOut  bytes  bytesIn  bytesOut   cons  bind
  ========================================================================================================================
  ax-q-axgroup-001-consumer-group-001       Y                   0     185    185     0       13.8m   13.8m      6      2
  ax-q-axgroup-001-consumer-group-001-dl    Y                   0     70     70      0        3.9m    3.9m      0      2

Causa: messaggi bloccati nella coda messaggi non recapitabili di qpidd

Diagnostica

Questa condizione può verificarsi nei seguenti scenari:

  1. In passato era stato eseguito un upgrade durante il quale PostgreSQL non era attivo.
  2. Interruzione temporanea di PostgreSQL a causa di problemi di rete.
  3. edge-qpid-server ha tentato di inviare un messaggio a PostgreSQL, ma PostgreSQL ha restituito un errore di runtime.

Risoluzione

  1. Prendi nota del nome delle code indicate nella sezione Passaggi comuni di diagnosi. Ad esempio:

    • ax-q-axgroup-001-consumer-group-001
    • ax-q-axgroup-001-consumer-group-001-dl
  2. Esegui il comando qpid-tool per inserire un messaggio qpidinterattivo:

    qpid-tool

    Questa notifica restituisce quanto segue:

    Management Tool for QPID
    qpid:
  3. Esegui list broker per ottenere un elenco dei broker attivi:

    list broker

    Questa notifica restituisce quanto segue:

    Object Summary:
    ID   Created   Destroyed  Index
    =======================================
    125  21:00:00  -          amqp-broker

    Dove la colonna ID specifica l'ID dell'intermediario.

  4. Prendi nota dell'ID dell'intermediario. Nell'esempio è 125.

  5. Esegui questo comando per spostare i messaggi dalla coda dei messaggi non recapitabili alla coda effettiva:

    call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}

    Questa notifica restituisce quanto segue:

    OK (0) - {}

    Se non viene visualizzato alcun output, non c'è stato nulla da fare, il che significa che non è presente alcun messaggio da spostare. Se non vedi OK(0), devi contattare l'assistenza Apigee Edge.

  6. Esci dal terminale qpid-tool.

    quit
  7. Attendi 5 minuti, quindi esegui nuovamente la procedura di diagnostica dalla sezione Passaggi di diagnosi comuni. Verifica che i messaggi nella coda effettiva vengano elaborati e assicurati che il numero di messaggi non recapitabili rimanga 0.

Se il problema persiste, vai alla sezione successiva.

Raccogliere informazioni diagnostiche

Se il problema persiste anche dopo aver seguito le istruzioni riportate sopra, raccogli le seguenti informazioni diagnostiche. Contattali e condividili con l'assistenza Apigee Edge:

  • Log Qpidd: /opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
  • Log Postgresql: /opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
  • Log Edge-qpid-server: /opt/apigee/var/log/edge-qpid-server/logs/system.log
  • Log del server Edge-postgres:/opt/apigee/var/log/edge-postgres-server/logs/system.log
  • Statistiche coda Qpidd:

    qpid-stat -q
  • Gruppo di analisi restituito dal seguente comando curl:

    curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax