Compartilhando conhecimento com o mundo

Com tecnologia do Blogger.

Pesquisa

Download

Blogger Tricks

Blogger Themes

Visitas

Assuntos

Mostrar mensagens com a etiqueta Mainframe. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Mainframe. Mostrar todas as mensagens

8/14/2026

Menu de Gerenciamento para Hercules z/OS


Quem estuda ambientes de Mainframe sabe que configurar e subir o Hercules (z/OS) pode envolver diversos comandos e caminhos de diretórios extensos. Para otimizar minha rotina de estudos, desenvolvi um script de automação que funciona como um painel de controle centralizado. O que esse script faz? Menu Interativo: Escolho qual versão do z/OS quero subir (1.10 ou 2.2) com apenas um clique. Eliminação de Erros: Não preciso mais digitar caminhos complexos de arquivos .cnf no terminal. Agilidade: O script gerencia a chamada do executável e carrega as configurações específicas de cada ambiente instantaneamente. Antes, eu perdia tempo navegando por pastas e digitando comandos repetitivos. Agora, o processo é limpo, rápido e profissional. Pequenas automações geram grandes ganhos de produtividade!
Script para o Windows
@echo off
cls

:: Definindo o caminho do executável para facilitar
set HERCULES_EXE="C:\Program Files\Hercules\R3.13\hercules.exe"

:menu
cls
echo ==============================
echo       GERENCIADOR z/OS        
echo ==============================
echo  01) ONLINE z/OS 1.10         
echo  02) ONLINE z/OS 2.2          
echo  03) SAIR                     
echo ==============================
set /p opcao=Escolha uma opcao: 

if "%opcao%"=="1" goto op1
if "%opcao%"=="01" goto op1
if "%opcao%"=="2" goto op2
if "%opcao%"=="02" goto op2
if "%opcao%"=="3" goto sair
if "%opcao%"=="03" goto sair

echo Opcao invalida!
timeout /t 2 >nul
goto menu

:op1
echo Iniciando o z/OS 1.10...
:: AJUSTE O CAMINHO DO .CNF ABAIXO SE ESTIVER DIFERENTE
%HERCULES_EXE% -f "C:\Users\claudemar\Documents\Hercules\ibm_zos_1_10\hercules.cnf"
pause
goto menu

:op2
echo Iniciando o z/OS 2.2...
:: AJUSTE O CAMINHO DO .CNF ABAIXO SE ESTIVER DIFERENTE
%HERCULES_EXE% -f "C:\Users\claudemar\Documents\Hercules\ibm_zos_2_2\hercules.cnf"
pause
goto menu

:sair
exit

Script para o Linux
#!/bin/bash

# Função para exibir o menu
exibir_menu() {
    clear
    echo "=============================="
    echo "      GERENCIADOR z/OS        "
    echo "=============================="
    echo " 01) ONLINE z/OS 1.10         "
    echo " 02) ONLINE z/OS 2.2          "
    echo " 03) SAIR                     "
    echo "=============================="
    echo -n "Escolha uma opção: "
}

while true; do
    exibir_menu
    read opcao

    case $opcao in
        1|01)
            echo "Iniciando o z/OS 1.10"
            hercules -f /home/claudemar/Documentos/Hercules/ibm_zos_1_10/hercules.cnf 
            read -p "Pressione Enter para voltar..."
            ;;
        2|02)
            echo "Iniciando o z/OS 1.10"
            hercules -f /home/claudemar/Documentos/Hercules/ibm_zos_2_2/hercules.cnf 
            read -p "Pressione Enter para voltar..."
            ;;
        3|03)
            clear
            #echo "Saindo..."
            exit 0
            ;;
        *)
            echo "Opção inválida!"
            sleep 1
            ;;
    esac
done

10/31/2019

Compilador COBOL gratuito


O GnuCOBOL é provavelmente a melhor opção para quem quer aprender a programar em COBOL mas não tem acesso a um compilador comercial. Conheça um pouco mais sobre esse projeto e como ele pode ajudá-lo.

O que é o GnuCOBOL?

O GnuCOBOL é um compilador COBOL gratuito, distribuído sob a GNU General Public License, da Free Software Foundation (FSF).

Esse compilador começou a ser desenvolvido em 2001 por Keisuke Nishida e Roger While com o nome de OpenCOBOL. Em 2013, virou um projeto GNU, ganhou o nome de GnuCOBOL e passou a contar com diversos colaboradores.

Uma curiosidade: Keisuke Nishida já havia colaborado com o brasileiro Rildo Pragana no desenvolvimento de um outro compilador, chamado TinyCOBOL.

O GnuCOBOL incorpora a maior parte dos padrões conhecidos como COBOL/85 e COBOL/2002, além de algumas extensões disponíveis em diversos compiladores de mercado, como o Micro Focus COBOL e o AcuCOBOL.

Como funciona?

O GnuCOBOL traduz o seu programa fonte de COBOL para C, e em seguida compila esse programa em C usando o gcc, uma “coleção” de compiladores também distribuído gratuitamente pela FSF.

Essa solução permite que o GnuCOBOL seja usado em diferentes plataformas: Unix/Linux, Mac OS X, Microsoft Windows, OS/400, z/OS 390, OpenSolaris entre outros.

Como instalar?

Os binários e fontes do COBOL estão disponíveis na SourceForge. Mas, antes de baixar, vale a pena dar uma olhada no site oficial do GnuCOBOL. Clicando aqui você vai direto para a seção que explica o processo de instalação em diferentes plataformas.

Onde obter mais informações?

Na página de faq do GnuCOBOL você encontra todo tipo de informação: história do projeto, nomes dos colaboradores, dialetos suportados, procedimentos de instalação, incompatibilidades com outros compiladores conhecidos, extensões disponíveis etc.

A página da SourceForge tem também algumas informações sobre o andamento do projeto e algumas evoluções que ainda estão em beta-teste.

Existe também um manual excelente, escrito por Gary Cutler, chamado GnuCOBOL Programmers Guide. Esse documento é melhor do que muito manual oficial de compiladores comerciais. A versão mais recente é de 2013.









Fonte

11/24/2015

Apostila de Banco de Dados DB2 para Mainframes


A apostila Banco de Dados DB2 para Mainframes foi desenvolvido pela Mainframe School treinamentos em seus cursos sendo um ótimo material de estudos totalmente em português. O material mostra uma introdução sobre o DB2 para Mainframes sendo indicado para estudantes de concursos públicos e profissionais de TI em geral. Vale a pena conferir.

Download PDF

Créditos

11/04/2015

Criando um Programa Cobol pelo TSO - Mainframe


Este post explica como criar e compilar um programa COBOL no TSO.

Introdução

Primeiro de tudo, você deve entender como um programa COBOL é compilado. Nós temos uma fonte, rodamos um job que copila e dai temos um objeto ou executável. Uma vez que o programa objeto, podemos executar ele que mostrara um resultado obtido.

Então, primeiro, temos uma biblioteca onde ele será o nosso arquivo de origem, editar um membro onde a linguagem de programação COBOL. Esta biblioteca é definido como qualquer JCL biblioteca, ou seja, particionado e com bloco fixo de 80.

Em segundo lugar, precisamos de ter uma biblioteca onde, uma vez compilado, deixe o programa executável ou objeto resultado da nossa programação. Esta biblioteca, que contém um objeto, NÃO deve ser definido como bloco fixo de 80, mas como U ou indefinido (undefined). Isto é muito importante por causa da não definição da biblioteca, ele não irá funcionar.

E, finalmente, precisamos de um JCL para chamar as ferramentas de compilação e montagem, que vai ler o nosso membro de origem COBOL e nos deixar o objeto na biblioteca criada com formato de U, usando as variáveis ​​e parâmetros apropriados.

Criando o programa COBOL (fonte)

Se você não tiver, nós criamos uma biblioteca particionado e com um formato de registro fixo de 80 caracteres. No nosso exemplo, a chamada ADCD.LIB.JCL. Nesta biblioteca, criamos um membro do chamado OLAMUNDO contendo o seguinte programa (OLÁ MUNDO é o clássico):
   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help

 EDIT       ADCD.LIB.JCL(OLAMUNDO) - 01.05                  Columns 00001 00072
 ****** ***************************** Top of Data ******************************
 000001        IDENTIFICATION DIVISION.
 000002        PROGRAM-ID. HOLAMUN.
 000003        AUTHOR. JAVIER CASTILLA PARA EUSKAL ENCONTER Y MAINFRAMECORNER
 000004        INSTALLATION. IBM-ZOS.
 000005         DATE-WRITTEN. 13 FEBRERO DE 2013.
 000006         DATE-COMPILED.
 000007         SECURITY. NONE.
 000008        ENVIRONMENT DIVISION.
 000009         CONFIGURATION SECTION.
 000010          SOURCE-COMPUTER. MIORDENADOR.
 000011          OBJECT-COMPUTER. MIORDENADOR.
 000012          SPECIAL-NAMES.
 000013            DECIMAL-POINT IS COMMA.
 000014        DATA DIVISION.
 000015        WORKING-STORAGE SECTION.
 000016
 000017        PROCEDURE DIVISION.
 000018        001-MAIN.
 000019
 000020        DISPLAY "OLA MUNDO - RODAMOS UM PROGRAMA COBOL"
 000021        GOBACK.
 ****** **************************** Bottom of Data ****************************
 Command ===>                                                  Scroll ===> PAGE
  F1=Help      F2=Split     F3=Exit      F5=Rfind     F6=Rchange   F7=Up
  F8=Down      F9=Swap     F10=Left     F11=Right    F12=Cancel

Criando o objeto de programa

Esta etapa envolve dois pontos: Primeiro, já temos criados a biblioteca de objetos de software com formato de U (não canso de repetir) e em segundo lugar, iniciar o JCL para nos ler o membro cobol fonte, e irá compilar e vai deixar o objeto nos objetos de biblioteca programa.

Criando objetos de biblioteca

É simples: O JCL abaixo vamos pegar o objeto fonte ADCD.LIB.JCL(OLAMUNDO) e vamos gravar o objeto na ADCD.Z110.VTAMLIB(OLAMUNDO);

Compilando um COBOL

Para compilar o programa usamos o seguinte JCL:
   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help

 EDIT       ADCD.LIB.JCL(OLAMUND1) - 01.01                  Columns 00001 00072
 Command ===> sub                                              Scroll ===> CSR
 ****** ***************************** Top of Data ******************************
 000001 //TSOAD05J JOB 1AD40G12,'IBMUSER',NOTIFY=&SYSUID,
 000002 //  MSGCLASS=Q,CLASS=A,MSGLEVEL=(1,1),REGION=0M,TIME=(0,7)
 000003 //STEP0    EXEC IGYWCLG,PARM.COBOL='LIB,APOST,XREF,MAP,OFFSET'
 000004 //STEPLIB  DD DSN=ADCD.Z110.VTAMLIB,DISP=SHR
 000005 //* --------------------------------------------------------------
 000006 //* COMPILAR Y LINKEDITAR HOLAMUN (HOLAMUNDO EUSKAL ENC Y MFCORNER)
 000007 //* SYSLIB  ES LA LIB. DE COPYS
 000008 //* SYSIN   ES LA LIB. DE PROGRAMAS FUENTES
 000009 //* SYSLMOD ES LA LIB. DE PROGRAMAS OBJETOS O EJECUTABLES
 000010 //* --------------------------------------------------------------
 000011 //COBOL.SYSIN   DD DSN=ADCD.LIB.JCL(OLAMUNDO),DISP=SHR
 000012 //LKED.SYSLMOD  DD DSN=ADCD.Z110.VTAMLIB(OLAMUNDO),DISP=SHR
 000013 /*
Os parâmetros em negrito são as que precisam editar ele não deve trabalhar no nosso exemplo:

- COBOL.SYSIN DD é o registro onde irá apontar para o nosso COBOL fonte.

- STEPLIB DD é o registro que irá apontar para a biblioteca de objetos.

- LKED.SYSLMOD guia DD é onde definimos o objeto membro que é criado resultado da compilação.

Uma vez liberado JCL deve terminar Cond.Code 0. Se apenas um outro, tem que olhar para fora para certo se o trabalho tem sido um erro na transcrição do programa e corrigir o programa de origem. Se consultarmos Livreiro ADCD.Z110.VTAMLIB, deve ser um membro criado chamado OLAMUNDO.
   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help

 EDIT       ADCD.LIB.JCL(OLAMUND1) - 01.01                  Columns 00001 00072
 Command ===> sub                                              Scroll ===> CSR
 ****** ***************************** Top of Data ******************************
 000001 //TSOAD05J JOB 1AD40G12,'IBMUSER',NOTIFY=&SYSUID,
 000002 //  MSGCLASS=Q,CLASS=A,MSGLEVEL=(1,1),REGION=0M,TIME=(0,7)
 000003 //STEP0    EXEC IGYWCLG,PARM.COBOL='LIB,APOST,XREF,MAP,OFFSET'
 000004 //STEPLIB  DD DSN=ADCD.Z110.VTAMLIB,DISP=SHR
 000005 //* --------------------------------------------------------------
 000006 //* COMPILAR Y LINKEDITAR HOLAMUN (HOLAMUNDO EUSKAL ENC Y MFCORNER)
 000007 //* SYSLIB  ES LA LIB. DE COPYS
 000008 //* SYSIN   ES LA LIB. DE PROGRAMAS FUENTES
 000009 //* SYSLMOD ES LA LIB. DE PROGRAMAS OBJETOS O EJECUTABLES
 000010 //* --------------------------------------------------------------
 000011 //COBOL.SYSIN   DD DSN=ADCD.LIB.JCL(OLAMUNDO),DISP=SHR
 000012 //LKED.SYSLMOD  DD DSN=ADCD.Z110.VTAMLIB(OLAMUNDO),DISP=SHR
 000013 /*
 000014
 000015
 IKJ56250I JOB TSOAD05J(JOB00293) SUBMITTED
 ***
Rodou
 05.47.12 JOB00293 $HASP165 TSOAD05J ENDED AT N1  MAXCC=0 CN(INTERNAL)
 *** 

A execução do programa COBOL

Para executar o programa, basta fazer uma CHAMADA TSO é o membro ao abrigo do programa. No nosso exemplo, o comando seria:
TSO CALL 'ADCD.Z110.VTAMLIB(OLAMUNDO)'
Dando o comando no TSO;
   Menu  Functions  Confirm  Utilities  Help

 BROWSE            ADCD.LIB.JCL                              Row 00278 of 00481
            Name     Prompt       Size   Created          Changed          ID
 _________ OLAMUND1 *RC=0           23  2008/11/06  2015/11/04 05:32:58  IBMUSER
 _________ OLCUTL                   23  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PDOPMEMO                100  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PDOPPGM                  83  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PDORIMLD                 17  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PDSE                     21  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PORTRACF                 16  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PORTTOOL                305  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PROCTEST                  7  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PROFILE                 388  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMHP                  35  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMID                  65  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMIE                  65  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMIG                  65  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMIP                  65  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMIT                  35  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMJV                 123  2008/11/06  2008/11/06 15:55:48  IBMUSER
 Command ===> tso call 'ADCD.Z110.VTAMLIB(OLAMUNDO)'           Scroll ===> PAGE
  F1=Help    F2=Split   F3=Exit    F5=Rfind   F7=Up      F8=Down    F9=Swap
 F10=Left   F11=Right  F12=Cancel
Resultado
   Menu  Functions  Confirm  Utilities  Help

 BROWSE            ADCD.LIB.JCL                              Row 00278 of 00481
            Name     Prompt       Size   Created          Changed          ID
 _________ OLAMUND1 *RC=0           23  2008/11/06  2015/11/04 05:32:58  IBMUSER
 _________ OLCUTL                   23  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PDOPMEMO                100  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PDOPPGM                  83  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PDORIMLD                 17  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PDSE                     21  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PORTRACF                 16  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PORTTOOL                305  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PROCTEST                  7  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ PROFILE                 388  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMHP                  35  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMID                  65  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMIE                  65  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMIG                  65  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMIP                  65  2008/11/06  2008/11/06 15:55:48  IBMUSER
 _________ Q80SMIT                  35  2008/11/06  2008/11/06 15:55:48  IBMUSE
 OLA MUNDO - RODAMOS UM PROGRAMA COBOL
 ***

Vamos rodar um jcl para ver o resultado;
   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help

 EDIT       ADCD.LIB.JCL(COBOL003) - 01.06                  Columns 00001 00072
 Command ===>                                                  Scroll ===> CSR
 ****** ***************************** Top of Data ******************************
 000001 //TSOAD05J JOB 1AD40G12,'IBMUSER',NOTIFY=&SYSUID,
 000002 //  MSGCLASS=Q,CLASS=A,MSGLEVEL=(1,1),REGION=0M,TIME=(0,7)
 000003 //* -------------------------------------------
 000004 //* RODANDO UM COBOL POR JCL
 000005 //* -------------------------------------------
 000006 //STEP10    EXEC PGM=OLAMUNDO
 000007 //STEPLIB   DD DSN=ADCD.Z110.VTAMLIB,DISP=SHR
 000008 //SYSPRINT DD SYSOUT=*
 000009 /*
 000010
 000011
 000012
 000013
 000014
 000015
 000016
 000017
 000018
 000019
Resultado
   Display  Filter  View  Print  Options  Help
 -------------------------------------------------------------------------------
 SDSF OUTPUT DISPLAY TSOAD05J JOB00185  DSID     2 LINE 0       COLUMNS 02- 81
 COMMAND INPUT ===>                                            SCROLL ===> PAGE
********************************* TOP OF DATA **********************************
                         J E S 2  J O B  L O G  --  S Y S T E M  S Y S 1  --  N

09.20.37 JOB00185 ---- WEDNESDAY, 04 NOV 2015 ----
09.20.37 JOB00185  IRR010I  USERID IBMUSER  IS ASSIGNED TO THIS JOB.
09.20.37 JOB00185  ICH70001I IBMUSER  LAST ACCESS AT 09:12:17 ON WEDNESDAY, NOVE
09.20.37 JOB00185  $HASP373 TSOAD05J STARTED - INIT 1    - CLASS A - SYS SYS1
09.20.37 JOB00185  IEF403I TSOAD05J - STARTED - TIME=09.20.37
09.20.38 JOB00185  IEF404I TSOAD05J - ENDED - TIME=09.20.38
09.20.38 JOB00185  $HASP395 TSOAD05J ENDED
------ JES2 JOB STATISTICS ------
  04 NOV 2015 JOB EXECUTION DATE
           22 CARDS READ
           45 SYSOUT PRINT RECORDS
            0 SYSOUT PUNCH RECORDS
            2 SYSOUT SPOOL KBYTES
         0.00 MINUTES EXECUTION TIME
        1 //TSOAD05J JOB 1AD40G12,'IBMUSER',NOTIFY=&SYSUID,
          //  MSGCLASS=Q,CLASS=A,MSGLEVEL=(1,1),REGION=0M,TIME=(0,7)
          //* -------------------------------------------
          //* RODANDO UM COBOL POR JCL
          //* -------------------------------------------
          IEFC653I SUBSTITUTION JCL - 1AD40G12,'IBMUSER',NOTIFY=IBMUSER,MSGCLASS
          TIME=(0,7)
        2 //STEP10    EXEC PGM=OLAMUNDO
        3 //STEPLIB   DD DSN=ADCD.Z110.VTAMLIB,DISP=SHR
        4 //SYSPRINT DD SYSOUT=*
          /*
        5 //SYSIN     DD *               GENERATED STATEMENT
ICH70001I IBMUSER  LAST ACCESS AT 09:12:17 ON WEDNESDAY, NOVEMBER 4, 2015
IEF236I ALLOC. FOR TSOAD05J STEP10
IEF237I 0A81 ALLOCATED TO STEPLIB
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSIN
IEF237I JES2 ALLOCATED TO SYSOUT
IEF285I   IBMUSER.TSOAD05J.JOB00185.D0000103.?         SYSOUT
IEF142I TSOAD05J STEP10 - STEP WAS EXECUTED - COND CODE 0000
IEF285I   ADCD.Z110.VTAMLIB                            KEPT
IEF285I   VOL SER NOS= ZARES1.
IEF285I   IBMUSER.TSOAD05J.JOB00185.D0000102.?         SYSOUT
IEF285I   IBMUSER.TSOAD05J.JOB00185.D0000101.?         SYSIN
IEF373I STEP/STEP10  /START 2015308.0920
IEF374I STEP/STEP10  /STOP  2015308.0920 CPU    0MIN 00.17SEC SRB    0MIN 00.04S
IEF375I  JOB/TSOAD05J/START 2015308.0920
IEF376I  JOB/TSOAD05J/STOP  2015308.0920 CPU    0MIN 00.17SEC SRB    0MIN 00.04S
OLA MUNDO - RODAMOS UM PROGRAMA COBOL
******************************** BOTTOM OF DATA ********************************
  F1=HELP      F2=SPLIT     F3=END       F4=RETURN    F5=IFIND     F6=BOOK
  F7=UP        F8=DOWN      F9=SWAP     F10=LEFT     F11=RIGHT    F12=RETRIEVE
Clique Aqui

10/27/2015

O que é um catálogo no Mainframe?


Um catálogo descreve atributos do data set e indica os volumes em que ele está localizado.

Quando um data set é catalogado, ele pode ser referido pelo nome, sem que o usuário precise especificar onde o data set está armazenado. Os data set podem ser catalogados, descatalogados, ou recatalogados. Todos os discos onde estão os data set gerenciados pelo sistema são catalogados automaticamente em um catálogo.

Catalogar o data set em fita magnética não é necessário, mas isso pode simplificar tarefas dos usuários.

No z/OS, o Master Catalog e o User Catalogs armazenam as localizações dos data sets. Ambos os discos e fitas dos data sets podem ser catalogados. Para encontrar um data set que você solicitou, z/OS deve saber três informações:

- Nome do data sets;
- Nome do volume;
- Unidade (do tipo de dispositivo de volume, tal como um disco ou fita 3390 3590);

Você pode especificar todos os três valores em painéis ISPF ou em JCL. No entanto, o tipo de dispositivo de unidade e o volume muitas vezes não são relevantes para um usuário final ou a um programa. Um catálogo do sistema é usado para armazenar e recuperar a locação da UNIT e o VOLUME de um dataset. Em sua forma mais básica, um catálogo pode fornecer o tipo de dispositivo da unidade e nome do volume para qualquer data set que está catalogado. Um catálogo do sistema fornece uma função de consulta simples. Com esta facilidade o usuário só precisa fornecer um o nome do data set.

Master Catalog e User Catalog

Um sistema z/OS tem sempre, pelo menos, um Master Catalog. Se ele tem um único catálogo, este catálogo seria o Master Catalog e as entradas de localização para todos os data sets seriam armazenados nele. Um único catálogo, no entanto, seria eficiente nem flexível, para um sistema típico z/OS usa um catálogo principal e numerosos catálogos de usuários conectados a ele.

Um User Catalog armazena o nome e a localização de um data set (DSN/volume/unidade). O Master Catalog geralmente armazena apenas um dataset High-Level Qualifier (HLQ) com o nome do user catalog, que contém a localização de todos os conjuntos de dados pré-fixados por esta HLQ. O HLQ é chamado um alias.

Como regra geral, todos os data sets do usuário de instalação z/OS são catalogados. Data sets não catalogadas raramente são necessários e sua utilização está frequentemente relacionado a problemas de recuperação ou instalação de novo software. Data sets criados através ISPF são automaticamente catalogado.

Exemplo Pratico

Vamos usar o catalogo para pegar um determinado arquivo, temos 5 arquivos;
 ADABAS.S.BACKUP.DB106.FTP*                       Type  on Volume(s)
ADABAS.S.BACKUP.DB106.FTP.G0753V00                SEQ   PDW999
ADABAS.S.BACKUP.DB106.FTP.G0754V00                SEQ   PDW999
ADABAS.S.BACKUP.DB106.FTP.G0755V00                SEQ   PDW999
ADABAS.S.BACKUP.DB106.FTP.G0756V00                SEQ   PDW999
********** End of Dataset List **********

Lendo o Último arquivo


Quero pegar o último que foi gravado pelo catalogo e ler e gravar na fila do spool;
//AACGENER JOB (DBA,MASTER),'DBA',CLASS=S,MSGCLASS=A
//*UQ ALLOW
//* --------------------------------------------------
//*      LENDO DATA SET E JOGANDO NA FILA DO SPOOL
//* --------------------------------------------------
//GRAVA1   EXEC PGM=ICEGENER
//SYSPRINT DD SYSOUT=A
//SYSUT1   DD DSN=ADABAS.S.BACKUP.DB106.FTP(0),DISP=OLD
//SYSUT2   DD SYSOUT=G
//SYSIN    DD DUMMY
Resultado
1Logon accepted to library DBA.
1NEXT AABPBK04 230
1_______________________________________________________________________________
 *  A D A S A V                                   DB HOMOLOGACAO 106
 _______________________________________________________________________________
 22222   5555555    111     00000     111    5555555      DDDDDD    OOOOO   MMM   MMM  IIIIIII  NNN  NNN   GGGGG    OOOOO           
22  222  555       1111    000 000   1111    555          DDD DDD  OOO OOO  MMM   MMM    III    NNNN NNN  GGG      OOO OOO          
   222   555      11111    000 000  11111    555          DDD DDD  OOO OOO  MMMMMMMMM    III    NNNN NNN  GGG      OOO OOO          
  222    5555555    111    000 000    111    5555555      DDD DDD  OOO OOO  MMM M MMM    III    NNN NNNN  GGG GGG  OOO OOO          
 222         555    111    000 000    111        555      DDD DDD  OOO OOO  MMM   MMM    III    NNN NNNN  GGG GGG  OOO OOO          
222          555    111    000 000    111        555      DDD DDD  OOO OOO  MMM   MMM    III    NNN  NNN  GGG GGG  OOO OOO          
2222222  5555555  1111111   00000   1111111  5555555      DDDDDD    OOOOO   MMM   MMM  IIIIIII  NNN  NNN   GGGGG    OOOOO
 VOLSER-Table:
 -------------
  I No. I Type I VOLSER I Device I     High   I Tape  I  Size in I
  I     I      I        I        I     RABN   I Drive I  Tracks  I
  I-----I------I--------I--------I------------I-------I----------I
  I   1 I ASSO I DPL001 I  8391  I     539988 I    1  I   12874  I
  I   2 I ASSO I DPL002 I  8391  I    1079988 I    0  I       0  I
  I   3 I DATA I DPL001 I  8391  I     526195 I    1  I   88720  I
  I   4 I DATA I DPL002 I  8391  I    1052395 I    1  I     383  I
--------------------------------------------------------------------------------
OP=S CL=ALL IN=ALL JB=AACGENER,04413 DS=2 SI=SO LR=1 LL=80 PP=0 DC= RL=999999
AD=J DE= SC= PT= SQ=C RR=0 OC= SD=2000   26.10.2015, 18:14:28

Lendo o Antepenúltimo arquivo


Vamos pegar o antepenuntimo arquivo e jogar ele na fila do spool;
//AACGENER JOB (DBA,MASTER),'DBA',CLASS=S,MSGCLASS=A
//*UQ ALLOW
//* --------------------------------------------------
//*      LENDO DATA SET E JOGANDO NA FILA DO SPOOL
//* --------------------------------------------------
//GRAVA1   EXEC PGM=ICEGENER
//SYSPRINT DD SYSOUT=A
//SYSUT1   DD DSN=ADABAS.S.BACKUP.DB106.FTP(-1),DISP=OLD
//SYSUT2   DD SYSOUT=G
//SYSIN    DD DUMMY
Resultado
1Logon accepted to library DBA.
1NEXT AABPBK04 230
1_______________________________________________________________________________
 *  A D A S A V                                   DB HOMOLOGACAO 106
 _______________________________________________________________________________
 22222    33333     111     00000     111    5555555       SSSSS   EEEEEEE  XXX   XXX  TTTTTTT   AAAAA                              
22  222  33  333   1111    000 000   1111    555          SSS  SS  EEE       XXX XXX     TTT    AAA AAA                             
   222       333  11111    000 000  11111    555          SSSS     EEE        XXXX       TTT    AAA AAA                             
  222       333     111    000 000    111    5555555        SSSS   EEEEEEE    XXXX       TTT    AAAAAAA                             
 222         333    111    000 000    111        555         SSSS  EEE        XXXXX      TTT    AAA AAA                             
222      33  333    111    000 000    111        555      SS  SSS  EEE       XXX XXX     TTT    AAA AAA                             
2222222   33333   1111111   00000   1111111  5555555       SSSS    EEEEEEE  XXX   XXX    TTT    AAA AAA   
 VOLSER-Table:
 -------------
  I No. I Type I VOLSER I Device I     High   I Tape  I  Size in I
  I     I      I        I        I     RABN   I Drive I  Tracks  I
  I-----I------I--------I--------I------------I-------I----------I
  I   1 I ASSO I DPL001 I  8391  I     539988 I    1  I   12873  I
  I   2 I ASSO I DPL002 I  8391  I    1079988 I    0  I       0  I
  I   3 I DATA I DPL001 I  8391  I     526195 I    1  I   88713  I
  I   4 I DATA I DPL002 I  8391  I    1052395 I    1  I     382  I
--------------------------------------------------------------------------------
OP=S CL=ALL IN=ALL JB=AACGENER,04414 DS=2 SI=SO LR=1 LL=80 PP=0 DC= RL=999999
AD=J DE= SC= PT= SQ=C RR=0 OC= SD=2000   26.10.2015, 18:15:49
Clique Aqui

11/25/2014