Different types of workflows cannot always use the same modules to accomplish their end result. For discoveries and monitors which run on a specific schedule, such is the case. The best practice is that discoveries should use the System.Discovery.Schedulermodule, and monitors and rules should use the System.Schedulermodule.
System.Discovery.Schedulerand System.Scheduleruse different expressions that are specific to the workflow that they are meant to support. Using the wrong scheduler can break basic functionality of a workflow, and can break cookdown.
Using the Authoring Console:
1. Choose a Data Source module that is intended to be used for discovery workflows (for example).
2. Open up the Properties for the module, and under the Member Modules tab, ensure that there is a scheduler module of type System.Discovery.Scheduler.
Using XML:
<
DataSourceModuleType
ID
=
"
Microsoft.Windows.Server.2008.Discovery.DataSource"
RunAs
="
System!System.PrivilegedMonitoringAccount"
Accessibility
="
Internal"
>
<
Configuration
>
<
xsd:element
minOccurs
=
"
1"
name
="
IntervalSeconds"
type
="
xsd:unsignedInt"
/>
<
xsd:element
minOccurs
=
"
1"
name
="
TimeoutSeconds"
type
="
xsd:unsignedInt"
/>
<
xsd:element
minOccurs
=
"
1"
name
="
SourceId"
type
="
xsd:string"
/>
</
Configuration
>
<
OverrideableParameters
>
<
OverrideableParameter
ID
=
"
IntervalSeconds"
Selector
="
$Config/IntervalSeconds$"
ParameterType
="
int"
/>
<
OverrideableParameter
ID
=
"
TimeoutSeconds"
Selector
="
$Config/TimeoutSeconds$"
ParameterType
="
int"
/>
</
OverrideableParameters
>
<
ModuleImplementation
Isolation
=
"
Any"
>
<
Composite
>
<
MemberModules
>
<
DataSource
ID
=
"
Scheduler"
TypeID
="
System!System.Discovery.Scheduler"
>
<
Scheduler
>
<
SimpleReccuringSchedule
>
<
Interval
Unit
=
"
Seconds"
>$Config/IntervalSeconds$
</
Interval
>
</
SimpleReccuringSchedule
>
<
ExcludeDates
/>
</
Scheduler
>
</
DataSource
>
…
<
Discovery
ID
=
"
Microsoft.Windows.Server.2008.Computer.Discovery"
Enabled
="
onEssentialMonitoring"
Target
="
Windows!Microsoft.Windows.Server.Computer"
>
<
Category
>
Discovery
</
Category
>
…
<
DataSource
ID
=
"
DS"
TypeID
="
Microsoft.Windows.Server.2008.Discovery.DataSource"
>
<
IntervalSeconds
>
86400
</
IntervalSeconds
>
<
TimeoutSeconds
>
360
</
TimeoutSeconds
>
<
SourceId
>
$MPElement$
</
SourceId
>
</
DataSource
>
</ Discovery >