@Trubinial Guru Verwende doch am besten SQLAlchemy, denn diese Bibliothek nimmt Dir das sogenannte "Connection pooling" ab, also das Erzeugen und Vorhalten von Datenbankverbindungen, die Zuweisung derselben an Threads, und das schlussendliche Schließen. Den Rest dieser Bibliothek musst Du je erst mal nicht verwenden, es reicht erst mal, wenn Du Deine Datenbankverbindungen über SQLAlchemy aufbaust.
Das ordentliche Schließen von Datenbankverbindungen ist wichtig. Ansonsten kann es geschehen, dass Transaktionen nicht abgeschlossen werden, und Daten somit nicht in die Datenbank geschrieben werden.
SQLite - Database is locked/Speicherzugriffsfehler
- noisefloor
- User
- Beiträge: 4149
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Die Punkte 5 und 6 der SQLite FAQs erklären das für SQLite ganz gut.
SQLAlchemy ist unter Python in Kombination mit relationalen Datenbanken aber immer ein guter Tipp, siehe Lunars Posting.
Gruß, noisefloor
Wichtig, weil dir bei jeder DB sonst irgendwann die Verbindungen ausgehen - und dann hängt die Applikation oder wirft einen Fehler.Wie wichtig ist es eigentlich die Verbindungen wieder zu schließen?
Die Punkte 5 und 6 der SQLite FAQs erklären das für SQLite ganz gut.
SQLAlchemy ist unter Python in Kombination mit relationalen Datenbanken aber immer ein guter Tipp, siehe Lunars Posting.
Gruß, noisefloor
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Am besten ist natürlich das OS des C64. Stürzt das mal ab, so ist es nach <1 Sek wiederhergestellt!!! Da können diese neumodischen mobilen Beschäftigungstherapiesysteme einfach nicht mithalten...Leonidas hat geschrieben: * Außer natürlich ihr seit jetzt fiese Appleianer oder Android-Fanboys, denn das einzige richtige OS is natürlich Firefox OS. SCNR

encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
-
- User
- Beiträge: 117
- Registriert: Dienstag 7. April 2009, 13:40
Tausend Dank für den sqlalchemy Tipp. Schade dass ich nicht schon vorher Wind davon bekommen habe. Nach dem Umstieg auf sqlalchemy und einigem testen scheint alles wunderbar zu funktionieren.
Das einzige Problem ist nun, dass zwei Threads, die eigentlich nur im Hintergrund arbeiten und deren Datenbank-Zugriffe keine Priorität haben sollten, manchmal die Verbindungen blockieren und der Hauptprozess auf das Beenden der Verbindung im Thread warten muss. Gibt es da eine einfache Möglichkeit, dass die Verbindungen der Threads benachteiligt werden und nur dann laufen, wenn gerade kein anderer Verbindungs-Versuch läuft?
Ich bin in der Dokumentation den Teil über Connection Pooling durchgegangen, blicke aber irgendwie nicht ganz durch.
Vielen Dank nochmal!
Das einzige Problem ist nun, dass zwei Threads, die eigentlich nur im Hintergrund arbeiten und deren Datenbank-Zugriffe keine Priorität haben sollten, manchmal die Verbindungen blockieren und der Hauptprozess auf das Beenden der Verbindung im Thread warten muss. Gibt es da eine einfache Möglichkeit, dass die Verbindungen der Threads benachteiligt werden und nur dann laufen, wenn gerade kein anderer Verbindungs-Versuch läuft?
Ich bin in der Dokumentation den Teil über Connection Pooling durchgegangen, blicke aber irgendwie nicht ganz durch.
Vielen Dank nochmal!