Ejecutar un programa COBOL en un entorno mainframe requiere un paso fundamental que muchos principiantes pasan por alto: escribir el JCL de ejecución. Mientras que la compilación transforma tu código fuente en un módulo de carga, es el JCL ejecutable el que le indica al sistema dónde encontrar ese módulo y hacia dónde dirigir la salida. A continuación se detalla paso a paso cómo lograrlo y cómo verificar que tu programa Holamundo se ejecutó correctamente.
¿Cómo crear el JCL de ejecución a partir del de compilación?
El proceso comienza reutilizando el JCL de compilación que ya tienes listo. Desde el menú inicial de tu entorno de desarrollo, seleccionas la opción uno, luego la tres y después la cuatro para acceder a la carpeta ergcero1.platzy.jcl [0:16].
Una vez dentro, ubicas el JCL de compilación del programa Holamundo y lo abres en modo view o browse. Desde la columna de comandos tecleas C seguido de nueves para copiar el contenido completo [0:40]. El nuevo miembro se define con el nombre JCLHOLAEX, donde "EX" hace referencia a que se trata de un archivo ejecutable.
Al presionar enter, el sistema genera el nuevo JCL. Luego sales con F3 y ejecutas el comando REV (refresh) en la línea de comandos para visualizarlo en la lista [1:04].
¿Qué cambios necesita la tarjeta JOB?
La tarjeta JOB es la primera sentencia de cualquier JCL y contiene los parámetros de identificación del trabajo. En lugar de reescribirla desde cero, reutilizas la existente y solo ajustas los indicadores:
- Cambias la referencia de "compila" por "ejecuta".
- El comentario se modifica a: job que ejecuta programa Holamundo en COBOL.
- Los demás parámetros permanecen sin cambios [1:17].
¿Cómo se define el paso de ejecución y la librería del módulo de carga?
El cuerpo del JCL de ejecución se construye con tres sentencias principales:
- Sentencia EXEC: defines el paso como
PASO01 seguido de EXEC PGM=HOLA, indicando el nombre del programa compilado [1:42].
- STEPLIB: esta instrucción especifica la librería del paso donde el sistema debe buscar el módulo de carga generado en la compilación anterior. Se codifica como
STEPLIB DD DSN= seguido de la ruta donde reside dicho módulo [1:54].
- DISP=SHR: el parámetro disposition con valor share le indica al sistema que la carpeta puede ser utilizada de modo compartido por diferentes JCLs al mismo tiempo [2:17].
Finalmente, defines la salida con SYSOUT=*. El asterisco le dice al sistema que use la salida definida en tu tarjeta JOB, específicamente el parámetro MSGCLASS. En esta emulación, el valor H dirige la salida a la consola de visualización de jobs [2:30].
¿Cómo enviar el JCL y verificar la ejecución en el spool?
Con el JCL limpio y sin líneas sobrantes, realizas el submit. Submitir es el equivalente a ejecutar el trabajo en el entorno mainframe [2:52]. El sistema asigna un número de job —en este caso, el diecinueve— y al presionar enter ante los tres asteriscos, el trabajo concluye.
Para verificar la salida, te diriges al spool, que es la consola de visualización de trabajos ejecutados:
- Abres una nueva ventana con el comando
START.
- Accedes con la opción tres, luego la ocho.
- Ubicas el job diecinueve y lo seleccionas con la letra S en la columna de comandos [3:12].
Al desplazarte con F8 o con el scroll del ratón, aparece la salida esperada: Holamundo [3:30]. El código de retorno confirma la ejecución exitosa.
¿Qué aprendiste sobre JCLs de compilación y ejecución?
Con este ejercicio completas el ciclo fundamental del desarrollo COBOL en mainframe: primero compilas el código fuente para generar un módulo de carga, y después creas un JCL independiente que lo ejecuta. Cada sentencia cumple un rol específico:
EXEC PGM identifica el programa.
STEPLIB localiza el módulo compilado.
SYSOUT redirige la salida hacia la consola.
Si tienes dudas sobre algún parámetro o quieres compartir tu experiencia creando JCLs, déjalas en los comentarios.