A veces hemos tenido la necesidad de aislar ciertos tipos de trabajo para que se ejecuten en orden secuencial; como la cola de trabajos QBATCH (asignada al subsistema QBATCH), puede, por omisión, ejecutar varios trabajos simultáneamente, no podemos utilizar esa cola para ejecutar trabajos secuencialmente.
Para crear una cola de trabajos independiente y asignarla al subsistema QBATCH, para que ejecute trabajos de uno en uno seguiremos los siguientes pasos:
- Crear una nueva cola de trabajos donde someteremos los trabajos que queramos ejecutar secuencialmente:
- CRTJOBQ JOBQ(QGPL/QBATCH1X1) TEXT('Job queue for run one by one')
- Asignar esa nueva cola de trabajos al subsistema QBATCH:
- ADDJOBQE SBSD(QBATCH) JOBQ(QGPL/QBATCH1X1) MAXACT(1) SEQNBR(15)
- El numero de secuencia (SEQNBR) sera el orden de cola que el subsistema utilizará para ejecutar los trabajos.
- Puede ser necesario ampliar el numero máximo de trabajos que se ejecutan en el subsistema QBATCH, y que por omisión es *NOMAX. Para comprobarlo DSPSBSD QBATCH opción 1 y ver el numero máximo de trabajos en el subsistema. Para cambiarlo usar CHGSBSD SBSD(QSYS/QBATCH) MAXJOBS(jobs que existan + 1)
- También podemos modificar las descripciones de trabajo, que creamos conveniente, para que se sometan siempre por esa cola de trabajos:
- CHGJOBD JOBD(mylib/myjobd) JOBQ(QGPL/QBATCH1X1)