Résoudre les problèmes liés aux flux de données
| Symptôme | Causes probables | Actions |
|---|---|---|
| REST renvoie 401 | Informations d'identification manquantes ou non valides ; non-concordance de l'authentification proxy. | Vérifiez le mode d'authentification, la clé secrète, l'horloge, le cas échéant, et la route proxy. Ne pas incorporer les informations d'identification dans l'URL. |
| REST renvoie 403 | Le compte ne dispose pas du rôle Utilisateur, Opérateur ou Administrateur requis. | Utilisez la table des rôles dans Prérequis pour la configuration des flux de données et accordez uniquement les droits d'accès requis. |
| WebSocket renvoie 404 ou échec d'établissement de liaison | Chemin de canal codé en dur ; le proxy n'a pas acheminé ou mis à niveau ; nom de flux incorrect. | Récupérez le YAML généré et utilisez son hôte et son adresse de canal. Validez les en-têtes de mise à niveau WebSocket. |
| Echec de la vérification TLS | CA inconnue, certificat expiré, non-concordance d'hôte ou certificat client manquant. | Installez la chaîne d'autorité de certification correcte, confirmez le DNS et le SAN de certificat, et configurez le protocole TLS mutuel si nécessaire. |
| La connexion réussit mais aucun enregistrement n'arrive | begin=now sans nouvelle validation ; filtre exclut les données ; trace/chemin incorrect ; extraction non écrite. |
Générez une transaction connue, examinez la trace source, simplifiez temporairement les filtres et vérifiez la source de flux. |
| Le premier objet n'est pas LMD | Les enregistrements de schéma et de métadonnées sont attendus avant les données. | Classez chaque objet ; mettez en cache le schéma et les métadonnées au lieu de les traiter comme des erreurs. |
| L'analyseur JSON attend un objet mais reçoit un tableau | Le message WebSocket est un batch. | Analysez le tableau de niveau supérieur et itérez ses enregistrements. |
Le client ne peut pas se reconnecter à pos |
Le jeton non encodé en pourcentage, modifié, appartient à un autre flux ou l'historique de la trace a été purgé. | Utilisez le jeton enregistré exact, encodez-le en pourcentage, vérifiez la portée et suivez la procédure de récupération de position indisponible. |
| Des doublons apparaissent | atLeastOnce ; plantage entre l'écriture du récepteur et le point de reprise ; deux destinataires partagent le point de reprise ; nouvelle tentative non idempotente. |
Utilisez des points de reprise atomiques ou une idempotence et vérifiez la qualité du service et la propriété du consommateur. |
| Des enregistrements sont manquants après la récupération | atMostOnce a ignoré une position indisponible ; point de reprise enregistré avant la validation métier ; filtres modifiés. |
Auditez l'événement de récupération, rapprochez l'écart de données et utilisez exactlyOnce plus une transaction de point de reprise correcte pour les charges globales durables. |
| Colonnes manquantes avant ou après l'image | La journalisation source ou l'extraction a capturé une image partielle ; valeurs NULL omises ; modèle de ligne sélectionné. | Examinez la capture de trace, omitNullColumnValues, le modèle et le schéma d'exécution. Ne déduisez pas les champs absents comme nuls. |
| Le DDL est manquant | Le DDL n'est pas capturé, le filtre exclut le DDL ou la configuration source ne prend pas en charge l'événement attendu. | Validez la capture LDD source et incluez DDL dans les filtres d'opération. |
| Echec du destinataire après DDL | Le schéma mis en cache est obsolète ou le traitement en aval ne peut pas accepter la modification. | Remplacez le schéma/les métadonnées mis en cache lorsque de nouveaux enregistrements arrivent et exécutez la stratégie de migration de schéma régie. |
| L'enregistrement volumineux est tronqué ou fractionné | maxLobSize, maxDDLTextSize, maxRecordSize, limite de proxy ou limite de client. |
Augmentez les limites validées, sélectionnez la gestion des blocs lorsqu'elle est prise en charge et augmentez les limites des messages proxy/client. |
| Modifications de précision numérique | Nombre JSON analysé en virgule flottante binaire. | Utilisez l'analyse décimale ou treatAllColumnsAsStrings. |
| La mémoire grandit | Lenteur du traitement en aval, file d'attente non limitée, lots surdimensionnés ou boucle de reconnexion. | Lier les files d'attente, découpler la réception du traitement, régler les tailles de lot et mettre à l'échelle ou limiter le travail en aval. |
| Le destinataire CloudEvents ne trouve pas de champs | L'enregistrement GoldenGate se trouve sous data ou les valeurs d'enveloppe d'exécution diffèrent d'un exemple copié. |
Annulez l'encapsulation de data et utilisez les attributs YAML d'exécution et d'événement réel. |
Informations à collecter pour le support
-
Version et type de déploiement d'Oracle GoldenGate.
-
Configuration de flux de données nettoyée et génération de AsyncAPI YAML.
-
Nom du flux, trace et chemin source, qualité de service, filtres et paramètres JSON.
-
Horodatages UTC exacts, statut HTTP ou code de fermeture WebSocket et codes de message GoldenGate.
-
Dernier point de contrôle, dont le fonctionnement a été vérifié, et qu'il ait été encodé en pourcentage ; protégez-le ou hachez-le si nécessaire.
-
Journaux pertinents du service de distribution, de l'extraction, du proxy et du consommateur.
-
Un enregistrement de schéma/métadonnées nettoyé et une charge utile défaillante.
-
État de conservation du sentier et preuve que le poste demandé demeure disponible.