RetryerRequiredException в оболочке Sitecore

Кто-нибудь когда-либо испытывал RetryerRequiredException в оболочке Sitecore? Я получаю это исключение в тестовой среде (локальных проблем нет), когда я хочу опубликовать элементы или перестроить базу данных ссылок (или все, что требует сохранения в базе данных).

Я использую SC7.2 (версия 141226) с серверной частью Oracle. Элемент retryer в web.config отключен.

Это сообщение об исключении:

Retryer required for database operation. You need to wrap code into Factory.GetRetryer().Execute<int>(() => {}) context.

И трассировка стека:

[RetryerRequiredException: Retryer required for database operation. You need to wrap code into Factory.GetRetryer().Execute<int>(() => {}) context.]
   Sitecore.Data.DataProviders.Sql.SqlDataApi.CreateTransaction() +354
   Sitecore.Data.Security.Accounts.SqlMembershipUser.UpdateProperties(String propertyNames, String propertyValues, Byte[] binaryValues) +62
   Sitecore.Data.Security.Accounts.SqlProfileProviderBase.SetPropertyValues(SettingsContext sc, SettingsPropertyValueCollection properties) +611
   System.Configuration.SettingsBase.SaveCore() +474
   System.Configuration.SettingsBase.Save() +104
   System.Web.Profile.ProfileBase.SaveWithAssert() +42
   System.Web.Profile.ProfileBase.Save() +122
   Sitecore.Security.UserProfile.Save() +266
   Sitecore.Web.UI.HtmlControls.Registry.SetValue(String key, String value) +222
   Sitecore.Shell.Applications.ShellForm.ShowDatabaseName(String visible) +93

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
   System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) +76
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +211
   Sitecore.Shell.Framework.Commands.MethodCommandProcessor.Invoke(PipelineArgs args) +534
   Sitecore.Nexus.Pipelines.NexusPipelineApi.Resume(PipelineArgs args, Pipeline pipeline) +398
   Sitecore.Pipelines.Pipeline.Start(PipelineArgs args, Boolean atomic) +366
   Sitecore.Shell.Framework.Commands.MethodCommand.Execute(CommandContext context) +632
   Sitecore.Web.UI.Sheer.ClientPage.OnPreRender(EventArgs e) +547
   System.Web.UI.Control.PreRenderRecursiveInternal() +113
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4297

РЕДАКТИРОВАТЬ 1:

Я также попытался включить элемент конфигурации retryer, но это приводит к тому же исключению.

РЕДАКТИРОВАТЬ 2:

Единственное, что изменилось в последнее время - это обновление с версии 7.2 rev 140526 до версии 141226. В примечаниях к выпуску я вижу это:

Конфигурация Sitecore была изменена, чтобы использовать разные экземпляры ретритера для каждого объекта базы данных, чтобы активный ретритер для базы данных не блокировал работу с другими базами данных. (422504)

Но соответствующий web.config не показывает изменения, связанные с этим.

1 ответ

Решение

В итоге я отправил эту проблему на support.sitecore.com, и это явно ошибка. Обходной путь - закомментировать весь элемент ретритора в конфигурации:

<!--retryer disabled="true" type="Sitecore.Data.DataProviders.Retryer, Sitecore.Kernel">
      <param desc="Number of tries">6</param>
      <param desc="Interval between tries">00:00:00.500</param>
      <param desc="Log each exception (should be used for debug only)">true</param>
    </retryer-->
Другие вопросы по тегам