У нас есть сайт DotNetNuke, работающий на двух серверах с балансировкой нагрузки.Чтобы обеспечить синхронизацию файлов на этих серверах, мы используем службу репликации файлов.
Поиск отлично работает на DotNetNuke, когда не сбалансирована нагрузка, но в настройке балансировки нагрузки поиск перестает работать через некоторое время (нет предложений, без результатов).
Следующее связанное исключение присутствует во всех наших файлах журналов:
[D:2][T:31][ERROR] DotNetNuke.Services.Exceptions.Exceptions - Lucene.Net.Store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@D:\Sites\SiteName\App_Data\Search\write.lock
at Lucene.Net.Store.Lock.Obtain(Int64 lockWaitTimeout)
at Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean create, IndexDeletionPolicy deletionPolicy, Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
at Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a, MaxFieldLength mfl)
at DotNetNuke.Services.Search.Internals.LuceneControllerImpl.get_Writer()
at DotNetNuke.Services.Search.Internals.LuceneControllerImpl.Delete(Query query)
at DotNetNuke.Services.Search.Internals.InternalSearchControllerImpl.DeleteSearchDocumentInternal(SearchDocument searchDocument, Boolean autoCommit)
at DotNetNuke.Services.Search.Internals.InternalSearchControllerImpl.DeleteSearchDocumentsByModule(Int32 portalId, Int32 moduleId, Int32 moduleDefId)
at DotNetNuke.Services.Search.SearchDataStore.StoreSearchItems(SearchItemInfoCollection searchItems)
at DotNetNuke.Services.Search.SearchEngine.IndexContent()
at DotNetNuke.Services.Search.SearchEngineScheduler.DoWork()
Лучше всего предположить, что проблема вызвана тем, что оба сервера выполняют свои функции поиска и репликацию файловСлужба синхронизирует файлы, что вызывает конфликты.
Каков наилучший способ решения этой проблемы?
- Добавьте правило исключения, чтобы не реплицировать папку индекса поиска, но позволить обоим серверам продолжать поиск?
- Каким-то образом отключить индексацию на одном сервере?
- Есть еще предложения?
Сведения об установке:
DNN против 09.02.00 (366)
.NET Framework 4.6