SQLite: Database is locked

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
Aliobaba
Lazarusforum e. V.
Beiträge: 402
Registriert: Di 1. Mai 2012, 09:11

SQLite: Database is locked

Beitrag von Aliobaba »

Hallo,

seit der Versionsumstellung von Lazarus (Kubuntu Ubuntu 18.04.1 LTS Lazarus 1.6.4 vom 6.9.18 Ich arbeite mit "Zeos") kommt es bei mir immer mal wieder zu der Meldung:
"Database is locked"
Ich habe letzte Nacht verzweifelt nach einem Fehler in meinem Code gesucht und stellt dann im Verlauf fest, dass der Fehler nicht auftritt, wenn ich ein anderes Datenbank-File (also das File, wo die Daten drinnen sind) einlade und starte. Das Problem lag also in diesem Datenbank-File (Sorry; weiß kein besseres Wort).
Nun war dann natürlich die Fehlersuche relativ einfach. Ich fand diesen Beitrag:
https://im-coder.com/wie-kann-ich-eine- ... erren.html
In Linux und macOS können Sie etwas ähnliches machen, zum Beispiel, wenn Sie Ihre gesperrte Datei ist die Entwicklung.db:
$ fuser Entwicklung.db
Dieser Befehl wird angezeigt, welcher Prozess die Datei gesperrt wird:
> Entwicklung.db: 5430
Nur den Prozess zu beenden...
kill -9 5430
...Und Ihre Datenbank freigeschaltet werden.


Genau so konnte ich dann mein "Datenbank-File" wieder entsperren und es läuft seither ohne Probleme:

Zweck dieses Beitrags:
1. Vielleicht hilft es auch einem anderen User.
2. Vielleicht kann irgendwann jemand die Frage beantworten, warum dieses Phänomen mit meiner (ur)alten Lazarus-Version nie aufgetreten ist, jetzt aber plötzlich immer mal wieder (leider unreproduzierbar) auftritt.

Aliobaba
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

Socke
Lazarusforum e. V.
Beiträge: 2779
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: SQLite: Database is locked

Beitrag von Socke »

Aliobaba hat geschrieben:2. Vielleicht kann irgendwann jemand die Frage beantworten, warum dieses Phänomen mit meiner (ur)alten Lazarus-Version nie aufgetreten ist, jetzt aber plötzlich immer mal wieder (leider unreproduzierbar) auftritt.

Dazu müsste man erst einmal wissen, welcher Prozess die Datei sperrt und von dir abgeschossen wird.
Ich sperre mich immer selbst aus, indem ich in externen Tools noch Transaktionen offen habe. In der Regel reicht es dann aus, die Transaktionen zu beenden (Commit oder Rollback). Lazarus im Design-Modus kann dir hier die Datenbank ebenfalls sperren.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Aliobaba
Lazarusforum e. V.
Beiträge: 402
Registriert: Di 1. Mai 2012, 09:11

Re: SQLite: Database is locked

Beitrag von Aliobaba »

Es ist das eigene Programm (MyMemoryDB), das mich aussperrt. Hier bleibt offenbar gelegentlich eine Datenbank offen. Aufgetreten ist dies aber erst nach einem Wechsel/Update des Betriebssystems auf Kubuntu 18.04.1 .
Mit dieser Betriebssystemversion habe ich aber noch mehr Probleme (sh. viewtopic.php?f=19&t=11777&start=15 ). Ich denke ich werde zukünftig Linux Mint verwenden.

Vielen Dank für Eure Hilfe!

Aliobaba
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

Antworten