我们正在使用具有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
下一步我们采取了以下步骤,但问题仍然存在:
删除旧的Core索引,并为CMS和CD2重建。
我的问题:
如果CMS和CD2具有相同的核心,那么我们需要为两种环境重建索引,因为根据我的信息,索引会保存在磁盘中。
其次我们只面临CD2的缓存问题,这与索引更新有关。
第三,配置详细信息Sitecore.ContentSearch.Lucene.Index.Core存在于CMS和CD2中,因此两个进程正在更新相同Core索引的索引,因此负责这些异常。
最后,我们为CD1启用了单独的核心和Web,并启用了复制,但我们仍然看到这些错误也在CD1中捕获。我们在过去的几个月里看到了这些错误,最近错误的频率增加了,因为它在CD2中占用了大量的物理内存并导致应用程序的响应时间更长。
答案 0 :(得分:0)
我弄清楚环境中的问题是什么。查看您的日志文件,在您看到该exeption之前,您是否看到以下内容:
ManagedPoolThread#11 10:07:24 INFO从数据库加载字典。域名:'词典'。语言:'en'。 ManagedPoolThread#11 10:07:24 ERROR保存{sitecore文件路径} \ Website \ temp \ dictionary.dat时出错。 例外:System.IO.IOException 消息:文件“{sitecore文件路径} \ Website \ temp \ dictionary.dat”已存在。 资料来源:mscorlib 在System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath) at System.IO.FileStream.Init(String path,FileMode mode,FileAccess access,Int32 rights,Boolean useRights,FileShare share,Int32 bufferSize,FileOptions options,SECURITY_ATTRIBUTES secAttrs,String msgPath,Boolean bFromProxy,Boolean useLongPath,Boolean checkHost) at System.IO.FileStream..ctor(String path,FileMode mode,FileAccess access,FileShare share,Int32 bufferSize,FileOptions options,String msgPath,Boolean bFromProxy) 在System.IO.FileStream..ctor(字符串路径,FileMode模式,FileAccess访问,FileShare共享,Int32 bufferSize) 在Sitecore.Globalization.Translate.Save()
如果有,请将其删除并重新启动您的网站。这应该可以解决您所看到的问题。