2012-03-19 2 views
3

Когда сервер приложений неожиданно завершает работу, Hibernate Search не может выполнить изящное завершение работы Lucene. Оставляя write.lock файлы в каждом каталоге индекса. Это, конечно, вполне нормально. Но - блокирующие файлы также остаются после перезапуска приложения. Который вызывает исключения таймаута блокировки в течение некоторого времени.Как справиться с восстановлением индекса Hibernate-Search?

Вопрос в том, есть ли обычный способ обработки восстановления.

В первую очередь на ум будет проверяться наличие файлов write.lock. Если он найден, они удаляются, и все индексы перестраиваются. Но, возможно, Hibernate-Search делает это автоматически при правильной настройке?

+0

Раньше никто не имел дело с файлами write.lock? –

ответ

3

Если Hibernate Search должен был удалить файлы блокировки при загрузке, это может привести к уничтожению вашего индекса, если по ошибке вы настроили два приложения для запуска по одному и тому же индексу. Следовательно, не удалять файл блокировки является целью блокировки.

Тем не менее, мы поняли, что это раздражает: если вы можете использовать Native LockFactory (http://docs.jboss.org/hibernate/search/4.1/reference/en-US/html_single/#search-configuration-directory-lockfactories) даже разбился/убит JVM выпустит файлы блокировки.

Если вы обновляете до последних версий, Native используется по умолчанию, если обнаруженная платформа считается достаточно безопасной.

Смежные вопросы