From: Greg Shaull To: All
We have more than 200 users on our B70. We have a problem with a single user submitting many jobs to the job queue at one time ahead of other system users. The other users must then wait for all of the jobs of the first user before their job is started.
We need a job queue strategy that will allow the system to be more fairly shared among the users. We need to be able to limit the number of active jobs for a single user when there are jobs for other users waiting to start.
From: Tim Johnston To: Greg Shaull
I do not know if I can help you create a strategy, but I will help you try to learn the basics. Go to a command line and key in:
DSPSBSD QBATCH and take option #6, Job Queue Entries. I am at V2R1M1, so I see three entries, QBATCH, QS36-EVOKE and QTXTSRCH. Let's ignore for the time being the multiple entries and concentrate on one, QBATCH. As you will notice, there is a number of maximum active jobs. This is the total number of jobs that can run from the queue. QBATCH has 1, so it is considered a single- threaded job queue, one job at a time. Many jobs must be run one after the other, so you need this kind of queue. However, you can change the number of active jobs, or the number of jobs by each priority.
I wouldn't suggest monkeying with QBATCH. Leave it alone, like a honeymoon couple, and make your own subsystem and job queue. By letting more jobs run at a time from one job queue, system throughput will increase, but performance will degrade. Here is my strategy. I have a subsystem attached to its own pool in memory. I also have the system value QPRFADJ set to a 2, and the system will allocate and deallocate memory as it sees fit. The subsystem's sole purpose is for some of my batch jobs. I have attached a job queue to it with a maximum number of three active jobs out of the queue, with each priority letting one job run at a time.
Most of my jobs are compiles, and I have a data area which holds the priority used for the previous compile. I grab that and add one to it; if it is greater than 9, I reset it to 1, submit the job with that priority, and send the priority back to the data area for the next time. That way, I can have three compiles or any other jobs running at once. I have found that with more than three at a time, users start complaining about performance.
You might want to do something similar-but in your CL, route jobs to a certain priority, by the importance of the job. The highest priority is 1; the lowest is 9. Remember, the total number of jobs for the job queue will only let that number of jobs run simultaneously. Then the priorities take over.
I hope that I have whetted your whistle. If you are interested in a further discussion, let me know.
From: Carter Combs To: Greg Shaull
Greg, in the offending person's User Profile (or for all users if you like), change the maximum job queue priority to 5 (the system default) or lower (6- 9). This will put them on a FIFO (first-in, first-out) basis. Get them all on an equal footing, then let the system operator make changes as needed.