Did anyone ever experienced the RetryerRequiredException
in Sitecore shell? I get this exception on a test environment (no issues locally) when I want to publish items or rebuild the link DB (or anything that requires saving to the DB).
I'm running SC7.2 (rev. 141226) with an Oracle backend. The retryer element in the web.config is disabled.
This is the exception message:
Retryer required for database operation. You need to wrap code into Factory.GetRetryer().Execute<int>(() => {}) context.
And the stacktrace:
[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
EDIT 1:
I also tried enabling the retryer config element but this results in the exact same exception.
EDIT 2:
The one thing that has changed recently is the upgrade from 7.2 rev 140526 to rev 141226. In the release notes I see this:
Sitecore configuration has been changed to use different retryer instances for every database object so that the active retryer for a database does not block the work with other databases. (422504)
But the corresponding web.config does not show changes related to this.
I ended up submitting this issue to support.sitecore.com and it is apparently a bug. The workaround is to comment out the entire retryer element in the configuration:
<!--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-->