0
Fixed

Reconfiguring Maintenance Settings Exception

Tony Sheehy 11 years ago updated by anonymous 8 years ago 3

When reconfiguring the FIM Maintenance settings the following exception is thrown:

System.ServiceModel.FaultException: An operation list with the name of 'Baseline for FIM Agent' already exists.

Server stack trace: 
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Unify.Product.EventBroker.FIM.IFIMAutoConfigurationEngineCollector.SaveFIMMaintenanceConfiguration(FIMMaintenanceConfiguration maintenanceConfiguration)
at Unify.EventBroker.Web.AgentsController.SaveMaintenanceSettings(FIMMaintenanceSettingsViewInformation maintenanceConfiguration) in c:\TeamCity\buildAgent\work\e1e11e299a05c3e1\Source\Unify.EventBroker.Web\Controllers\AgentsController.cs:line 1419
at lambda_method(Closure , ControllerBase , Object[] )
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)

To maintain consistency of references between FIM Agents and their respective operation lists, on the event that an oplist is deleted all FIM agents are notified and the reference is closed; this happens on a separate thread, and works fine for the structure of MA op lists.

The maintenance settings on the other hand are edit -> clear all -> reconfigure. Clear all being, delete each one and then reconfigure. However that event happens on a separate thread, which subsequently severs the references to the new Op Lists, leaving two orphans.

The references are now explicitly cleared, such that new operation lists are generated (so that the incoming clearance event does not generate orphans).

Reassigned for confirmation of completion; steps to reproduce behaviour prior to fixes would be to configure maintenance settings, wait a moment, and the reconfigure.

Confirmed complete.