Modelling A Complex Batch Schedule in Peoplesoft: David Kurtz

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 33

Modelling a Complex Batch

Schedule in PeopleSoft
David Kurtz
Go-Faster Consultancy Ltd.

[email protected]
www.go-faster.co.uk
Who Am I?
• Oracle Database Specialist
– Independent consultant
• Performance tuning
– PeopleSoft ERP
– Oracle RDBMS
• Book
– www.psftdba.com
• UKOUG Director
• Server Tech & PeopleSoft
• Oak Table

Modelling a Complex Batch Schedule in ©2011 www.go-faster.co.uk 2
PeopleSoft
Agenda

• Process Scheduler Priorities


– Process Definition
– Server Category
• Queuing in the Process Scheduler
• Modelling Process Scheduler behaviour

Modelling a Complex Batch Schedule in ©2011 www.go-faster.co.uk 3


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 ©2011 www.go-faster.co.uk 4


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 ©2011 www.go-faster.co.uk 5


PeopleSoft
Process Scheduler Queue

1200 Task B (yellow)


displaces Task A (blue)

900
Time Spent Queued

600

300

0
18

18

18

18

18

18

18

18

18

18
.

.
.4

.4

.4
4.

4.

4.

4.

4.

4.

4.
.1

.1

.1
11

11

11

11

11

11

1
1

1
6:

7:

8:

9:

10

11

12

13

14

15
Date/Time of Request
00

00

00

00

:0

:0

:0

:0

:0
0

0
0

0
Modelling a Complex Batch Schedule in ©2011 www.go-faster.co.uk 6
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 ©2011 www.go-faster.co.uk 7


PeopleSoft
Process Priority

Modelling a Complex Batch Schedule in ©2011 www.go-faster.co.uk 8


PeopleSoft
Server Category Priority

Modelling a Complex Batch Schedule in ©2011 www.go-faster.co.uk 9


PeopleSoft
Define More Priorities

Modelling a Complex Batch Schedule in ©2011 www.go-faster.co.uk 10


PeopleSoft
Testing Priorities

• Create a queue of processes on the Process


Scheduler
– Needs processes that run for a period of time
– The don’t need to do anything, just stay in
status processing for a while

Modelling a Complex Batch Schedule in ©2011 www.go-faster.co.uk 11


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 ©2011 www.go-faster.co.uk 12


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 ©2011 www.go-faster.co.uk 13


PeopleSoft
Create Test Run
Run                            Offset
Control  PRCSNAME     RUNDTTM  Amount   DURATION
-------- ------------ -------- ------ -----------
1        AE_SLEEP1                  5        175
2        AE_SLEEP2                 10        175
3        AE_SLEEP3                 15        175
4        AE_SLEEP4                 20        175
5        AE_SLEEP5                 25        175
6        AE_SLEEP6                 30        175
7        AE_SLEEP7                 35        175
8        AE_SLEEP8                 40        175
9        AE_SLEEP9                 45        175

Modelling a Complex Batch Schedule in ©2011 www.go-faster.co.uk 14


PeopleSoft
Process Priority Quirk
Row PRCS
# SYSDATE INSTANCE PRCSNAME RUNDTTM BEGINDTTM ENDDTTM
--- --------- -------- ------------ -------- --------- --------
1 13:14:17 4583 AE_SLEEP1 13:03:27 13:03:55 13:07:08
2 13:14:17 4584 AE_SLEEP2 13:03:32 13:03:55 13:07:08
3 13:14:17 4585 AE_SLEEP3 13:03:37 13:03:55 13:07:08
4 13:14:17 4591 AE_SLEEP9 13:04:07 13:07:12 13:10:27
5 13:14:17 4587 AE_SLEEP5 13:03:47 13:07:13 13:10:27
6 13:14:17 4588 AE_SLEEP6 13:03:52 13:07:13 13:10:27
7 13:14:17 4586 AE_SLEEP4 13:03:42 13:10:31 13:13:46
8 13:14:17 4589 AE_SLEEP7 13:03:57 13:10:47 13:14:01
9 13:14:17 4590 AE_SLEEP8 13:04:02 13:10:47 13:14:01

Modelling a Complex Batch Schedule in ©2011 www.go-faster.co.uk 15


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 ©2011 www.go-faster.co.uk 16


PeopleSoft
Process Categories
Row PRCS PRCS SERVER RUN
# INSTANCE PRCSNAME PRTY RUNDTTM BEGINDTT ENDDTTM ASSIGN STATUS PRCSCATEGORY
--- -------- --------- ---- -------- -------- -------- ------ ------ ------------
1 4740 AE_SLEEP5 5 19:25:10 19:25:23 19:28:23 PSNT 9 Default
2 4741 AE_SLEEP5 5 19:25:13 19:25:39 19:28:38 PSNT 9 Default
3 4742 AE_SLEEP5 5 19:25:16 19:25:39 19:28:38 PSNT 9 Default
4 4748 AE_SLEEP7 7 19:26:52 19:28:41 19:31:41 PSNT 9 Priority 7
5 4749 AE_SLEEP7 7 19:26:57 19:28:58 19:31:56 PSNT 9 Priority 7
6 4747 AE_SLEEP6 6 19:26:37 19:28:58 19:31:56 PSNT 9 Priority 6
7 4746 AE_SLEEP6 6 19:26:42 19:32:00 19:34:59 PSNT 9 Priority 6
8 4743 AE_SLEEP5 5 19:25:19 19:32:16 19:35:15 PSNT 9 Default
9 4744 AE_SLEEP5 5 19:25:22 19:32:16 19:35:16 PSNT 9 Default
10 4745 AE_SLEEP5 5 19:25:25 19:35:02 19:37:59 PSNT 9 Default

Modelling a Complex Batch Schedule in ©2011 www.go-faster.co.uk 17


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 ©2011 www.go-faster.co.uk 18


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 ©2011 www.go-faster.co.uk 19


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 ©2011 www.go-faster.co.uk 20


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 ©2011 www.go-faster.co.uk 21


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 ©2011 www.go-faster.co.uk 22


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 ©2011 www.go-faster.co.uk 23


PeopleSoft
Modelling a Complex Batch Schedule in ©2011 www.go-faster.co.uk 24
PeopleSoft
Predict Effect of Changes

• Make changes
– Process and Category Priorities
– Rerun the test

Modelling a Complex Batch Schedule in ©2011 www.go-faster.co.uk 25


PeopleSoft
Modelling a Complex Batch Schedule in ©2011 www.go-faster.co.uk 26
PeopleSoft
Actual Effect in Production
3000

2400

1800
Time Spent Queued

1200

600

0
9.

9.

9.

9.

9.

9.

9.

9.

9.

9.
5.

5.

5.
5.

5.

5.

5.

5.

5.

5.
©2011 www.go-faster.co.uk 27
11

11

11

11

11

11

11

11

11

11
Modelling a Complex Batch Schedule in
6:

7:

9:

10

12

14
8:

11

13

15
Date/Time of Request
0

:0

:0
:

:0

:0

:0
PeopleSoft
0

00

0
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 ©2011 www.go-faster.co.uk 28


PeopleSoft
Acknowledgements

• Andy Mason
– Business-Integrations

– Java Sleep Utility


– Test harness concept

Modelling a Complex Batch Schedule in ©2011 www.go-faster.co.uk 29


PeopleSoft
Further Reading

• Process Scheduler Priority


– http://blog.psftdba.com/2011/03/more-process-
priority-levels-for.html
• Batch Modeller
– http://www.go-
faster.co.uk/docs.htm#BatchModel.pdf

Modelling a Complex Batch Schedule in ©2011 www.go-faster.co.uk 30


PeopleSoft
Conclusion

Modelling a Complex Batch Schedule in ©2011 www.go-faster.co.uk 31


PeopleSoft
Questions?
Conclusion

Modelling a Complex Batch Schedule in ©2011 www.go-faster.co.uk 33


PeopleSoft

You might also like