HLDJOBSCDE and RLSJOBSCDE both have an option for *ALL
I had a scenario similiar to yours at a large shop where dozens of jobs where manually being held then released.
Instead of holding then releasing the scheduled jobs, we held the few jobqs they were submitted to then released those after maintenance was complete.
In some instances, we had to change the number of threads in the jobq to single threaded to ensure certain jobs completed before others started. The subsystem does not have to be ended then restarted to take effect, it can be done of the fly.
Why not just end the scheduler (command ENDJS), do whatever needs to be done, then start the scheduler (command STRJS) when you’re finished?
Tom’s method may be the best way to handle this. Yes you can hold everything with HLDJOBSCDE. The issue is when you go to release it. If you had any jobs already on hold before the hold command was issued, a RLSJOBSCDE releases everything. Even those you may not want to run,