cancel
Showing results for 
Search instead for 
Did you mean: 

Question on making Unity Scheduler Tasks Highly Available

Ryan_Wakefield
World-Class Innovator
World-Class Innovator

So I was reviewing the different Unity Scheduler tasks that you can create inside of the Unity Management Console and one thing I realized is that I wasn't sure which of the different tasks you could have a multiple services running and which ones you couldn't. For example, I am aware that you can't have two Windows Unity Scheduler Services running at the same time for the HL7 Back-end Job Processor. Then I got to thinking to myself, "What others ones can you and can't you have multiple Windows Unity Scheduler Services running at the same time for?".

 

So that in turn has brought me here to you guys. Of the list below, which one of the different tasks can you have multiple Windows Services running at the same time and which ones can't you? And are there any caveats to be aware of?

 

  • Capture Process
    • Multiple or Single?
    • Caveats?
  • Disk Group Analysis Processing
    • Multiple or Single?
    • Caveats?
  • Disk Group Migration Processing
    • Multiple or Single?
    • Caveats?
  • EIS Workflow Messaging Archiver
    • Multiple or Single?
    • Caveats?
  • EIS Workflow Messaging Cleaner
    • Multiple or Single?
    • Caveats?
  • Email Sending
    • Multiple or Single?
    • Caveats?
  • HL7 Back-end Job Processor
    • Multiple or Single?
    • Caveats?
  • HL7 Log Pruner
    • Multiple or Single?
    • Caveats?
  • Incomplete Commit Queue Processing
    • Multiple or Single?
    • Caveats?
  • Incomplete Delete Queue Processing
    • Multiple or Single?
    • Caveats?
  • Medical Records Assigning Authority Initializer
    • Multiple or Single?
    • Caveats?
  • Medical Records Document Attachment Updater
    • Multiple or Single?
    • Caveats?
  • Medical Records Orphan Document Processor
    • Multiple or Single?
    • Caveats?
  • Medical Records Relevant Date Updater
    • Multiple or Single?
    • Caveats?
  • Platter Deletion Processing
    • Multiple or Single?
    • Caveats?
  • Purge Execution History
    • Multiple or Single?
    • Caveats?
  • Reporting Dashboards Data Provider Export
    • Multiple or Single?
    • Caveats?
  • Reporting Dashboards Report Export
    • Multiple or Single?
    • Caveats?
  • S3 Upload Cache Processing
    • Multiple or Single?
    • Caveats?
  • Unity Script
    • Multiple or Single?
    • Caveats?
  • Workflow
    • Multiple or Single?
    • Caveats?

 

Thanks.

3 REPLIES 3

Paul_Lloyd
Employee
Employee

For workflow, you can certainly have multiple services running at once. In fact that's recommended: split the tasks into different Task Groups and have at least one  Unity Scheduler Service Instance for each Task Group.

But on an individual server each Task Group should only need one  Unity Scheduler Service instance, because each instance is multi-threaded, so even a single instance can run tasks in parallel. But to increase performance (and for high availability) you can have additional Unity Scheduler Service Instances for the same Task Group on multiple servers.

Additional details may be found in this document:

https://community.hyland.com/gallery/items/69970-parallel-processing-capabilities-of-wofrkflow-timer...

 

 

Aaron_Truskot
Star Contributor
Star Contributor

Hi Ryan, I can provide some insights into the recommendations that you have likely seen when configuring some of the HL7 and Medical Records task types. I believe that the HL7 and MR task types are the only ones in the portfolio of task types that require a single instance. This limitation is only temporary and our restrictions will continue to lessen with future releases of OnBase Foundation.

 

 

  • HL7 Back-end Job Processor
    • Prior to EP5: single instance. Since certain jobs must be processed in order, you will risk data integrity issues by concurrently running multiple instances.  
    • In EP5: we enforce single instance policy through the software. This will allow you to configure many tasks but we'll ensure that only one actually processes jobs at any given time. In addition to better protecting your data, this change could be useful for high availability in the event of a server or service failure. 
    • Our team is developing mechanisms that will allow for many tasks to run concurrently. Although I can't give a release date as of the today. 
  • HL7 Log Pruner
    • Single is recommended. Multiple is acceptable but won't provide any measurable performance benefit. You could realize improved up-times in the event of server or service failure, though. 
  • Medical Records Assigning Authority Initializer
    • Single is recommended. Running multiple instances will not introduce data integrity risks but would actually reduce performance of the task due to duplicative work that would result. 
  • Medical Records Document Attachment Updater
    • Prior to EP5: single instance. Running multiple instances will not introduce data integrity risks but would actually reduce performance of the task due to duplicative work that would result. 
    • In EP5: multiple instance is acceptable and will improve performance. 
  • Medical Records Orphan Document Processor
    • Prior to EP5: single instance. Running multiple instances will not introduce data integrity risks but would actually reduce performance of the task due to duplicative work that would result. 
    • In EP5: software enforces a single instance to run. This change could be useful for high availability in the event of a server or service failure. 
    • A future release will allow for multiple instances to run concurrently to improve performance. 
  • Medical Records Relevant Date Updater
    • Single is recommended. Running multiple instances will not introduce data integrity risks but would actually reduce performance of the task due to duplicative work that would result. 

 

I'll review our MRGs with our documentation team to ensure that this information is easily accessible.

 

Ryan_Wakefield
World-Class Innovator
World-Class Innovator

For workflow, you can certainly have multiple services running at once. In fact that's recommended: split the tasks into different Task Groups and have at least one Unity Scheduler Service Instance for each Task Group. But on an individual server each Task Group should only need one Unity Scheduler Service instance, because each instance is multi-threaded, so even a single instance can run tasks in parallel. But to increase performance (and for high availability) you can have additional Unity Scheduler Service Instances for the same Task Group on multiple servers. Additional details may be found in this document: https://community.hyland.com/gallery/items/69970-parallel-processing-capabilities-of-wofrkflow-timer...

 

This is great to know @Paul Lloyd . Thank you very much for this information. 🙂

 

Hi Ryan, I can provide some insights into the recommendations that you have likely seen when configuring some of the HL7 and Medical Records task types. I believe that the HL7 and MR task types are the only ones in the portfolio of task types that require a single instance. This limitation is only temporary and our restrictions will continue to lessen with future releases of OnBase Foundation. HL7 Back-end Job Processor Prior to EP5 : single instance. Since certain jobs must be processed in order, you will risk data integrity issues by concurrently running multiple instances. In EP5 : we enforce single instance policy through the software. This will allow you to configure many tasks but we'll ensure that only one actually processes jobs at any given time. In addition to better protecting your data, this change could be useful for high availability in the event of a server or service failure. Our team is developing mechanisms that will allow for many tasks to run concurrently. Although I can't give a release date as of the today. HL7 Log Pruner Single is recommended. Multiple is acceptable but won't provide any measurable performance benefit. You could realize improved up-times in the event of server or service failure, though. Medical Records Assigning Authority Initializer Single is recommended. Running multiple instances will not introduce data integrity risks but would actually reduce performance of the task due to duplicative work that would result. Medical Records Document Attachment Updater Prior to EP5 : single instance. Running multiple instances will not introduce data integrity risks but would actually reduce performance of the task due to duplicative work that would result. In EP5 : multiple instance is acceptable and will improve performance. Medical Records Orphan Document Processor Prior to EP5 : single instance. Running multiple instances will not introduce data integrity risks but would actually reduce performance of the task due to duplicative work that would result. In EP5: software enforces a single instance to run. This change could be useful for high availability in the event of a server or service failure. A future release will allow for multiple instances to run concurrently to improve performance. Medical Records Relevant Date Updater Single is recommended. Running multiple instances will not introduce data integrity risks but would actually reduce performance of the task due to duplicative work that would result. I'll review our MRGs with our documentation team to ensure that this information is easily accessible.

 

This is also very good to know @Aaron Truskot . And even better that you gave me the extra details that you knew I would ask. LOL

 

Thank you both. I do appreciate it. 🙂