Modelling a Complex Batch Schedule in PeopleSoft David Kurtz Go-Faster Consultancy Ltd.
Modelling a Complex Batch Schedule in PeopleSoft © Oracle Database Specialist –Independent consultant Performance tuning –PeopleSoft ERP –Oracle RDBMS Book – UKOUG Director Server Tech & PeopleSoft Oak Table Who Am I?
Modelling a Complex Batch Schedule in PeopleSoft © Agenda Process Scheduler Priorities –Process Definition –Server Category Queuing in the Process Scheduler Modelling Process Scheduler behaviour
Modelling a Complex Batch Schedule in PeopleSoft © Meet my PeopleSoft system Lots of batch process run ad-hoc by users during the peak day. So many batch processes that there is a often a queue. Number of concurrent processes limited to prevent overload of CPU and Memory
Modelling a Complex Batch Schedule in PeopleSoft © Two business Tasks Completion of task A is more important to the business than task B. –Each task comprises on-line activity and more than one process on Process Scheduler Users do task A in the morning. They are supposed to task B in the afternoon. But they start task B as soon as they complete task A Users who start task B in the morning impede users who are still doing task A
Modelling a Complex Batch Schedule in PeopleSoft © Task B (yellow) displaces Task A (blue)
Modelling a Complex Batch Schedule in PeopleSoft © Suggestion In the mind of the business there is a hierarchy of processing. The hierarchy should be reflected in the configuration and behaviour of the Process Scheduler. If there is a queue on the Process Scheduler –Execute Task A processes in preference to Task B processes.
Modelling a Complex Batch Schedule in PeopleSoft © Process Priority
Modelling a Complex Batch Schedule in PeopleSoft © Server Category Priority
Modelling a Complex Batch Schedule in PeopleSoft © Define More Priorities
Modelling a Complex Batch Schedule in PeopleSoft © Testing Priorities Create a queue of processes on the Process Scheduler –Needs processes that run for a period of time –The dont need to do anything, just stay in status processing for a while
Modelling a Complex Batch Schedule in PeopleSoft © Java Sleep in AE Local JavaObject &Obj; Local ProcessRequest &RQST; MessageBox(0, "", 0, 0, "Sleep Begin for " | GFC_SLEEP_AET.DURATION.Value | " seconds "); &Obj = CreateJavaObject("java.lang.Thread"); &Obj.start(); &Obj.sleep(GFC_SLEEP_AET.DURATION.Value * 1000); MessageBox(0, "", 0, 0, "Sleep END");
Modelling a Complex Batch Schedule in PeopleSoft © Java Sleep in AE Sleep step in AE_SLEEP Various process AE_SLEEP1 … n Process definitions –Different priorities & categories Table GFC_SLEEP_RUN –specifies processes to run –AE_SLEEP_RUN submits processes
Modelling a Complex Batch Schedule in PeopleSoft © Create Test Run Run Offset Control PRCSNAME RUNDTTM Amount DURATION AE_SLEEP AE_SLEEP AE_SLEEP AE_SLEEP AE_SLEEP AE_SLEEP AE_SLEEP AE_SLEEP AE_SLEEP
Modelling a Complex Batch Schedule in PeopleSoft © Process Priority Quirk Row PRCS # SYSDATE INSTANCE PRCSNAME RUNDTTM BEGINDTTM ENDDTTM :14: AE_SLEEP1 13:03:27 13:03:55 13:07: :14: AE_SLEEP2 13:03:32 13:03:55 13:07: :14: AE_SLEEP3 13:03:37 13:03:55 13:07: :14: AE_SLEEP9 13:04:07 13:07:12 13:10: :14: AE_SLEEP5 13:03:47 13:07:13 13:10: :14: AE_SLEEP6 13:03:52 13:07:13 13:10: :14: AE_SLEEP4 13:03:42 13:10:31 13:13: :14: AE_SLEEP7 13:03:57 13:10:47 13:14: :14: AE_SLEEP8 13:04:02 13:10:47 13:14:01
Modelling a Complex Batch Schedule in PeopleSoft © Process Priority Quirk Delivered Priorities sometimes processed before custom added Priorities Not explicable from SQL submitted by Process Scheduler –Something in logic in program Process Categories process correctly
Modelling a Complex Batch Schedule in PeopleSoft © Process Categories Row PRCS PRCS SERVER RUN # INSTANCE PRCSNAME PRTY RUNDTTM BEGINDTT ENDDTTM ASSIGN STATUS PRCSCATEGORY AE_SLEEP5 5 19:25:10 19:25:23 19:28:23 PSNT 9 Default AE_SLEEP5 5 19:25:13 19:25:39 19:28:38 PSNT 9 Default AE_SLEEP5 5 19:25:16 19:25:39 19:28:38 PSNT 9 Default AE_SLEEP7 7 19:26:52 19:28:41 19:31:41 PSNT 9 Priority AE_SLEEP7 7 19:26:57 19:28:58 19:31:56 PSNT 9 Priority AE_SLEEP6 6 19:26:37 19:28:58 19:31:56 PSNT 9 Priority AE_SLEEP6 6 19:26:42 19:32:00 19:34:59 PSNT 9 Priority AE_SLEEP5 5 19:25:19 19:32:16 19:35:15 PSNT 9 Default AE_SLEEP5 5 19:25:22 19:32:16 19:35:16 PSNT 9 Default AE_SLEEP5 5 19:25:25 19:35:02 19:37:59 PSNT 9 Default
Modelling a Complex Batch Schedule in PeopleSoft © Priorities You can use all 9 priorities on Server Categories You can only use priories 1, 5, 9 on Process Definition Server Category Priority takes precedence over Category Priority –So now have 27 priorities instead of 9.
Modelling a Complex Batch Schedule in PeopleSoft © What happens if I change… Maximum number of concurrent processes. Process priorities and process category priorities. Process execution durations, possibly caused by changes to hardware. Increase in number of batch processes.
Modelling a Complex Batch Schedule in PeopleSoft © Create a Model Take what actually happened in production –Process Scheduler Request Table –Batch Timings Table Run Times Map processes to AE_SLEEP_n processes Create contents of GFC_SLEEP_RUN –Now can run processes that run at and for the same time as in production.
Modelling a Complex Batch Schedule in PeopleSoft © Linked Processing Model schedules each process at a given time. –operator runs a process, –Waits for it to begin and complete, –does some work, –Runs another process. What happens if first process completes more quickly?
Modelling a Complex Batch Schedule in PeopleSoft © Linked Processing Next process for same operator scheduled a fixed time after previous process completes. –One AE_SLEEP_n process schedules next process for same operator just before it completes. –Determine links between processes and put into AE_SLEEP_RC
Modelling a Complex Batch Schedule in PeopleSoft © Testing the Model Simulate production without any changes –Needed to subtract 2 seconds from run time to be AE_SLEEP_n run for the requested duration Fixed overhead of AE –Needed fudge factor – added 5 seconds to every process to make model look like production. Overhead of posting etc.
Modelling a Complex Batch Schedule in PeopleSoft ©
Modelling a Complex Batch Schedule in PeopleSoft © Predict Effect of Changes Make changes –Process and Category Priorities –Rerun the test
Modelling a Complex Batch Schedule in PeopleSoft ©
Modelling a Complex Batch Schedule in PeopleSoft © Actual Effect in Production
Modelling a Complex Batch Schedule in PeopleSoft © Conclusion Server Category Priority takes precedence over Process Priority. Extra priorities work in Server Categories Model accurately predicted behaviour in production. We encountered counter-intuitive behaviour that we did not predict. –Set expectations for users.
Modelling a Complex Batch Schedule in PeopleSoft © Acknowledgements Andy Mason –Business-Integrations –Java Sleep Utility –Test harness concept
Modelling a Complex Batch Schedule in PeopleSoft © Further Reading Process Scheduler Priority – priority-levels-for.htmlhttp://blog.psftdba.com/2011/03/more-process- priority-levels-for.html Batch Modeller – faster.co.uk/docs.htm#BatchModel.pdfhttp:// faster.co.uk/docs.htm#BatchModel.pdf
Modelling a Complex Batch Schedule in PeopleSoft © Conclusion
Questions?
Modelling a Complex Batch Schedule in PeopleSoft © Conclusion