2012-05-16 10 views
5

In der Berkeley-DB-Dokumentation wird angegeben, dass die Gründe, die folgend sein:Wie ermittelt man den genauen Grund, warum gibt Berkeley db EINVAL auf db-> open zurück?

Ein ungültiger Flag-Wert oder Parameter angegeben wurde (zB unbekannter Datenbanktyp, Seitengröße, Hash-Funktion, Pad-Byte, Byte-Reihenfolge) oder ein Flag-Wert oder Parameter, der nicht mit der angegebenen Datenbank kompatibel ist. Das DB_THREAD Flag wurde angegeben und schnelle Mutexe sind für diese Architektur nicht verfügbar.

DB_THREAD Die Flagge wurde auf db- angegeben> offen, aber war nicht auf die angegebene DB_ENV-> offenen Aufruf für die Umwelt, in der der Handgriff DB erstellt wurde.

Eine flache Textdatei für die Sicherung wurde entweder mit dem DB_THREAD-Flag angegeben oder die bereitgestellte Datenbankumgebung unterstützt die Transaktionsverarbeitung.

Das einzige Flag, das ich verwende, ist DB_CREATE, der Datenbanktyp ist DB_BTREE.

Ich möchte den genauen Grund wissen, die zu EINVAL führen, aber ich fand keine Ausführlichkeit Konfiguration, die mir innerhalb "DB" Struktur helfen könnte (in DB_ENV, sie haben set_verbose Methode, aber ich verwende nicht DB_ENV).

Antwort

0

Sie können DB->err() und these examples einen Versuch geben. Wenn ich mich richtig erinnere gab es eine Umgebungsvariable (Shell-Umgebungsvariable export X=Y) kann man einstellen und die Bibliothek würde anfangen, Fehlermeldungen an stderr zu drucken, aber es könnte die DB Env-Sache gewesen sein ... sorry, kann die nicht finden Infos jetzt.