JCL - Configuração do Ambiente
Instalando JCL no Windows / Linux
Existem muitos emuladores de mainframe gratuitos disponíveis para Windows que podem ser usados para escrever e aprender JCLs de amostra.
Um desses emuladores é o Hercules, que pode ser facilmente instalado no Windows seguindo algumas etapas simples fornecidas abaixo:
Baixe e instale o emulador Hercules, que está disponível no site da Hercules -: www.hercules-390.eu
O guia completo sobre vários comandos para escrever e executar um JCL pode ser encontrado em URL www.jaymoseley.com/hercules/installmvs/instmvs2.htm
Hercules é uma implementação de software de código aberto das arquiteturas mainframe System / 370 e ESA / 390, além da arquitetura z / de 64 bits mais recente. Hercules é executado em Linux, Windows, Solaris, FreeBSD e Mac OS X.
Executando JCL em Mainframes
Um usuário pode se conectar a um servidor mainframe de várias maneiras, como cliente fino, terminal fictício, Sistema de cliente virtual (VCS) ou Sistema de área de trabalho virtual (VDS).
Cada usuário válido recebe um ID de login para entrar na interface Z / OS (TSO / E ou ISPF). Na interface Z / OS, o JCL pode ser codificado e armazenado como um membro em um Partitioned Dataset (PDS). Quando o JCL é enviado, ele é executado e a saída é recebida conforme explicado na seção de processamento de trabalho do capítulo anterior.
Estrutura de um JCL
A estrutura básica de uma JCL com as instruções comuns é fornecida a seguir:
//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)
Descrição do Programa
As instruções JCL numeradas foram explicadas abaixo:
(1) JOB statement - Especifica as informações necessárias para o SPOOLing do trabalho, como id do trabalho, prioridade de execução, ID do usuário a ser notificado na conclusão do trabalho.
(2) //* statement - Esta é uma declaração de comentário.
(3) EXEC statement- Especifica o PROC / Programa a ser executado. No exemplo acima, um programa SORT está sendo executado (ou seja, classificando os dados de entrada em uma ordem específica)
(4) Input DD statement- Especifica o tipo de entrada a ser passada para o programa mencionado em (3). No exemplo acima, um arquivo Sequencial Físico (PS) é passado como entrada no modo compartilhado (DISP = SHR).
(5) Output DD statement- Especifica o tipo de saída a ser produzida pelo programa na execução. No exemplo acima, um arquivo PS é criado. Se uma declaração ultrapassar a 70ª posição em uma linha, ela continuará na próxima linha, que deve começar com "//" seguido por um ou mais espaços.
(6)Pode haver outros tipos de instruções DD para especificar informações adicionais para o programa (no exemplo acima: A condição SORT é especificada na instrução SYSIN DD) e para especificar o destino do log de erro / execução (Exemplo: SYSUDUMP / SYSPRINT). As instruções DD podem estar contidas em um conjunto de dados (arquivo de mainframe) ou em dados de fluxo (informações embutidas no código dentro do JCL) conforme fornecido no exemplo acima.
(7) /* marca o fim dos dados em fluxo.
Todas as instruções JCL, exceto em dados de fluxo, começam com //. Deve haver pelo menos um espaço antes e depois das palavras-chave JOB, EXEC e DD e não deve haver nenhum espaço no restante da instrução.
Tipos de parâmetro de JOB
Cada uma das instruções JCL é acompanhada por um conjunto de parâmetros para ajudar os Sistemas Operacionais a completar a execução do programa. Os parâmetros podem ser de dois tipos:
Parâmetros Posicionais
Aparece na posição e ordem predefinidas na instrução. Exemplo: O parâmetro de informações contábeis pode aparecer apenas após oJOBpalavra-chave e antes do parâmetro do nome do programador e dos parâmetros de palavra-chave. Se um parâmetro posicional for omitido, ele deve ser substituído por uma vírgula.
Os parâmetros posicionais estão presentes nas instruções JOB e EXEC. No exemplo acima, PGM é um parâmetro posicional codificado após oEXEC palavra-chave.
Parâmetros de palavra-chave
Eles são codificados após os parâmetros posicionais, mas podem aparecer em qualquer ordem. Os parâmetros de palavra-chave podem ser omitidos se não forem necessários. A sintaxe genérica é KEYWORD = value . Exemplo: MSGCLASS = X, ou seja, o log do job é redirecionado para a saída SPOOL após a conclusão do job.
No exemplo acima, CLASS, MSGCLASS e NOTIFY são parâmetros de palavra-chave da instrução JOB. Também pode haver parâmetros de palavra-chave na instrução EXEC.
Esses parâmetros foram detalhados nos capítulos subsequentes, juntamente com exemplos apropriados.