Bonjour à tous,

Voila j'ai un soucis de compréhension sur un problème que j'ai rencontré récemment.

J'utilise SQLite à travers la classe SQLiteDatabase d'Android. Dans mon code, j'ai mis en place un système de transaction à l'aide des méthodes :
  • beginTransaction() pour commencer la transaction
  • setTransactionSuccessful() si mes opérations (insertions dans différentes tables) se sont bien passées
  • endTransaction() que j'appelle dans tous les cas pour terminer la transaction.


Jusqu'ici tout va bien, les données sont insérées sans aucun soucis dans la base.

Le problème concerne le fichier leNomDeMaBDD-journal, ce fichier est crée lors du début de ma transaction (beginTransaction()), et est supprimé à la fin de la transaction (appel de setTransactionSuccessful() puis de endTransaction()) sur mes périphériques en 2.2, mais pas sur ceux en 4.1 ?? Dans ce dernier cas, le fichier reste toujours visible dans le dossier contenant la BDD.

Or d'après ce que je vois sur la doc, il devrait être "normalement" (bizarre l'utilisation du terme "usually" ??) supprimé à la fin :

The rollback journal is usually created and destroyed at the start and end of a transaction, respectively. But there are exceptions to this rule.
A noter, que je n'ai bien entendu aucune erreur qui se produit pendant mes calculs (déjà vérifié plusieurs fois), il n'y a pas non plus d'erreurs à l'ouverture ou la fermeture de la base.

J'ai vérifié ma base et je suis bien en mode : journal_mode=DELETE et locking_mode=NORMAL je devrais donc ne pas rentré dans les exceptions décrites par la documentation de SQLite.

Bref je ne comprends pas si cela est normal (nouveau comportement sous android 4.1) ou si il y a un vrai soucis qui risque de m'exploser à la figure d'un moment à un autre ?

Merci d'avance