Announcing the Saviynt Knowledge Exchange unifying the Saviynt forums, documentation, training,
and more in a single search tool across platforms. Read the announcement here.
No ratings
pruthvi_t
Saviynt Employee
Saviynt Employee

Short Description :

Best practices for various jobs scheduling and trigger management


Applicable version :

All Versions


Detail best practice :

  1. Schedule Imports at Off-Peak Times: Identify off-peak hours or low-usage periods in your system and schedule user imports during these times. This helps minimize the impact on system performance and ensures smoother execution.
  2. Prioritize Scheduling Critical Imports First: If certain user imports or Application Data Imports are more critical or time-sensitive than others, first prioritize their scheduling and ensure they are spaced apart adequately to have available resources and avoid conflicts before schedule other jobs
  3. Consider Trigger chain jobs are used when there is a requirement to execute multiple jobs in a specific sequence or chain, where the execution of one job triggers the start of another job in the chain. Here are some situations where trigger chain jobs can be beneficial:
    1. Batch Processing: In batch processing scenarios, where multiple jobs need to be executed in a specific order as part of a larger batch process. Trigger chain jobs enable the seamless execution of the batch by automatically triggering the next job after the completion of the previous job.
    2. Job Dependencies: Trigger chain jobs can ensure that the dependent job starts only when the prerequisite job finishes successfully
    3. Error Handling:  Trigger chain jobs can be used to handle error scenarios and stop further executions of remaining jobs in the trigger chain. For example, if a job fails, a trigger chain job can be configured to Stop on Failure to prevent it from further execution. 
    4. Conflicting Jobs:  Chaining  jobs together can  also help in avoiding accidentally executing two conflicting jobs at same time which can cause deadlocks.
    5. Application Data Import Jobs: Use trigger chain jobs for efficient application data imports. For Example,
      • If you have multiple oracle DB applications which needs to be imported, rather than scheduling multiple triggers, use them in a trigger chain.
      • Use Account and Access import jobs of the same endpoint in trigger chain instead of scheduling them apart.
    6. Avoid adding Multithreaded Jobs into Trigger Chain: It is recommended to avoid adding multithreaded jobs into a trigger chain. This is because trigger chains do not support the execution of multithreaded jobs in parallel. If a multithreaded job is added to a trigger chain, it will be executed as a single thread, disregarding the parallel processing capability.
  4. Use custom query job sparingly: 

    The use of a custom query job should be limited and done carefully to avoid potential issues such as deadlocks and job failures. Here are some guidelines to follow:

    1. Limited Usage: Use custom query jobs sparingly and only when necessary. Consider alternative approaches, such as leveraging external jar jobs or invoking APIs, for executing custom logic or complex operations.

    2. External Jar Job: Whenever possible, prefer using external jar jobs or invoking APIs instead of custom query jobs. These approaches provide more flexibility, maintainability, and better integration with external systems or services.

    3. User Profile Updates: If the purpose of the custom query job is to make updates to user profiles, consider utilizing the connector's inline user preprocessing feature. This feature allows you to perform updates on user profiles during user import eliminating the need for a custom query job.

      Spoiler
      Custom Query Job will be deprecated and replaced with "Enhanced Query Execution Job".   Look out of more information in release notes of 23.7 
  5. Monitor and Adjust Job Schedule and Frequency
    1. Continuously monitor system performance and response times of each job. If you notice degradation or bottlenecks, consider adjusting the spacing between jobs or optimizing the system configuration to better handle the workload.
    2. Avoid short intervals between jobs. For Example: Do not schedule the email history job every minute, instead schedule it to run for every 5 minutes.
  6. Utilize Incremental and Multi-threaded Jobs:  These features can greatly enhance the efficiency and performance of the import process.

  7. Monitoring and Alerting: Implement comprehensive monitoring and logging for job execution. Monitor job statuses, track their execution times, and log relevant information for troubleshooting and analysis. This helps identify any issues or bottlenecks in the job scheduling process.
  8. Regular Maintenance and Review: Perform a periodic review to check if any of the unwanted or unused triggers are scheduled and discontinue / delete these triggers.
  9. Testing and Validation: Thoroughly test job schedules and dependencies in a controlled environment before deploying them in production. Validate the behavior of jobs under various scenarios, load conditions, and failure scenarios to ensure they function as expected.
  10. Document Everything Document job schedules, dependencies, and any specific considerations or constraints associated with job execution. Maintain clear documentation to facilitate understanding and collaboration among stakeholders.

Benefit

Effective job scheduling helps in avoiding performance impacts and will also help in avoiding job failure issues.

Version history
Last update:
‎06/30/2023 11:01 AM
Updated by: