<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
Symptôme
Les données d'analyse sont manquantes dans l'interface utilisateur Edge parce que le serveur Qpidd ne transfère pas les messages d'analyse vers PostgreSQL. Dans Edge, le composant edge-qpid-server
correspond au serveur Qpidd.
Qpidd gère deux files d'attente pour chaque groupe d'analyse:
ax-q-axgroup001-consumer-group-001
Cette file d'attente contient les messages d'analyse envoyés à partir des processeurs et routeurs de messages. C'est ici que les messages sont extraits par
edge-qpid-server
, qui les analyse et les insère dans PostgreSQL. Une fois traités correctement, les messages sont supprimés de la file d'attente.ax-q-axgroup001-consumer-group-001-dl
Il s'agit de la file d'attente de lettres mortes. Il sert de destination aux messages que
edge-qpid-server
n'a pas réussi à traiter et ne souhaite donc plus recevoir. Ce champ est généralement renseigné lorsque le nombre maximal de livraisons est dépassé ou si PostgreSQL a refusé l'insertion de nouvelles données en raison d'erreurs d'exécution.
Message d'erreur
La cause du problème peut être due à diverses erreurs d'exécution du composant edge-qpid-server
. En règle générale, si edge-qpid-server
reçoit une erreur d'exécution de PostgreSQL, il crée la file d'attente de lettres mortes si elle n'existe pas déjà, puis y envoie le message suivant:
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.
Causes possibles :
Cause | Description | Instructions de dépannage applicables aux |
---|---|---|
Messages bloqués dans la file d'attente de lettres mortes de qpidd | edge-qpid-server n'a pas compris les messages lus par l'agent Qpidd ou n'a pas pu conserver les messages dans PostgreSQL.
|
Utilisateurs du cloud privé Edge |
Étapes de diagnostic courantes
Exécutez la commande suivante pour afficher les statistiques de la file d'attente Qpidd:
qpid-stat -q
Le résultat renvoie l'ensemble des files d'attente enregistrées auprès de l'agent. Si la file d'attente dont le nom se termine par "-dl" contient des messages, cela signifie qu'il y a des messages bloqués dans la file d'attente de lettres mortes.
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
Cause: messages bloqués dans la file d'attente de lettres mortes de qpidd
Diagnostic
Cette situation peut se produire dans les cas suivants:
- Une mise à niveau avait déjà eu lieu, période pendant laquelle PostgreSQL était indisponible.
- Une indisponibilité temporaire de PostgreSQL due à des problèmes de réseau.
- Le
edge-qpid-server
a tenté d'envoyer un message à PostgreSQL, mais PostgreSQL a renvoyé une erreur d'exécution.
Solution
Notez le nom des files d'attente sur la page Étapes courantes du diagnostic. Exemple :
ax-q-axgroup-001-consumer-group-001
ax-q-axgroup-001-consumer-group-001-dl
Exécutez la commande
qpid-tool
pour saisir une inviteqpid
interactive:qpid-tool
Cette virgule renvoie le code suivant:
Management Tool for QPID qpid:
Exécutez
list broker
pour obtenir la liste des courtiers actifs:list broker
Cette virgule renvoie le code suivant:
Object Summary: ID Created Destroyed Index ======================================= 125 21:00:00 - amqp-broker
où la colonne
ID
indique l'ID de l'agent.Notez l'ID de l'agent. Dans cet exemple, il s'agit de 125.
Exécutez la commande suivante pour replacer les messages de la file d'attente de lettres mortes dans la file d'attente réelle:
call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}
Cette virgule renvoie le code suivant:
OK (0) - {}
Si aucun résultat ne s'affiche, cela signifie qu'il n'y a rien à faire (aucun message à déplacer). Si vous ne voyez pas
OK(0)
, contactez l'assistance Apigee Edge.Quittez le terminal qpid-tool.
quit
Patientez cinq minutes, puis exécutez de nouveau les étapes de diagnostic à partir de la page Étapes courantes du diagnostic. Vérifiez que les messages de la file d'attente réelle sont en cours de traitement et assurez-vous que le nombre de messages de lettres mortes reste à 0.
Si le problème persiste, passez à la section suivante.
Vous devez collecter des informations de diagnostic
Si le problème persiste alors que vous avez suivi les instructions ci-dessus, veuillez rassembler les informations de diagnostic suivantes. Contactez-les et partagez-les avec l'assistance Apigee Edge:
- Journaux Qpidd:
/opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
- Journaux Postgresql:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
- Journaux Edge-qpid-server:
/opt/apigee/var/log/edge-qpid-server/logs/system.log
- Journaux du serveur Edge-postgres:
/opt/apigee/var/log/edge-postgres-server/logs/system.log
Statistiques de la file d'attente Qpidd:
qpid-stat -q
Groupe d'analyse renvoyé par la commande curl suivante:
curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax