During Q&A after my Operations Manager Evolution session (BB37) several interesting questions were posed when I hope to respond to over the next several weeks. The question asked (paraphrased below) is:

Can I set the order of execution for diagnostics and recoveries in Operations Manager?"

A couple of technical notes on this first:

Diagnostics and Recoveries: Using the new R2 Authoring Console you can create recoveries to run based on diagnostic data, then once that recovery has run re-run the diagnostic to make sure the problem is truly fixed.” from http://systemcentercentral.com/BlogDetails/tabid/143/indexId/12727/Default.aspx

“From an execution perspective, if the monitor triggers a state change it will automatically launch all Diagnostic tasks that are configured for the specific Health State. It will then launch any recovery tasks, again based on the Health State, passing any parameters from the completed Diagnostic task.” from http://blogs.1e.com/index.php/2009/06/17/diagnostic-and-recovery-tasks-in-operations-manager-an-overview/. An example passing parameters in this way is available as part of the MPAuthor.DiagnosticAndRecovery.

Summary: Drawing from these it appears that all diagnostic tasks are run currently, and then all recovery tasks are run concurrently and that this cannot be configured to run in any other way through Operations Manager.


So what are some other options?

  • Per Brian Wren: “The other option is to string together multiple modules into a custom module.  Diagnostics are a single probe action module and Recoveries are just a single write action module.  Those could be composites comprised of other modules that perform the steps in exactly the order you want.  Of course, you’re getting into pretty advanced work there.” For details on how to create custom modules see the MP Authoring Guide in the composition section.
  • Write your own custom diagnostic or recovery script called by a single diagnostic or recovery and build out the logic to order the diagnostics/recoveries within the script.
  • Opalis would provide a solution to this as we could have the same alert condition detected by Opalis and then generate a workflow which would run the appropriate diagnostics and recoveries in the order that we would like them to occur.