View a markdown version of this page

Gestion des sessions avec l'API de données Amazon RDS - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion des sessions avec l'API de données Amazon RDS

L'API RDS Data gère un pool de connexions à la base de données et les réutilise entre les appels afin de réduire la charge de connexion. Avant de réutiliser une connexion, l'API RDS Data réinitialise l'état de la session. La réinitialisation varie selon le moteur de base de données : sur PostgreSQL, l'API RDS Data exécute DISCARD ALL l'instruction pour effacer l'état de la session, tel que les tables temporaires, les instructions préparées et les paramètres au niveau de la session ; sur MySQL, l'API RDS Data réinitialise la connexion (équivalent à). COM_RESET_CONNECTION

Ces réinitialisations couvrent les attributs de niveau session que possède le moteur, mais il n'est pas garanti que l'état créé par une extension soit inclus. Les extensions peuvent ne pas se comporter de la même manière que les autres attributs de niveau session lorsque ces nettoyages sont exécutés, et leur état peut persister sur la connexion à la base de données après la réinitialisation. Comme l'API RDS Data réutilise les connexions, l'état laissé par une extension n'est pas limité à l'appel qui l'a créée et peut toujours être présent lorsqu'un appel ultérieur réutilise la même connexion.

dblinkest un exemple de ce comportement : DISCARD ALL ne ferme pas les connexions ouvertes par l'dblinkextension, de sorte qu'une dblink connexion nommée ouverte lors d'un appel peut rester ouverte lorsqu'elle est réutilisée. Les autres extensions qui contiennent des ressources en dehors de l'état de session du moteur peuvent se comporter de la même manière.

Si vous utilisez des extensions avec l'API RDS Data, ne comptez pas sur la réinitialisation de session pour libérer l'état appartenant à l'extension. Créez et publiez cet état au cours de la même transaction, en utilisant la propre fonction de démontage de l'extension. Pourdblink, fermez chaque connexion avecdblink_disconnect.