2011-03-22 16 views
1

J'utilise MySQL pour stocker les index Compass, avec Tomcat sur RHEL, mais quand je ferme Tomcat et redémarrer mon processus d'indexation, cette erreur est lancée lors de l'indexation et l'indexation échoue:Compass indexation Lucene erreur PhantomReadLock

PhantomReadLock incapable d'obtenir verrouillage, write.lock/client indice

Peut-être parce que j'ARRÊTER Tomcat, cette erreur se produit dans Compass? Après beaucoup de recherches, j'ai trouvé que j'avais besoin de supprimer manuellement le fichier write.lock, mais je n'ai pas trouvé le fichier de verrouillage n'importe où dans mon dossier temporaire Tomcat. J'ai obtenu un enregistrement avec write.lock dans ma table d'index client dans MySQL, donc j'ai supprimé cette ligne et Compass a commencé à indexer correctement et l'erreur PhantomReadLock ne se produit plus.

Je veux juste clarifier - est-ce la bonne façon de résoudre ce problème write.lock ou dois-je faire quelque chose d'autre pour supprimer le verrou lors de l'arrêt de Tomcat?

Répondre

1

J'ai eu le même problème en utilisant Tomcat et j'ai trouvé cet article: http://docs.ngdata.com/daisy-kb/443-daisy.html.

Ce que j'appris est que si vous ne tuez Tomcat lorsque vous l'arrêtez (dans Eclipse, vous pouvez le faire « correctement » ou non), write.lock reste là, alors que si vous l'arrêtez en utilisant l'arrêt Script .sh/bat, le fichier est supprimé et le redémarrage suivant est propre.

Même si c'est une vieille question, j'espère que cela aide quelqu'un à la trouver par hasard.