Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Sitzungsverwaltung mit Amazon RDS Data API
Die RDS Data API verwaltet einen Pool von Datenbankverbindungen und verwendet sie für mehrere Aufrufe wieder, um den Verbindungsaufwand zu reduzieren. Vor der Wiederverwendung einer Verbindung setzt die RDS Data API den Sitzungsstatus zurück. Das Zurücksetzen unterscheidet sich je nach Datenbank-Engine: Auf PostgreSQL führt die RDS Data API die DISCARD ALL Anweisung aus, um den Sitzungsstatus wie temporäre Tabellen, vorbereitete Anweisungen und Parameter auf Sitzungsebene zu löschen; auf MySQL setzt die RDS Data API die Verbindung zurück (entspricht). COM_RESET_CONNECTION
Diese Resets beziehen sich auf Attribute auf Sitzungsebene, die der Engine gehören, aber es kann nicht garantiert werden, dass der von einer Erweiterung erzeugte Status enthalten ist. Erweiterungen verhalten sich möglicherweise nicht wie andere Attribute auf Sitzungsebene, wenn diese Säuberungen ausgeführt werden, und ihr Status kann nach dem Zurücksetzen in der Datenbankverbindung bestehen bleiben. Da die RDS Data API Verbindungen wiederverwendet, ist der Status, den eine Erweiterung hinterlassen hat, nicht auf den Aufruf beschränkt, durch den sie erstellt wurde. Er kann auch dann noch vorhanden sein, wenn ein späterer Aufruf dieselbe Verbindung wiederverwendet.
dblinkist ein Beispiel für dieses Verhalten: Schließt DISCARD ALL keine Verbindungen, die von der dblink Erweiterung geöffnet wurden, sodass eine benannte dblink Verbindung, die in einem Anruf geöffnet wurde, geöffnet bleiben kann, wenn die Verbindung wiederverwendet wird. Andere Erweiterungen, die Ressourcen außerhalb des Sitzungsstatus der Engine enthalten, können sich ähnlich verhalten.
Wenn Sie Erweiterungen mit der RDS-Daten-API verwenden, verlassen Sie sich nicht darauf, dass die Sitzung auf den Status zurückgesetzt wird, der der Erweiterung gehört. Erstellen und veröffentlichen Sie diesen Status innerhalb derselben Transaktion, indem Sie die eigene Teardown-Funktion der Erweiterung verwenden. Schließen Sie für dblink jede Verbindung mit. dblink_disconnect