View a markdown version of this page

Gestione delle sessioni con Amazon RDS Data API - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione delle sessioni con Amazon RDS Data API

RDS Data API mantiene un pool di connessioni al database e le riutilizza tra le chiamate per ridurre il sovraccarico di connessione. Prima di riutilizzare una connessione, RDS Data API reimposta lo stato della sessione. Il ripristino varia in base al motore del database: su PostgreSQL, RDS Data API esegue DISCARD ALL l'istruzione per cancellare lo stato della sessione, ad esempio tabelle temporanee, istruzioni preparate e parametri a livello di sessione; su MySQL, RDS Data API reimposta la connessione (equivalente a). COM_RESET_CONNECTION

Queste reimpostazioni riguardano gli attributi a livello di sessione di proprietà del motore, ma non è garantito che lo stato creato da un'estensione venga incluso. Le estensioni potrebbero non comportarsi allo stesso modo degli altri attributi a livello di sessione quando vengono eseguite queste operazioni di pulizia e il loro stato può persistere sulla connessione al database dopo il ripristino. Poiché RDS Data API riutilizza le connessioni, lo stato lasciato da un'estensione non si limita alla chiamata che l'ha creata e può ancora essere presente quando una chiamata successiva riutilizza la stessa connessione.

dblinkè un esempio di questo comportamento: DISCARD ALL non chiude le connessioni aperte dall'dblinkestensione, quindi una dblink connessione denominata aperta in una chiamata può rimanere aperta quando la connessione viene riutilizzata. Altre estensioni che contengono risorse al di fuori dello stato di sessione del motore possono comportarsi in modo simile.

Se utilizzi estensioni con RDS Data API, non fare affidamento sulla reimpostazione della sessione per rilasciare lo stato di proprietà dell'estensione. Crea e rilascia quello stato all'interno della stessa transazione, utilizzando la funzione di smontaggio dell'estensione. Perchédblink, chiudi ogni connessione con. dblink_disconnect