2012-03-19 9 views
3

アプリケーションサーバーが予期せず終了した場合、Hibernate SearchはLuceneを正常にシャットダウンできません。各インデックスディレクトリにwrite.lockのファイルが残っています。それはもちろん普通のことです。しかし、アプリケーションを再起動した後もロックファイルが残っています。これにより、しばらくの間、ロックタイムアウトの例外が発生します。Hibernate-Searchインデックスリカバリの処理方法は?

私の質問は、リカバリを処理する通常の方法があるかどうかです。

最初に気になるのは、write.lockファイルの存在を確認することです。見つかった場合は削除され、すべてのインデックスが再構築されます。しかし、Hibernate-Searchは、適切に設定されていると自動的にこれを行います。

+0

以前は誰もwrite.lockファイルを扱う必要はありませんでしたか? –

答えて

3

Hibernate Searchがブート時にロックファイルを削除すると、2つのアプリケーションを同じインデックスで実行するように誤って設定した場合、インデックスを破壊する危険性があります。したがって、ロックファイルを削除しないことが、ロックの目的です。

それでも、我々はこれは迷惑だった実現:あなたもネイティブLockFactory (http://docs.jboss.org/hibernate/search/4.1/reference/en-US/html_single/#search-configuration-directory-lockfactories) を使用できるかどう墜落/ JVMは、ロックファイルをリリースする予定殺しました。

最新バージョンにアップグレードすると、検出されたプラットフォームが十分安全であると考えられる場合、Nativeがデフォルトで使用されます。

関連する問題