posso usare il file bdb (berkeley db) creato dall'implementazione c (python bsddb) dall'oracolo berkeley db java edition?
-
10-07-2019 - |
Domanda
Ho un file db berkeley (* .bdb) che viene creato dall'implementazione C (modulo python bsddb). È possibile leggere questo file con un'implementazione Java pura di Berkeley Db? Ho provato a leggerlo usando berkeley db java edition (je) ma non ci sono riuscito. je lancia un'eccezione dicendo che non è stato in grado di rilevare il database berkeley. I file db berkeley non sono interoperabili tra diverse implementazioni? In tal caso, perché?
Soluzione
No.
Secondo le Berkeley DB Java Edition FAQ , Berkeley DB e Berkeley DB Java Edition non sono compatibili tra loro perché hanno una struttura di layout dei file diversa.
Altri suggerimenti
Nota che ci sono tre diversi prodotti
- Berkeley DB - l'implementazione in C
- Berkeley DB Java Edition
- Berkeley DB XML
vedi Wikipedia
È vero che il " Berkeley DB " e "Berkeley DB Java Edition" hanno un formato di file diverso (cioè incompatibile). Tuttavia, il "Berkeley DB" il prodotto fornisce un'API Java tramite JNI. Quindi è possibile accedere al file di dati scritto dall'implementazione C da Java, ma non con "Berkeley DB Java Edition".
Non ho cercato la risposta definitiva, ma ho la stessa esperienza. Un database creato con pythons bdb, e accessibile anche con i programmi di utilità cli, non viene rilevato dall'API Java. Era vero anche il contrario.