14.9 High Availability Best Practices

This section includes information that might be useful to users of the NetIQ Cloud Manager Orchestration Server in high availability environments. We anticipate that the contents of the section will expand as the product is adopted and deployed. We encourage your contributions to this document. All comments are tested and approved by product engineers before they appear in this section. Please use the User Comments feature at the bottom of each page of the online documentation, or go to www.novell.com/documentation/feedback.html and enter your comments there.

14.9.1 Jobs Using scheduleSweep() Might Need a Start Constraint

If you write a custom job that uses the scheduleSweep() JDL function to schedule joblets and that are either 1) marked as restartable in a high availability failover situation or 2) scheduled through the Job Scheduler to run at server startup, the job might fail to schedule any joblets and is easily noticeable with a 0 second run time. This is because scheduleSweep(), by default, creates joblets only for online nodes.

If the Job runs during failover, resources might not be readily available, so the job ends immediately.

To keep the Job from running until a resource is online, you can use a start constraint. For example, you could add the following to the job policy:

<constraint type="start" >
  <gt fact="jobinstance.matchingresources" value="0" />
</constraint>

If you implement this constraint, the Job is queued (not started) until at least one resource matches the policy resource constraint.

As alternatives to using the constraint approach, you can:

  • Code in a waiting interval for the required Agents in your Job

  • Using the schedule() API for creating Joblets instead of the scheduleSweep()function.

  • Choose an alternative set of resources to consider for the scheduleSweep(). For more information, see the ScheduleSpecAPI for more details.