Was bedeutet dieser Code?
Code SQLITE_PROTOCOL · Ein von SQLite gemeldetes Problem.
Übersetzte Erklärung
Der Ergebniscode SQLITE_PROTOCOL weist auf ein Problem mit dem von SQLite verwendeten Dateisperrprotokoll hin. Der SQLITE_PROTOCOL-Fehler wird derzeit nur zurückgegeben, wenn der WAL-Modus verwendet wird und versucht wird, eine neue Transaktion zu starten. Es kann zu einer Race-Bedingung kommen, wenn zwei separate Datenbankverbindungen gleichzeitig versuchen, eine Transaktion im WAL-Modus zu starten. Der Verlierer des Rennens zieht sich zurück und versucht es nach einer kurzen Verzögerung erneut. Wenn dieselbe Verbindung über einen Zeitraum von mehreren Sekunden Dutzende Male den Locking Race verliert, wird sie schließlich aufgeben und SQLITE_PROTOCOL zurückgeben. Der SQLITE_PROTOCOL-Fehler sollte in der Praxis sehr, sehr selten und nur dann auftreten, wenn es viele separate Prozesse gibt, die alle intensiv darum konkurrieren, in dieselbe Datenbank zu schreiben.
Google Translate · Dies ist eine automatische Übersetzung. Prüfen Sie Fachbegriffe und anwendbare Bedingungen im englischen Original.
Offizielle Erklärung · Originaltext
The SQLITE_PROTOCOL result code indicates a problem with the file locking protocol used by SQLite. The SQLITE_PROTOCOL error is currently only returned when using WAL mode and attempting to start a new transaction. There is a race condition that can occur when two separate database connections both try to start a transaction at the same time in WAL mode. The loser of the race backs off and tries again, after a brief delay. If the same connection loses the locking race dozens of times over a span of multiple seconds, it will eventually give up and return SQLITE_PROTOCOL. The SQLITE_PROTOCOL error should appear in practice very, very rarely, and only when there are many separate processes all competing intensely to write to the same database.