Ich möchte gern feststellen, ob am Ende meines Skriptes, evtl. noch SQL-Connections vorhanden sind. Kann man das feststellen???
Man konnte doch auch eine Fuktion definieren, die immer beim Programm-Ende noch ausgeführt werden soll... Ich weiß leider nicht mehr wie man das realisieren kann...
EDIT: Punkt 2 hat sich erledigt: atexit
Offene SQL-Connection feststellen...
Hoi Jens,
vielleicht nicht ganz die Antwort auf Deine Frage, aber ich würde alle Verbindungen sammeln (z. B. in einer Liste) und beim Verlassen eines Programms eine Schleife drüber machen und versuchen (try/except) alle Verbindungen wieder zu schließen. Auf diese Weise mußt Du nicht erst suchen und testen, sondern machst einfach. Ich weiß nicht, wie Dein Skript nun ausschaut, aber u. U. spart dir diese Heransgehensweise Zeit und Nerven.
Gruß,
Christian
vielleicht nicht ganz die Antwort auf Deine Frage, aber ich würde alle Verbindungen sammeln (z. B. in einer Liste) und beim Verlassen eines Programms eine Schleife drüber machen und versuchen (try/except) alle Verbindungen wieder zu schließen. Auf diese Weise mußt Du nicht erst suchen und testen, sondern machst einfach. Ich weiß nicht, wie Dein Skript nun ausschaut, aber u. U. spart dir diese Heransgehensweise Zeit und Nerven.
Gruß,
Christian
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ich würde es zum testen nutzen, damit ich erkennen kann, ob ich alles richtig programmiert hab und alle SQL-connections wirklich wieder geschlossen werden.
Wobei, werden nicht evtl. alle connections, beim ende des CGI-Skriptes von MySQLdb automatisch geschlossen??? Was passiert beim einem sys.exit(1)???
Wobei, werden nicht evtl. alle connections, beim ende des CGI-Skriptes von MySQLdb automatisch geschlossen??? Was passiert beim einem sys.exit(1)???
Dateien und Sockets werden spätestens vom Betriebsystem geschlossen wenn ein Programm beendet wird.
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
hi jens!
Mit welcher DB arbeitest du?
vom kinterbasdb-Modul kenne ich die Funktionen _has_db_handle und _has_transaction für eine connection, desweiteren _close_physical_connection um die Verbindung wirklich dicht zu machen.
Vielleicht hat 'dein' DB-Modul ja auch eine solche Funktion??
mfg, querdenker
Mit welcher DB arbeitest du?
vom kinterbasdb-Modul kenne ich die Funktionen _has_db_handle und _has_transaction für eine connection, desweiteren _close_physical_connection um die Verbindung wirklich dicht zu machen.
Vielleicht hat 'dein' DB-Modul ja auch eine solche Funktion??
mfg, querdenker
Aber immer dran denken: Namen mit einem führenden Unterstrich sollte man höchstens mal zum Debuggen verwenden und nicht "wirklich" benutzen.
Ich weiss, das sagte ich schon mal: die DB API 2.0 sagt eigentlich alles was man wissen muss und sollte wenn man mit Modulen arbeitet, die diese implementieren.