Question

Je remarque le verrouillage (OperationalError) lors de l'utilisation de l'application SQLite 3.7 pour Python. J'utilise Sqlalchemy pour Orm. Ce problème se produit sur Windows. J'utilise la base de données sur la même machine que l'application.

Cela semble fonctionner correctement sur Ubuntu. Vous vous demandez quel pourrait être le problème? Une ancienne version de SQLite a-t-elle été résolue ce problème?

Quelques idées :

-Il y a le problème de verrouillage avec Windows NFS pour SQLlite, mais comme j'utilise le système de fichiers local, cette possibilité est rejetée.

  • Un antivirus exécuté sur la machine peut-il provoquer un verrou, car il lit le fichier au fur et à mesure. Le verrouillage de la base de données n'est jamais libéré (j'ai attendu comme 5 min, tout en accédant à la ligne de commande DB via). Cela me fait réfléchir si un processus suspendu s'accrochait à verrouiller ou que le processus a été tué. Mais il semble que ce n'était pas le cas car le seul processus (serveur de bouteilles Python) qui était accédé à la base de données était en cours d'exécution. Il s'exécute sous un processus unique Apache.
Était-ce utile?

La solution

La façon dont le verrouillage se produit avec SQLite est documenté à http://www.sqlite.org/lockingv3.html - lis le. Sur Windows, vous pouvez utiliser le moniteur de processus de Sysinternal pour surveiller qui accéde au fichier qui se fera zéro sur le coupable.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top