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:
- In passato era stato eseguito un upgrade durante il quale PostgreSQL non era attivo.
- Interruzione temporanea di PostgreSQL a causa di problemi di rete.
edge-qpid-server
ha tentato di inviare un messaggio a PostgreSQL, ma PostgreSQL ha restituito un errore di runtime.
Risoluzione
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
Esegui il comando
qpid-tool
per inserire un messaggioqpid
interattivo:qpid-tool
Questa notifica restituisce quanto segue:
Management Tool for QPID qpid:
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.Prendi nota dell'ID dell'intermediario. Nell'esempio è 125.
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.Esci dal terminale qpid-tool.
quit
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