Offene SQL-Connection feststellen...

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Sonntag 5. Juni 2005, 19:22

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

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Sonntag 5. Juni 2005, 20:19

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
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Sonntag 5. Juni 2005, 20:46

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)???

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
BlackJack

Sonntag 5. Juni 2005, 21:05

Dateien und Sockets werden spätestens vom Betriebsystem geschlossen wenn ein Programm beendet wird.
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Sonntag 5. Juni 2005, 21:09

Naja gut, dann muß ich mir ja nicht all zuviele Sorgen machen ;) Schön wäre es aber schon mal festzustellen, welche connections/handles offen sind...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Sonntag 5. Juni 2005, 21:53

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
BlackJack

Montag 6. Juni 2005, 22:26

Aber immer dran denken: Namen mit einem führenden Unterstrich sollte man höchstens mal zum Debuggen verwenden und nicht "wirklich" benutzen.
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Dienstag 7. Juni 2005, 06:31

querdenker hat geschrieben:Mit welcher DB arbeitest du?
Mit MySQLdb... Leider sind die Doku's ja nicht so besonders...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
BlackJack

Mittwoch 8. Juni 2005, 00:38

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.
Antworten