【问题标题】:Sitecore Core database index Update issueSitecore Core 数据库索引更新问题
【发布时间】:2014-09-24 05:43:00
【问题描述】:

我们正在使用具有 1 个 CMS 和 2 个 CD 配置的多服务器环境。 CMS 的 CORE 和 WEB 仅由 CD 2 共享,CD 1 作为其自己的 web 和核心共享。

问题是-CD2 的日志文件正在捕获下面提到的错误:

    ManagedPoolThread #14 00:00:05 INFO  Job started:Index_Update_IndexName=sitecore_core_index
    ManagedPoolThread #14 00:00:05 ERROR Exception
    Exception: System.Reflection.TargetInvocationException
    Message: Exception has been thrown by the target of an invocation.
    Source: mscorlib
    at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments,   Signature sig, Boolean constructor)
    at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[]  parameters, Object[] arguments)
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
    at (Object , Object[] )
    at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
    at Sitecore.Jobs.Job.ThreadEntry(Object state)

  Nested Exception

  Exception: System.InvalidOperationException
  Message: Configuration
  Source: Sitecore.ContentSearch.LuceneProvider
  at Sitecore.ContentSearch.LuceneProvider.LuceneIndex.EnsureInitialized()
  at Sitecore.ContentSearch.LuceneProvider.LuceneIndex.CreateUpdateContext()
  at Sitecore.ContentSearch.LuceneProvider.LuceneIndex.PerformUpdate(IEnumerable`1 indexableUniqueIds, IndexingOptions indexingOptions)

根据我们的研究,我们发现当 Core 数据库索引更新出现问题时会捕获此类错误。此外,通过爬取日志并检查 \App_Config\Include\Sitecore.ContentSearch.Lucene.Index.Core 中的配置也证实了这一点,该作业已为索引更新定义了此作业。

抓取日志条目被捕获

    INFO  [Index=sitecore_core_index] IntervalAsynchronousUpdateStrategy executing.
    INFO  [Index=sitecore_core_index] Event Queue is forced   

作为下一步,我们采取了以下步骤,但问题仍然存在:

删除旧的核心索引并为 CMS 和 CD2 重建。

我的问题:

如果我们的 CMS 和 CD2 具有相同的核心,那么我们是否需要为这两个环境重建索引,因为根据我的信息,索引会保存在磁盘中。

其次,我们只面临 CD2 的缓存问题,这与索引更新有关吗?

第三,配置细节 Sitecore.ContentSearch.Lucene.Index.Core 存在于 CMS 和 CD2 中,这也是造成这些异常的原因,因为两个进程正在更新相同核心索引的索引。

最后,我们为 CD1 提供了一个单独的核心和 Web,并启用了复制,但我们仍然看到这些错误也在 CD1 中被捕获。我们在过去几个月看到了这种错误,最近错误频率有所增加,因为它占用了 CD2 中的大量物理内存并导致应用程序响应时间更长。

【问题讨论】:

    标签: indexing lucene rebuild


    【解决方案1】:

    我发现了我的环境中的问题所在。查看您的日志文件,在您看到该异常之前,您是否看到以下内容:

    ManagedPoolThread #11 10:07:24 INFO 从数据库加载字典。域:“字典”。语言:'en'。 ManagedPoolThread #11 10:07:24 错误保存 {sitecore 文件路径}\Website\temp\dictionary.dat 时出错。 异常:System.IO.IOException 消息:文件“{sitecore 文件路径}\Website\temp\dictionary.dat”已经存在。 来源:mscorlib 在 System.IO.__Error.WinIOError(Int32 错误代码,字符串可能全路径) 在 System.IO.FileStream.Init(字符串路径、FileMode 模式、FileAccess 访问、Int32 权限、Boolean useRights、FileShare 共享、Int32 bufferSize、FileOptions 选项、SECURITY_ATTRIBUTES secAttrs、String msgPath、Boolean bFromProxy、Boolean useLongPath、Boolean checkHost) 在 System.IO.FileStream..ctor(字符串路径,FileMode 模式,FileAccess 访问,FileShare 共享,Int32 bufferSize,FileOptions 选项,字符串 msgPath,布尔 bFromProxy) 在 System.IO.FileStream..ctor(字符串路径、FileMode 模式、FileAccess 访问、FileShare 共享、Int32 bufferSize) 在 Sitecore.Globalization.Translate.Save()

    如果是这样,请将其删除并重新启动您的网站。这应该可以解决您看到的问题。

    【讨论】:

      猜你喜欢
      • 2016-03-17
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 2016-05-05
      • 1970-01-01
      • 1970-01-01
      • 2011-09-26
      • 2015-11-25
      相关资源
      最近更新 更多