2012-05-16 4 views
5

Nella documentazione Berkeley DB, si precisa che i motivi possono essere i seguenti:Come determinare il motivo esatto, perché berkeley db restituisce EINVAL su db-> open?

stato specificato un valore di flag non valido o parametro (per esempio, sconosciuto tipo di database, dimensioni della pagina, la funzione di hash, byte pad, ordine byte) o un valore flag o un parametro che non è compatibile con il database specificato. Il flag DB_THREAD è stato specificato e i mutex veloci non sono disponibili per questa architettura.

Il flag DB_THREAD è stato specificato in DB-> open, ma non è stato specificato nel DB_ENV-> open call per l'ambiente in cui è stato creato l'handle del DB.

Un file di testo piano di backup è stato specificato con il flag DB_THREAD o l'ambiente di database fornito supporta l'elaborazione delle transazioni.

L'unica bandiera che utilizzo è DB_CREATE, il tipo di database è DB_BTREE.

Voglio conoscere il motivo esatto che porta a EINVAL, ma non ho trovato alcuna configurazione di verbosità che potrebbe aiutarmi nella struttura "DB" (in DB_ENV, hanno il metodo set_verbose, ma non uso DB_ENV).

risposta

0

Si può dare a DB->err() e these examples una prova. Se ricordo bene c'era una variabile di ambiente (variabile di ambiente shell è possibile export X=Y) si può impostare e la libreria dovrebbe iniziare a stampare messaggi di errore su stderr, ma potrebbe essere stata la cosa di DB Env ... mi dispiace, non riesco a trovare il informazioni ora