2008-10-12 5 views
4

J'ai un fichier db berkeley (* .bdb) qui est créé par l'implémentation C (module python bsddb). Est-il possible de lire ce fichier par une implémentation Java pure de Berkeley Db? J'ai essayé de le lire en utilisant berkeley db java edition (je) mais je ne pouvais pas. Je jette une exception en disant qu'il ne pouvait pas détecter la base de données de Berkeley. Les fichiers db berkeley ne sont-ils pas interopérables entre différentes implémentations? Si oui, pourquoi?puis-je utiliser bdb (berkeley db) fichier créé par l'implémentation c (python bsddb) par oracle berkeley db java édition?

Répondre

5

n °

Selon le Berkeley DB Java Edition FAQ, Berkeley DB et Berkeley DB Java Edition ne sont pas compatibles entre eux parce qu'ils ont une structure de mise en page de fichier.

0

Je n'ai pas recherché la réponse définitive, mais j'ai la même expérience. Une base de données créée avec pythons bdb, et également accessible avec les utilitaires cli, n'est pas détectée du tout par l'API Java. L'inverse était également vrai.

1

Notez qu'il existe trois produits différents

  1. Berkeley DB - la mise en œuvre C
  2. Berkeley DB Java Edition
  3. Berkeley DB XML

voir, Wikipedia

Il est vrai que le "Berkeley DB" et "Berkeley DB Java Edition" ont di fférent (c'est-à-dire incompatible) format de fichier. Cependant, le produit "Berkeley DB" fournit une API Java via JNI. Il est donc possible d'accéder au fichier de données écrit par l'implémentation C à partir de Java, mais pas avec "Berkeley DB Java Edition".