2014-03-03 4 views
5

Ich bekomme einige Probleme mit der Datenbanksperre (SQLite_BUSY) und ich befürchte, dass SQLite nicht für mich funktioniert.Können mehrere Anwendungen auf eine SQLite-Datenbank zugreifen?

Grundsätzlich ist mein Setup ein Cronjob, der regelmäßig einige unspektakuläre Java-Funktionen aufruft und (nur neu im Projekt) einen Jetty/Jackson/Hibernate-REST-Service über ein Framework namens Dropwizard. Beide 'Module' müssen Datenbankzugriff haben - und das vielleicht zur selben Zeit ...

Können also mehrere Anwendungen auf eine SQLite-Datenbank zugreifen, oder muss ich zu MySQL wechseln?

Antwort

7

SQLite kann mehrere Anwendungen behandeln lesen die db zur gleichen Zeit, aber nicht schreiben zu ihm.

Vom SQLite FAQ:

Mehrere Prozesse können auf die gleiche Datenbank zur gleichen Zeit geöffnet haben. Mehrere Prozesse können gleichzeitig eine SELECT-Operation ausführen. Aber nur ein Prozess kann Änderungen an der Datenbank jederzeit, jedoch vornehmen.

+0

Danke für die Antwort :) Sie haben mir viel geholfen, obwohl ich zu MySQL wechseln werde. Es ist besser für meine Anforderungen geeignet. – nxrd

+0

Was ist, wenn es dieselbe Datenbank aber auf verschiedenen Tabellen verwendet? – tiktak

+1

@tiktak Dann kann der _ "nur ein Prozess Änderungen vornehmen ..." _ Regel, die ich oben zitiert immer noch gilt - jede Tabelle schreiben wird die ** gesamte ** Datenbank sperren, während es passiert. SQLite ist zu einfach, um Tabellensperren durchzuführen. –

Verwandte Themen