martes, 16 de diciembre de 2008

Memoria para trabajos batch

En el articulo anterior se explicaba como arrancar los subsistemas QBATCH y QINTER cambiando el subsistema de control a QCTL. Doy por supuesto que tenemos el ajuste de rendimiento del sistema activado.

Por omisión el subsistema QBATCH corre en el pool de memoria *BASE, esta configuración mezcla trabajos de sistema con nuestros trabajos por lotes, que posiblemente tienen unas necesidades de ejecución muy diferentes.

¿Como podemos asignar una memoria especial para nuestros trabajos por lotes en el subsistema QBATCH?, pues es sencillo:
  1. Debemos asignar memoria a un pool de memoria compartido, habitualmente para los trabajos del QBATCH se utiliza el *SHRPOOL1, calcular un tamaño mínimo para el pool (400 p.e. después se ajustara) y un nivel de actividad (numero trabajos activos al mismo tiempo en el pool, 10 p.e.) y ejecutar:
  2. CHGSHRPOOL POOL(*SHRPOOL1) SIZE(400) ACTLVL(10) PAGING(*CALC) TEXT('Batch jobs pool')
  3. Después añadir, al subsistema QBATCH, como segundo pool de memoria el *SHRPOOL1:
  4. CHGSBSD SBSD(QBATCH) POOLS((2 *SHRPOOL1))
  5. Una vez hecho, debemos cambiar el direccionamiento para que los trabajos que se sometan en este subsistema utilicen el segundo pool de memoria:
  6. CHGRTGE SBSD(QSYS/QBATCH) SEQNBR(9999) POOLID(2)
  7. A partir de este instante los trabajos que se sometan en el subsistema QBATCH utilizaran el pool de memoria *SHRPOOL1.
  8. El ajuste automático de rendimiento cambiará el tamaño de ese pool y su nivel de actividad según las necesidades de los trabajos, de la disponibilidad de recursos y de los parámetros que le indiquemos en la gestión de pools (WRKSHRPOOL).
Para más información podemos consultar los artículos:
Memoria para subsistema
Asignar prioridad automáticamente

No hay comentarios: