J'ai tenté d'interroger une instance de base de données Amazon Relational Database Service (Amazon RDS) for PostgreSQL ou une instance de base de données de l’édition Amazon Aurora compatible avec PostgreSQL. L'une des erreurs suivantes est survenue : « Impossible d'envoyer les données au client » ou « Impossible de recevoir les données du client ».
Résolution
Le processus backend d’une instance de base de données Amazon RDS doit être en mesure d’envoyer ou de recevoir les données d'un client. Dans le cas contraire, le processus backend enregistre l'une des erreurs évoquées ci-dessus dans le journal PostgreSQL. Pour résoudre ce problème, procédez comme suit :
Vérification de la vitalité du client
Commencez par vérifier la vitalité du processus client. Si le processus client se bloque en raison d'un manque de mémoire (OOM), par exemple, il est possible que la session se soit interrompue de manière incorrecte. Cette interruption peut entraîner l'une des erreurs mentionnées.
Réduction des paramètres tcp_keepalives_idle et tcp_keepalives_interval
Si le temps de traitement d'une requête est trop long, il est possible que la session ait été interrompue de manière incorrecte par le client. Pour résoudre ce problème, augmentez le paramètre de délai d'attente du client. Vous pouvez également réduire les paramètres tcp_keepalives_idle et tcp_keepalives_interval pour vérifier la vitalité du client à partir du processus backend. Pour en savoir plus, consultez la section Utilisation des groupes de paramètres.
Pour vérifier les valeurs par défaut de tcp_keepalives_idle et de tcp_keepalives_interval, utilisez un client PostgreSQL tel que psql pour exécuter la commande suivante :
SELECT name, setting FROM pg_settings WHERE name LIKE 'tcp_keepalives_%'
Vérification de la connectivité
Si l'erreur se produit malgré la réduction des temps de traitement des requêtes, vérifiez la connectivité entre le client et l'instance de base de données.
L'erreur se produit-elle après un basculement depuis la session rdsadmin ?
Si l'erreur se produit après un basculement depuis une session rdsadmin, vous pouvez l’ignorer.
Informations connexes
Codes d'erreur PostgreSQL (sur le site Web de PostgreSQL)
Connexions et authentification (sur le site Web de PostgreSQL)
Définition des paramètres TCP keepalives