JCL - Configurazione dell'ambiente

Installazione di JCL su Windows / Linux

Sono disponibili molti emulatori mainframe gratuiti per Windows che possono essere utilizzati per scrivere e apprendere JCL di esempio.

Uno di questi emulatori è Hercules, che può essere facilmente installato in Windows seguendo alcuni semplici passaggi indicati di seguito:

  • Scarica e installa l'emulatore Hercules, disponibile dal sito principale di Hercules -: www.hercules-390.eu

  • La guida completa sui vari comandi per scrivere ed eseguire un JCL può essere trovata su URL www.jaymoseley.com/hercules/installmvs/instmvs2.htm

Hercules è un'implementazione software open source delle architetture mainframe System / 370 ed ESA / 390, oltre alla più recente z / Architecture a 64 bit. Hercules funziona su Linux, Windows, Solaris, FreeBSD e Mac OS X.

Esecuzione di JCL su mainframe

Un utente può connettersi a un server mainframe in diversi modi, ad esempio thin client, terminale fittizio, Virtual Client System (VCS) o Virtual Desktop System (VDS).

A ogni utente valido viene assegnato un ID di accesso per accedere all'interfaccia Z / OS (TSO / E o ISPF). Nell'interfaccia Z / OS, il JCL può essere codificato e memorizzato come membro in un PDS (Partitioned Dataset). Quando il JCL viene inviato, viene eseguito e l'output ricevuto come spiegato nella sezione sull'elaborazione del lavoro del capitolo precedente.

Struttura di un JCL

Di seguito viene fornita la struttura di base di un JCL con le istruzioni comuni:

//SAMPJCL JOB 1,CLASS=6,MSGCLASS=0,NOTIFY=&SYSUID          (1)
//*                                                        (2)
//STEP010  EXEC PGM=SORT                                   (3) 
//SORTIN   DD DSN=JCL.SAMPLE.INPUT,DISP=SHR                (4)
//SORTOUT  DD DSN=JCL.SAMPLE.OUTPUT,                       (5)
//         DISP=(NEW,CATLG,CATLG),DATACLAS=DSIZE50                
//SYSOUT   DD SYSOUT=*                                     (6) 
//SYSUDUMP DD SYSOUT=C                                     (6) 
//SYSPRINT DD SYSOUT=*                                     (6) 
//SYSIN    DD *                                            (6) 
  SORT FIELDS=COPY                                    
  INCLUDE COND=(28,3,CH,EQ,C'XXX')                                    
/*                                                         (7)

Descrizione del programma

Le istruzioni JCL numerate sono state spiegate di seguito:

(1) JOB statement - Specifica le informazioni richieste per lo SPOOLing del lavoro come ID lavoro, priorità di esecuzione, ID utente da notificare al completamento del lavoro.

(2) //* statement - Questa è una dichiarazione di commento.

(3) EXEC statement- Specifica il PROC / Programma da eseguire. Nell'esempio precedente, viene eseguito un programma SORT (ovvero, l'ordinamento dei dati di input in un ordine particolare)

(4) Input DD statement- Specifica il tipo di input da passare al programma menzionato in (3). Nell'esempio precedente, un file PS (Physical Sequential) viene passato come input in modalità condivisa (DISP = SHR).

(5) Output DD statement- Specifica il tipo di output che deve essere prodotto dal programma durante l'esecuzione. Nell'esempio sopra, viene creato un file PS. Se un'istruzione si estende oltre la 70a posizione in una riga, viene continuata nella riga successiva, che dovrebbe iniziare con "//" seguita da uno o più spazi.

(6)Possono essere presenti altri tipi di istruzioni DD per specificare informazioni aggiuntive al programma (Nell'esempio precedente: la condizione SORT è specificata nell'istruzione SYSIN DD) e per specificare la destinazione per il log di errore / esecuzione (Esempio: SYSUDUMP / SYSPRINT). Le istruzioni DD possono essere contenute in un set di dati (file mainframe) o come nei dati di flusso (informazioni hardcoded all'interno di JCL) come indicato nell'esempio precedente.

(7) /* segna la fine dei dati nel flusso.

Tutte le istruzioni JCL tranne nei dati di flusso iniziano con //. Dovrebbe esserci almeno uno spazio prima e dopo le parole chiave JOB, EXEC e DD e non dovrebbero esserci spazi nel resto dell'istruzione.

Tipi di parametri JOB

Ciascuna delle istruzioni JCL è accompagnata da una serie di parametri per aiutare i sistemi operativi a completare l'esecuzione del programma. I parametri possono essere di due tipi:

Parametri posizionali

  • Appare nella posizione e nell'ordine predefiniti nell'istruzione. Esempio: Informazioni contabili Il parametro può essere visualizzato solo dopo ilJOBparola chiave e prima del parametro del nome del programmatore e dei parametri della parola chiave. Se un parametro posizionale viene omesso, deve essere sostituito con una virgola.

  • I parametri posizionali sono presenti nelle istruzioni JOB ed EXEC. Nell'esempio precedente, PGM è un parametro posizionale codificato dopoEXEC parola chiave.

Parametri delle parole chiave

  • Sono codificati dopo i parametri posizionali, ma possono apparire in qualsiasi ordine. I parametri delle parole chiave possono essere omessi se non richiesti. La sintassi generica è KEYWORD = value . Esempio: MSGCLASS = X, ovvero la registrazione del lavoro viene reindirizzata all'output SPOOL dopo il completamento del lavoro.

  • Nell'esempio precedente, CLASS, MSGCLASS e NOTIFY sono parametri di parole chiave dell'istruzione JOB. Possono esserci anche parametri di parole chiave nell'istruzione EXEC.

Questi parametri sono stati descritti in dettaglio nei capitoli successivi insieme ad esempi appropriati.