View previous topic :: View next topic
|
Author |
Message |
Paras Dubey
New User
Joined: 08 Apr 2023 Posts: 2 Location: India
|
|
|
|
I am part of application production support team. We need to ensure the jobs are finished after that we can bring online CICS systems up. Online system should be up by a fixed time. The jobs in the end of batch cycle are high CPU consuming long running jobs. Sometimes we need to predict how long a job is going to take to complete based on that we can decide whether to let the job run for some more time or cancel it to get Online up. Is tha way to monitor which record of input file is currently being processed when there are no Displays in COBOL code. Is there any monitoring or analyzer tool. It is a COBOL VSAM program. |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
Talk to system people at your site and they can fine tune the jobs taking time by assigning proper system class and deciding the priority . Also you can look at AMP parameters and chance the JCL to fine tune IO’s. |
|
Back to top |
|
|
vasanthz
Global Moderator
Joined: 28 Aug 2007 Posts: 1744 Location: Tirupur, India
|
|
|
|
Quote: |
Is there a way to monitor which record of input file is currently being processed when there are no Displays in COBOL code. |
I don't know how to get which record is being processed.
However there is a rough way you can estimate how much longer a job will run.
1. Check if the CPU time(not elapsed time) consumed by the job is proportional to the record count of the file(s) being processed.
Inorder to do this, note down the record count of the file(s) and corresponsing CPU count for each day(you can get CPU time in the joblog).
See if you can find a trend, something like 20 CPU seconds are required to process 20,000 records.
So 1 CPU second is required for processing 1,000 records.
2. Lets assume you are lucky and find a relationship between # of records and CPU time(1 CPU second for 1,000 records)
Now if you want to estimate how much longer an active job will run, go to SDSF and check for ECPU-Time.
Suppose your input file for a day is 10,000 records and the currently active job shows ECPU-Time as 5 seconds. Then you can assume job has processed 5,000 records and the job is 50% complete. If the job is already active for 10 minutes, then it may run for another 10 minutes roughly.
This method is not precise, but it will help gauge whether a job will run for 10 minutes or 10 hours
Caveats: How much CPU a job gets depends upon the service class of the job, and it can vary depending upon factors like how long(service period) the job runs, the PI of the service class or LPAR/machine utilization, capping, velocity etc, so it may not be easy to predict elapsed time accurately.
In some cases the CPU time of a job may not be proportional to the record count being processed, since its based on the application. |
|
Back to top |
|
|
sergeyken
Senior Member
Joined: 29 Apr 2008 Posts: 2141 Location: USA
|
|
|
|
Another approach, a less sophisticated and more straightforward one.
While knowing the time your job has mandatory to finish, and also knowing the time this job to submit, before submitting it try to set the TIME=minutes parameter either in EXEC or JOB statement. There is no need to care about the number of processed/unprocessed records if you know in advance the time to provide start up your CICS, under any circumstances. |
|
Back to top |
|
|
Paras Dubey
New User
Joined: 08 Apr 2023 Posts: 2 Location: India
|
|
|
|
Thanks everyone for sharing ideas.
The input file is a PS and we are updating VSAM dataset.
I understood that there is no monitoring tool available on mainframe which can help to track job progress in terms of how many records has been processed already. Looks like I need to convince the developers to add some displays for live tracking.
In case there is any tool as such please let me know, if it is available in my shop I can probably get access to that. TIA! |
|
Back to top |
|
|
|