<ph type="x-smartling-placeholder"></ph>
Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur
Apigee X-Dokumentation. Weitere Informationen
Symptom
In der Edge-Benutzeroberfläche fehlen Analysedaten, da der Qpidd-Server Analysenachrichten nicht an PostgreSQL überträgt. In Edge entspricht die edge-qpid-server
-Komponente dem Qpidd-Server.
Qpidd unterhält zwei Warteschlangen für jede Analysegruppe:
ax-q-axgroup001-consumer-group-001
Diese Warteschlange enthält Analysenachrichten, die von den Message Processors und Routern gesendet wurden. Nachrichten werden hier vom
edge-qpid-server
abgerufen, das Nachrichten parst und in PostgreSQL einfügt. Nach erfolgreicher Verarbeitung der Nachrichten werden sie aus der Warteschlange entfernt.ax-q-axgroup001-consumer-group-001-dl
Diese Warteschlange ist die Warteschlange für unzustellbare Nachrichten. Sie dient als Ziel für Nachrichten, die
edge-qpid-server
nicht verarbeiten konnte und daher nicht mehr empfangen möchte. Dieses Feld wird normalerweise ausgefüllt, wenn die maximale Übermittlungsanzahl überschritten wird oder wenn PostgreSQL das Einfügen neuer Daten aufgrund von Laufzeitfehlern abgelehnt hat.
Fehlermeldung
Die Ursache kann an verschiedenen Laufzeitfehlern der Komponente „edge-qpid-server
“ liegen. Wenn edge-qpid-server
in der Regel einen Laufzeitfehler von PostgreSQL empfängt, wird die Dead-Letter-Warteschlange erstellt, falls noch nicht vorhanden, und dann die folgende Nachricht an diese Adresse gesendet:
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.
Mögliche Ursachen
Ursache | Beschreibung | Anleitungen zur Fehlerbehebung für |
---|---|---|
Nachrichten in der Warteschlange für unzustellbare Nachrichten von qpidd | edge-qpid-server konnte Nachrichten, die aus Qpidd Broker gelesen wurden, nicht interpretieren oder Nachrichten in PostgreSQL speichern.
|
Edge Private Cloud-Nutzer |
Allgemeine Diagnoseschritte
Führen Sie den folgenden Befehl aus, um die Statistiken der Qpidd-Warteschlange anzusehen:
qpid-stat -q
Die Ausgabe gibt die beim Broker registrierten Warteschlangen zurück. Wenn die Warteschlange mit dem Namen auf „-dl“ endet enthält, sind Nachrichten in der Warteschlange für unzustellbare Nachrichten festhängen.
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
Ursache: Nachrichten hängen in der Warteschlange für unzustellbare Nachrichten von qpidd fest.
Diagnose
Diese Bedingung kann in folgenden Fällen eintreten:
- In der Vergangenheit war ein Upgrade durchgeführt worden, als PostgreSQL ausfiel.
- Ein vorübergehender Ausfall von PostgreSQL aufgrund von Netzwerkproblemen.
edge-qpid-server
hat versucht, eine Nachricht an PostgreSQL zu senden, aber PostgreSQL hat einen Laufzeitfehler zurückgegeben.
Auflösung
Notieren Sie sich den Namen der Warteschlangen aus den häufigen Diagnoseschritten. Beispiel:
ax-q-axgroup-001-consumer-group-001
ax-q-axgroup-001-consumer-group-001-dl
Führen Sie den Befehl
qpid-tool
aus, um eine interaktiveqpid
-Eingabeaufforderung aufzurufen:qpid-tool
Dieser Kommando gibt Folgendes zurück:
Management Tool for QPID qpid:
Führen Sie
list broker
aus, um eine Liste der aktiven Broker abzurufen:list broker
Dieser Kommando gibt Folgendes zurück:
Object Summary: ID Created Destroyed Index ======================================= 125 21:00:00 - amqp-broker
Die Spalte
ID
gibt dabei die ID des Brokers an.Notieren Sie sich die ID des Zwischenhändlers. Im Beispiel ist das 125.
Führen Sie den folgenden Befehl aus, um die Nachrichten aus der Dead-Letter-Warteschlange zurück in die eigentliche Warteschlange zu verschieben:
call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}
Dieser Kommando gibt Folgendes zurück:
OK (0) - {}
Wenn keine Ausgabe vorhanden ist, muss nichts unternommen werden, um zu erfassen, dass keine Nachrichten verschoben werden müssen. Wenn
OK(0)
nicht angezeigt wird, wenden Sie sich an den Apigee Edge-Support.Beenden Sie das Terminal "qpid-tool".
quit
Warten Sie fünf Minuten und führen Sie die Diagnoseschritte unter Allgemeine Diagnoseschritte noch einmal aus. Überprüfen Sie, ob die Nachrichten in der eigentlichen Warteschlange verarbeitet werden, und achten Sie darauf, dass die Anzahl der unzustellbaren Nachrichten auf 0 bleibt.
Wenn das Problem weiterhin besteht, fahren Sie mit dem nächsten Abschnitt fort.
Erfassen von Diagnoseinformationen erforderlich
Wenn das Problem trotz Befolgen der obigen Anweisungen weiterhin besteht, holen Sie die folgenden Diagnoseinformationen zusammen. Teilen Sie sie dem Apigee Edge-Support mit:
- Qpidd-Logs:
/opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
- Postgresql-Logs:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
- Edge-qpid-Server-Logs:
/opt/apigee/var/log/edge-qpid-server/logs/system.log
- Edge-postgres-server-Logs:
/opt/apigee/var/log/edge-postgres-server/logs/system.log
QPIDD-Warteschlangenstatistiken:
qpid-stat -q
Vom folgenden curl-Befehl zurückgegebene Analytics-Gruppe:
curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax