11/08/17

ADCD zOS 1.6 on Hercules

Vamos rodar a versão 1.6 do z/OS no Hercules, como vamos ver não muda em nada em relação as outras versões; O Hercules, um emulador de arquitetura System/370, ESA/390 e zSeries (arquitetura Mainframe de 64 bits). Apesar de ser tecnicamente possível rodar z/OS (o mais atual versão dos sistemas operacionais de Mainframe) no Hercules, a IBM não permite devido a questões de licenciamento. Ainda assim é possível rodar sistemas operacionais mais antigos que foram liberados pela IBM em domínio público como OS/360, DOS/360, DOS/VS,MVS,VM/370 e TSS/370.

Arquivo de configuração do Z/OS 1.6
# ---------------------------------------------------------------------------------------    
#
# Configuration file for Hercules & IBM ADCD z/OS 1.6 (HSOTOMA)
#
# ---------------------------------------------------------------------------------------    
CPUSERIAL 000111       # CPU serial number
CPUMODEL  2064         # CPU model number
MAINSIZE  150          # Main storage size in megabytes 768
XPNDSIZE  0            # Expanded storage size in megabytes
CNSLPORT  3270         # TCP port number to which consoles connect
HTTPPORT  8081         # HTTP server
NUMCPU    4            # Number of CPUs
NUMVEC    2            # Vector facilities emulated
TZOFFSET  +0200 
OSTAILOR  OS/390       # OS tailoring
PANRATE   5000        # Panel refresh rate
ARCHMODE  ESAME        # Architecture mode S/370, ESA/390 or ESAME
PGMPRDOS  LICENSED     # Allow OS/390 and Z/OS systems to run  

# ---------------------------------------------------------------------------------------    
#
# IPL parameter
#
# ---------------------------------------------------------------------------------------    

LOADPARM  0A82CS.. 

# ---------------------------------------------------------------------------------------    
#
# SYMBOLS DEFINITION                                                *
#
# ---------------------------------------------------------------------------------------    

DEFSYM DASD "C:\Mainframe\Imagens_Run\IBM_ZOS_1.6\IBM_ADCD_zOS_v1.6_"    # discos

# ---------------------------------------------------------------------------------------    
#
# Terminals
#
# ---------------------------------------------------------------------------------------    

0700    3270
0701    3270
0702    3270
0900    3270
0901    3270

# ---------------------------------------------------------------------------------------    
#
# DASD
#
# ---------------------------------------------------------------------------------------    

0A80    3390    $(DASD)z6res1.a80
0A81    3390    $(DASD)z6res2.a81
0A82    3390    $(DASD)z6sys1.a82
0A83    3390    $(DASD)z6uss1.a83
0A84    3390    $(DASD)z6uss2.a84
0A85    3390    $(DASD)z6dis1.a85
0A86    3390    $(DASD)z6dis2.a86
0A87    3390    $(DASD)z6dis3.a87
0A88    3390    $(DASD)z6dis4.a88
0A89    3390    $(DASD)z6dis5.a89
0A8A    3390    $(DASD)z6was1.a8a
0A8B    3390    $(DASD)z6was2.a8b
0A8C    3390    $(DASD)z6db81.a8c
0A8D    3390    $(DASD)z6db82.a8d
0A8E    3390    $(DASD)z6cic1.a8e
0A8F    3390    $(DASD)z6ims1.a8f

# ---------------------------------------------------------------------------------------    
# Tapes
# ---------------------------------------------------------------------------------------    

0550.4  3420 *
0560.4  3480 *
0580.4  3490 *

# ---------------------------------------------------------------------------------------    
# Reader/Printer
# ---------------------------------------------------------------------------------------    

000C    3505  rdr00c.txt ascii trunc
000E    1403  prt00e.txt

#
# CTC link 
#
0E22.2 3088 CTCI 192.168.6.2 192.168.6.1

Carregando Z/OS 1.6
[code]claudemar@Claudemar:~$ cd hercules-3.07/
claudemar@Claudemar:~/hercules-3.07$ hercules -f zos-16.cnf
Hercules Version 3.07
(c)Copyright 1999-2010 by Roger Bowler, Jan Jaeger, and others
Built on Jan 12 2011 at 22:57:22
Build information:
  Modes: S/370 ESA/390 z/Arch
  Max CPU Engines: 8
  Using setresuid() for setting privileges
  Dynamic loading support
  Using shared libraries
  No External GUI support
  HTTP Server support
  No CCKD BZIP2 support
  Regular Expressions support
  Automatic Operator support
  No HET BZIP2 support
  National Language Support
  Machine dependent assists: cmpxchg1 cmpxchg4 cmpxchg8 fetch_dw store_dw multi_byte
Running on Claudemar Linux-2.6.35-24-generic.#42-Ubuntu SMP Thu Dec 2 01:41:57 UTC 2010 i686 MP=2
HHCHD018I Loadable module directory is /usr/local/lib/hercules
Crypto module loaded (c) Copyright Bernard van der Helm, 2003-2010
  Active: Message Security Assist
          Message Security Assist Extension 1
          Message Security Assist Extension 2
HHCCF020W Vector Facility support not configured
HHCCF065I Hercules: tid=B77816C0, pid=4673, pgid=4673, priority=0
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6RES1.A80 cyls=3339 heads=15 tracks=50085 trklen=56832
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6RES2.A81 cyls=3339 heads=15 tracks=50085 trklen=56832
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6SYS1.A82 cyls=3339 heads=15 tracks=50085 trklen=56832
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6USS1.A83 cyls=3339 heads=15 tracks=50085 trklen=56832
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6USS2.A84 cyls=3339 heads=15 tracks=50085 trklen=56832
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6DIS1.A85 cyls=3339 heads=15 tracks=50085 trklen=56832
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6DIS2.A86 cyls=3339 heads=15 tracks=50085 trklen=56832
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6DIS3.A87 cyls=3339 heads=15 tracks=50085 trklen=56832
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6DIS4.A88 cyls=3339 heads=15 tracks=50085 trklen=56832
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6DIS5.A89 cyls=3339 heads=15 tracks=50085 trklen=56832
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6WAS1.A8A cyls=3339 heads=15 tracks=50085 trklen=56832
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6WAS2.A8B cyls=3339 heads=15 tracks=50085 trklen=56832
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6DB81.A8C cyls=3339 heads=15 tracks=50085 trklen=56832
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6DB82.A8D cyls=3339 heads=15 tracks=50085 trklen=56832
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6CIC1.A8E cyls=2226 heads=15 tracks=33390 trklen=56832
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6IMS1.A8F cyls=2226 heads=15 tracks=33390 trklen=56832
HHCTE001I Console connection thread started: tid=B7447B70, pid=4673
HHCTE003I Waiting for console connection on port 3270
HHCIF005E hercifc: ioctl error doing TUNSETIFF on ?: 1 Operation not permitted
HHCTU001E hercifc timeout, possible older version?
HHCTU003E Error setting TUN/TAP mode: /dev/net/tun: Operação não permitida
HHCLC073I 0E20: TAP device  opened
HHCCP002I CPU0000 thread started: tid=9E0FBB70, pid=4673, priority=15
HHCTT002I Timer thread started: tid=9DFFAB70, pid=4673, priority=0
HHCCP003I CPU0000 architecture mode z/Arch

HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6DIS2+
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6DIS3.
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6DIS4.
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6DIS5.
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6WAS1.
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6WAS2.
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6DB81.
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6DB82.
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6CIC1.
HHCDA020I /home/claudemar/hercules-3.07/imagens/ZOS-16/IBM_ADCD_zOS_v1.6_Z6IMS1.
HHCTE001I Console connection thread started: tid=B7447B70, pid=4673             
HHCTE003I Waiting for console connection on port 3270                           
HHCIF005E hercifc: ioctl error doing TUNSETIFF on ?: 1 Operation not permitted  
HHCTU001E hercifc timeout, possible older version?                              
HHCTU003E Error setting TUN/TAP mode: /dev/net/tun: Opera    o n  o permitida   
HHCLC073I 0E20: TAP device  opened                                              
HHCCP002I CPU0000 thread started: tid=9E0FBB70, pid=4673, priority=15           
HHCTT002I Timer thread started: tid=9DFFAB70, pid=4673, priority=0              
HHCCP003I CPU0000 architecture mode z/Arch                                      
HHCPN001I Control panel thread started: tid=B77816C0, pid=4673                  
HHCAO001I Hercules Automatic Operator thread started;                           
          tid=9DC68B70, pri=0, pid=4673    

IPL na console do Hercules;
ipl a080

Na console do z/OS - Responder R 00,I
   IEA247I USING IEASYSCS FOR z/OS 01.06.00 HBB7709
   IEA598I TIME ZONE = W.06.00.00
   IXL011I XES HARDWARE SUPPORT IS NOT INSTALLED.  REASON: 02
   IXC414I CANNOT JOIN SYSPLEX ADCDPL WHICH IS RUNNING IN MONOPLEX MODE:
    CONFIGURATION REQUIREMENT
   IXC404I SYSTEM(S) ACTIVE OR IPLING: ADCD
   IXC420D REPLY I TO INITIALIZE SYSPLEX ADCDPL, OR R TO REINITIALIZE XCF.
    REPLYING I WILL IMPACT OTHER ACTIVE SYSTEMS.

Para ajustar a tela da console para limpar e dar os comandos;
K S,DEL=RD,SEG=20,CON=N,RNUM=20,RTME=001,MFORM=(T,J)
K A,NONE

R 02,RELOAD
     *13.09.55 STC00002 *02 ISTEXC200 - DYN COMMANDS MAY BE ENTERED



















  IEE612I CN=C700     DEVNUM=0700 SYS=ADCD


  IEE163I MODE= RD

Aplicativos no ar;
    - 13.16.18           d a,l
      13.16.18           IEE114I 13.16.18 2015.326 ACTIVITY 569               C
       JOBS     M/S    TS USERS    SYSAS    INITS   ACTIVE/MAX VTAM     OAS
      00002    00012    00000      00029    00016    00000/00040       00012
       LLA      LLA      LLA      NSW  S  JES2     JES2     IEFPROC  NSW  S
       VLF      VLF      VLF      NSW  S  VTAM     VTAM     VTAM     NSW  S
       DLF      DLF      DLF      NSW  S  RACF     RACF     RACF     NSW  S
       TSO      TSO      STEP1    OWT  S  SDSF     SDSF     SDSF     NSW  S
       TCPIP    TCPIP    TCPIP    NSW  SO HTTPD1   HTTPD1   WEBSRV1  OWT  SO
       NFSS     NFSS     GFSAMAIN NSW  SO INETD4   STEP1    OMVSKERN OWT  AO
       PORTMAP  PORTMAP  PMAP     OWT  SO FTPD1    STEP1    FTPD     OWT  AO








  IEE612I CN=C700     DEVNUM=0700 SYS=ADCD


  IEE163I MODE= RD

Abrindo outro emulador telnet vamos acessar o TSO;
z/OS V1R6 Level 0409                               IP Address =
                                                   VTAM Terminal = LCL701

                       Application Developer System

                                //  OOOOOOO  SSSSSSS
                               //  OO    OO SS
                       zzzzzz //  OO    OO SS
                         zz  //  OO    OO   SSSS
                       zz   //  OO    OO       SS
                     zz    //  OO    OO       SS
                   zzzzzz //   OOOOOOO  SSSSSSS


                   System Customization - ADCD.Z16.*




 ===> Enter "LOGON" followed by the TSO userid. Example "LOGON IBMUSER" or
 ===> Enter L followed by the APPLID
 ===> Examples: "L TSO", "L CICS", "L IMS3270

mensagem;
 ICH70001I SYSADM   LAST ACCESS AT 19:14:38 ON THURSDAY, NOVEMBER 18, 2004
 IKJ56455I SYSADM LOGON IN PROGRESS AT 13:44:02 ON NOVEMBER 22, 2015
 IKJ56951I NO BROADCAST MESSAGES
 *****************************************************************
 *                                                               *
 *              APPLICATION DEVELOPMENT SYSTEM, ADS              *
 *         BUILT BY THE APPLICATION DEVELOPMENT CDROM, ADCD      *
 *                                                               *
 *  ADCD.Z16.CLIST(ISPFCL) PRODUCES THIS MESSAGE             *
 *  ADCD.* DATASETS CONTAIN SYSTEM CUSTOMIZATION                 *
 *  SMP/E DATASETS CAN BE LOCATED FROM 3.4 WITH DSNAME **.CSI    *
 *  HTTP://DTSC.DAL-EBIS.IHOST.COM/ADCD CONTAINS DOCUMENTATION   *
 *                                                               *
 *  USERID              PASSWORD        COMMENT                  *
 *  ----------------    ------------ --------------              *
 *  IBMUSER             - SYS1/IBMUSER FULL AUTHORITY            *
 *  ADCDMST             - ADCDMST                                *
 *  ADCDA THRU ADCDZ    - TEST         LIMITED AUTHORITY(NO OMVS)*
 *  OPEN1 THRU OPEN3    - SYS1         UID(0) (NO TSO)           *
 *                                                               *
 *****************************************************************
 READY

Estamos no TSO
   Menu  Utilities  Compilers  Options  Status  Help

                            ISPF Primary Option Menu

 0  Settings      Terminal and user parameters            User ID . : SYSADM
 1  View          Display source data or listings         Time. . . : 19:19
 2  Edit          Create or change source data            Terminal. : 3278
 3  Utilities     Perform utility functions               Screen. . : 1
 4  Foreground    Interactive language processing         Language. : ENGLISH
 5  Batch         Submit job for language processing      Appl ID . : ISR
 6  Command       Enter TSO or Workstation commands       TSO logon : DBSPROC
 7  Dialog Test   Perform dialog testing                  TSO prefix: SYSADM
 9  IBM Products  IBM program development products        System ID : ADCD
 10 SCLM          SW Configuration Library Manager        MVS acct. : ACCT#
 11 Workplace     ISPF Object/Action Workplace            Release . : ISPF 5.6
 M  More          Additional IBM Products


      Enter X to Terminate using log/list defaults


 Option ===>
  F1=Help      F2=Split     F3=Exit      F7=Backward  F8=Forward   F9=Swap
 F10=Actions  F12=Cancel

Retirar os aplicativos
Depois de muito testar pra retirar os aplicativos vamos dar o comando S SHUTALL
    - 09.46.43           s SHUTALL
    - 09.46.44 STC00034  $HASP373 SHUTALL  STARTED
    - 09.46.44 STC00034  VTAMAP00I VTAM Application Starter (Version 2.10) is
    -  now active.
    - 09.46.44 STC00034  VTAMAP17I Command Prefix Character = None.
    - 09.46.44 STC00034  VTAMAP03I VTAM 6.1 is active. Will now execute Parmlib
    -  commands.
    - 09.46.44 STC00034  VTAMAP17I Command Prefix Character = None.
    - 09.46.44 STC00034  VTAMAP10I Issuing "F TSO,USERMAX=0        /* DON'T
    -  ALLOW ANYONE ELSE TO LOGON RIGHT NOW! */".
    - 09.46.44 STC00019  IKT033I TCAS USERMAX VALUE SET TO 0
    - 09.46.44 STC00019  IKT008I TCAS NOT ACCEPTING LOGONS
    - 09.46.44 STC00034  VTAMAP10I Issuing "SEND 'PLEASE LOGOFF - THE SYSTEM
    -  WILL BE IPLED IN 2 MINUTES!!',ALL,NOW".
    - 09.46.44 STC00034  VTAMAP11I Pausing 5 seconds...





  IEE612I CN=C700     DEVNUM=0700 SYS=P390
  s shutall

  IEE163I MODE= RD

Vamos dar esse comando para retirar o DLF;
F DLF,MODE=D
P DLF

Na tela da console;
    - 09.49.26           D A,L
      09.49.26           IEE114I 09.49.26 2015.326 ACTIVITY 280               C
       JOBS     M/S    TS USERS    SYSAS    INITS   ACTIVE/MAX VTAM     OAS
      00000    00002    00000      00027    00010    00000/00000       00001
       JES2     JES2     IEFPROC  NSW  S  DLF      DLF      DLF      NSW  S
    - 09.50.35           F DLF,MODE=D
      09.50.35           COF536I DLF MODIFY COMMAND PROCESSING COMPLETED.
    - 09.50.40           P DLF
      09.50.40           COF534I DLF HAS TERMINATED BECAUSE OF AN OPERATOR STOP
       REQUEST.
    - 09.50.40           IEF404I DLF - ENDED - TIME=09.50.40
    - 09.50.40           IEF352I ADDRESS SPACE UNAVAILABLE








  IEE612I CN=C700     DEVNUM=0700 SYS=P390


  IEE163I MODE= RD

Retirando o JES2 - $PJES2
    - 09.51.12 STC00007  IEF404I INIT - ENDED - TIME=09.51.12
    - 09.51.12 STC00006  IEF404I INIT - ENDED - TIME=09.51.12
    - 09.51.12 STC00014  IEF404I INIT - ENDED - TIME=09.51.12
    - 09.51.12 STC00015  IEF404I INIT - ENDED - TIME=09.51.12
      09.51.12           $HASP314 INIT 6    DRAINED  ******** C=ABCD
    - 09.51.12 STC00005  IEF404I INIT - ENDED - TIME=09.51.12
      09.51.12           $HASP314 INIT 7    DRAINED  ******** C=ABCD
      09.51.12           $HASP314 INIT 8    DRAINED  ******** C=ABCD
    - 09.51.12 STC00009  IEF404I INIT - ENDED - TIME=09.51.12
      09.51.12           $HASP314 INIT 9    DRAINED  ******** C=ABCD
      09.51.12           $HASP314 INIT 10   DRAINED  ******** C=ABCD
      09.51.12           IEA964I HARDCOPY SUSPENDED, REASON=HCSW
      NO HARDCOPY DEVICE AVAILABLE
     *09.51.13          *IEE037D LOG NOT ACTIVE
      09.51.15           $HASP9085 JES2 MONITOR ADDRESS SPACE STOPPED FOR JES2
    - 09.51.15           IEF404I IEESYSAS - ENDED - TIME=09.51.15
  00- 09.51.20           IXZ0002I CONNECTION TO JESXCF COMPONENT DISABLED,
    -          GROUP N1       MEMBER N1$SYS1
      09.51.20           $HASP085 JES2 TERMINATION COMPLETE
    - 09.51.21           IEF404I JES2 - ENDED - TIME=09.51.21
  IEE612I CN=C700     DEVNUM=0700 SYS=P390


  IEE163I MODE= RD

Z EOD
     *09.51.13          *IEE037D LOG NOT ACTIVE
    - 09.51.38           Z EOD
      09.51.38           IEE334I HALT EOD SUCCESSFUL

















  IEE612I CN=C700     DEVNUM=0700 SYS=P390


  IEE163I MODE= RD

QUIESCE
 IEE107I THE FOLLOWING MESSAGE IS ISSUED BY SYNCHRONOUS WTO/R SERVICE
 *BLW002I SYSTEM WAIT STATE 'CCC'X - QUIESCE FUNCTION PERFORMED

Na console do Hercules de o comando
exit
Leia Mais

10/08/17

O que é o Banco de Dados IMS

O Information Management System (IMS) da IBM é um sistema de banco de dados hierárquico e de gerenciamento de informações com extensos recursos de processamento de transações.

Surgimento

A IBM começou a projetar e desenvolver o IMS em 1966 para o programa Apollo em parceria com as empresas Rockwell e Caterpillar. O grande desafio do IMS foi realizar o inventário da imensa quantidade de peças do foguete Saturn V.
A primeira mensagem "IMS READY" ocorreu em um terminal IBM 2740 em Downey, Califórnia no dia 14 de agosto de 1968. O IMS continuou se fortalecendo com o passar das décadas, recebendo recentemente grandes atualizações devido à evolução do IBM System/360 para o atual z/OS e as tecnologias System z9 e z10. Por exemplo, o IMS atualmente oferece suporte à programação Java, JDBC, XML e, desde 2005, Web services (embora a instalação do JDBC possa requerer licenciamento adicional por parte da IBM). O IMS Connect, por padrão, vem com a versão 9 ou mais recente e provê interface TCP/IP à programas de processamento de mensagem (Message Processing Programs) executando em regiões de processamento de mensagens do IMS (IMS Message Processing Regions).
Vern Watts foi arquiteto chefe do IMS por vários anos. Watts entrou na IBM em 1956 e, desde os anos 60, trabalhou continuamente no projeto do IMS nos laboratórios de desenvolvimento IBM do Vale do Silício até a sua morte, em 4 de Abril de 2009.

Banco de dados

O componente de banco de dados do IMS (IMS Database) armazena dados utilizando um modelo hierárquico, que difere em muito do banco de dados relacional lançado na sequência pela empresa, o DB2. No IMS, o modelo hierárquico é implementado usando blocos de dados conhecidos como segmentos. Cada segmento pode conter vários pedaços de dados, conhecidos como campos. Por exemplo, o banco de dados de um cliente pode ter um segmento raiz (segmento do topo da hierarquia) com campos como telefone, nome e idade. Segmentos filho podem ser adicionados abaixo de um outro segmento, como um segmento "compra" abaixo de cada segmento "cliente" representando cada compra que um cliente realizou com uma empresa.

Clique Aqui
Leia Mais

Sistema de arquivos do Mainframe

Sistema de arquivo do MVS

Os nomes dos datasets (Data set name - DSN, termo para designar nomes de arquivos) são organizados em uma hierarquia na qual seus níveis são separados por pontos, como por exemplo "DEPT01.SIS01.PROJ01.ARQ01". Cada nível hierárquico pode conter até 8 caracteres. O tamanho máximo para o nome do dataset é de 44 caracteres incluindo os pontos. Por convenção, os componentes separados por pontos são usados para organizar os datasets similares em diretórios de outros sistemas operacionais. Por exemplo, existem programas que possuem funcionalidades semelhantes às do Windows Explorer (porém sem a GUI e geralmente em modo de processamento batch): criar, renomear ou excluir elementos e adicionar-lhes conteúdo. Porém, diferente de muitos outros sistemas, estes níveis hierárquicos não são de fato diretórios, mas apenas uma convenção de nomenclatura (como o sistema de arquivo inicial do Macintosh, onde a hierarquia de pastas é uma ilusão provocada pelo Finder). O TSO provê suporte a um prefixo padrão para arquivos (semelhante a "diretório atual"), e o RACF permite a configuração de controle de acesso baseado em padrões de nomenclatura, análogo aos controles de acesso de diretórios de outras plataformas.

Assim como os outros sistemas da família, os datasets do MVS são record-oriented - orientado à registros. O MVS herdou três principais características de seus predecessores:

(*) Datasets sequenciais são normalmente lidos como um registro por vez, do início ao fim.
(*) Em datasets BDAM (acesso direto), o programa aplicativo deve especificar a localização física do dado a ser acessado (geralmente especificando o deslocamento a partir do início do dataset).
(*) Em datasets ISAM, uma seção específica de cada registro é definida como uma chave que pode ser utilizada para obter registros específicos. A chave muitas vezes consiste de múltiplos campos, estes que devem ser necessariamente contíguos e na ordem correta, e os valores dessas chaves devem ser únicos (unique). Por isso um dataset IBM VSAM pode possuir apenas uma chave, equivalente ao conceito de chave primária de uma tabela de banco de dados relacional, apesar de não haver alguma equivalência de chave estrangeira.
Datasets sequencias e ISAM podem armazenar tanto registros de tamanho fixo quanto variável, e todos os registros podem ocupar mais que um volume de disco.

Todas estas características são baseadas na estrutura de disco VTOC.

Os primeiros sistemas de gerenciamento de bancos de dados da IBM utilizavam várias combinações de datasets ISAM e BDAM, sendo o uso de BDAM mais comum para o armazenamento de dados e ISAM para índices.

No início dos anos 70, os sistemas operacionais da IBM com suporte à memória virtual apresentaram um novo componente de gerenciamento de arquivos, VSAM, que proporcionava recursos similares:

(*) Entry-Sequenced Datasets - Datasets Sequenciados por Registro (ESDS) proveem recursos similares aos oferecidos tanto pelos datasets sequenciais como BDAM, uma vez que eles podem ser lidos tanto do início como do fim ou ainda especificando o deslocamento desejado a partir do início.
(*) Key-Sequenced Datasets - Datasets Sequenciados por Chaves (KSDS) são uma atualização do ISAM: permitem chaves secundárias com valores não únicos (non-unique) e que podem ser formadas por campos não contíguos e em qualquer ordem. Estes datasets diminuíram em muito os problemas de performance causados pelo estouro de registros no ISAM, e também reduziram o risco de uma falha de software ou hardware durante uma atualização de índice corromper todo o índice.
Estes formatos VSAM tornaram-se a base dos sistemas de gerenciamento de bancos de dados da IBM, IMS/VS e DB2, sendo o uso de ESDS mais comum para o armazenamento de dados e KSDS para índices.

O VSAM também incluiu um componente de catálogo utilizado pelo catálogo mestre do MVS.

Datasets particionados - Partitioned Datasets (PDS) eram datasets sequenciais subdivididos em membros que poderiam ser processados individualmente como datasets sequenciais. O uso mais importante dos PDS foram para bibliotecas de programas, os administradores do sistema usavam um PDS principal como uma forma de alocar espaço em disco para um determinado projeto, e o time criava e editava membros conforme suas necessidades.

Grupos de Geração de Dados - Generation Data Groups (GDGs) foram originalmente projetados para dar suporte à procedimentos de backups grandfather-father-son: se um dataset fosse modificado, a versão alterada se tornava o filho, o filho anterior se tornava o pai, o pai anterior se tornava o avô e o avô anterior era excluído. Mas era possível configurar os GDGs para lidarem com muito mais que três gerações, de tal forma que algumas aplicações utilizavam os GDGs para coletarem dados de diversas fontes para alimentarem um programa, sendo que cada programa de coleta criava uma nova geração de um arquivo e o programa final lia todo o grupo como um simples arquivo sequencial (não especificando a geração pelo JCL).

As versões modernas do MVS, como o z/OS, também suportam sistemas de arquivo compatíveis com POSIX, fornecendo ainda recursos para integrar os dois sistemas de arquivo. Isto é, o sistema operacional consegue fazer com que um dataset do MVS apareça como um arquivo para um programa ou subsistema POSIX. Estes novos sistemas de arquivo incluem Hierarchical File System - Sistema de Arquivo Hierárquico (HFS) (não confundir com o sistema de arquivo HFS da Apple) e zFS (não confundir com o sistema de arquivo ZFS da Sun).

Retirado
Leia Mais

Tipos de Processamento no Mainframe: Batch e Online

Introdução

O processamento em lote tem sido associado com computadores de grande porte desde os primórdios da computação, pois inicialmente, os computadores não eram capazes de ter vários programas carregados na memória principal.

Processamento batch

Processamento batch, no contexto de sistemas operacionais, é um termo referente a um processamento de dados que ocorre através de um lote de tarefas enfileiradas, de modo que o sistema operacional só processa a próxima tarefa após o término completo da tarefa anterior.

Processamento batch é utilizado quando do tratamento de arquivos que contêm diversos registros, também conhecido como processamento por lote de dados. Este recurso é muito utilizado em sistemas distribuídos onde as aplicações de front-end tem restrições, seja de custos, de telecomunicações ou de arquitetura, para efetuar atualizações online/realtime nos sistemas centralizados. Opta-se por alimentar um banco de dados local durante o dia e envio de um arquivo sequencial contendo todos os registros para atualizações no período noturno nos sistemas centrais.

Os sistemas batch foram os primeiros tipos de sistemas operacionais multiprogramáveis a serem implementados na década de 1960. Os programas, também chamados de jobs, eram submetidos para execução através de cartões perfurados e armazenados em disco ou fita, onde aguardavam para serem processados. Posteriormente, em função da disponibilidade de espaço na memória principal, os jobs eram executados, produzindo uma saída em disco ou fita.

O processamento batch tem a característica de não exigir a interação do usuário com a aplicação. Todas as entradas e saídas de dados da aplicação são implementadas por algum tipo de memória secundária, geralmente arquivos em disco. Alguns exemplos de aplicações originalmente processadas em batch são programas envolvendo cálculos numéricos, compilações, ordenações, backups e todos aqueles onde não é necessária a interação com o usuário.

Esses sistemas, quando bem projetados, podem ser bastante eficientes, devido à melhor utilização do processador, entretanto, podem oferecer tempos de resposta longos. Atualmente, os sistemas operacionais implementam ou simulam o processamento batch, não existindo sistemas exclusivamente dedicados a este tipo de processamento.

Processamento Online

É o processamento atualizado, as informações são processadas no mesmo momento em que são registradas. Como no processamento em Batch, o processamento On-line é mais frequente do que você imagina. Como por exemplo: Créditos de celulares, operações financeiras, operações com cartões de crédito e débito para o usuário. Podemos citar um exemplo bem comum para descrever esse tipo de processamento, o cartão de debito, o valor é descontado de sua conta no mesmo momento em que você realiza a compra.

Retirado - Batch - Online - Batch/Online
Leia Mais

09/08/17

Generation Data Groups (GDG)

Introdução

GDG (Generation Data Group), ou Grupo de Dados por Geração em português, é um conceito usado em sistemas mainframe para gerenciar e acessar versões históricas de arquivos ou conjuntos de dados de maneira organizada. O GDG permite que você mantenha um histórico de versões de um arquivo ou conjunto de dados específico, facilitando o acesso a versões anteriores para fins de recuperação ou auditoria.

Funcionalidade

GDGs são grupos de datasets cronologicamente relacionados. Suponha que queremos acompanhar as vendas diárias da supermercado. Nos podemos criar novos arquivos todos os dias, ou pode executar o mesmo job para produzir novas versões do GDG todos os dias. Portanto, precisamos criar um dataset modelo, chamado GDG Base, e todos os novos arquivos criados pelo sistema terão as propriedades da versão Base e criarão novos arquivos.

 AAF.C.*                                      Type  on Volume(s)                
AAA.C.ARRECA.G0001V00                          ???  VC3264                      
AAA.C.ARRECA.G0002V00                          ???  VC3364                      
AAA.C.ARRECA.G0003V00                          ???  VC3363                      
AAA.C.ARRECA.G0004V00                          ???  VC3396                      
AAA.C.ARRECA.G0005V00                          ???  VC3412                      
AAA.C.ARRECA.G0006V00                          ???  VC3469                      
AAA.C.ARRECA.G0007V00                          ???  VC3446                      
AAA.C.ARRECA.G0008V00                          ???  VC3293                      
AAA.C.ARRECA.G0009V00                          ???  VC3240                      
AAA.C.ARRECA.G0010V00                          ???  VC3555                      
AAA.C.ARRECA.G0011V00                          ???  VC2822                      
AAA.C.ARRECA.G0012V00                          ???  VC3556                      
AAA.C.ARRECA.G0013V00                          ???  VC3542                      
AAA.C.ARRECA.G0014V00                          ???  VC3561                      
AAA.C.ARRECA.G0015V00                          ???  VC3197                      
AAA.C.ARRECA.G0016V00                          ???  VC3508                      
AAA.C.ARRECA.G0017V00                          ???  VC3415                      
AAA.C.ARRECA.G0018V00                          ???  VC3528                      
AAA.C.ARRECA.G0019V00                          ???  VC3282                      
AAA.C.ARRECA.G0020V00                          ???  VC3411                      
AAA.C.ARRECA.G0021V00                          ???  VC3280                      

Criando GDG

Criando uma GDG nova no sistema;
//AADPNATB JOB (AACC,DIST),CLAUD,CLASS=S,MSGCLASS=A                            
//*UQ ALLOW                                                                    
//* -------------------------------------------------------                    
//*                CRIANDO GDG NO SISTEMA                                      
//* -------------------------------------------------------                    
//ALOCLIB EXEC PGM=IDCAMS                                                      
//SYSPRINT  DD SYSOUT=*                                                        
   DEF GDG(NAME(ADABAS.C.CLAUD.CSA) LIM(1) SCR)                                
/*

Listando GDG

Vamos listar as definições da GDG;
//AAFSNATB JOB (AACC,SCHE),CLAUDEMAR,CLASS=S,MSGCLASS=A                        
//*UQ ALLOW                                                                    
//* -------------------------------------------------------------              
//*                       LISTA AS ENTRADAS                                    
//* -------------------------------------------------------------              
//STP1     EXEC PGM=IDCAMS                                                     
//SYSPRINT DD   SYSOUT=*                                                       
//SYSIN    DD   *                                                              
   LISTCAT ENT(ADABAS.C.CLAUD.CSA) ALL                                         
/*

Observe no começo - ATTRIBUTES - LIMIT------------------1
1IDCAMS  SYSTEM SERVICES                                           TIME: 13:40:2
0                                                                               
    LISTCAT ENT(ADABAS.C.CLAUD.CSA) ALL                                         
0GDG BASE ------ ADABAS.C.CLAUD.CSA                                             
      IN-CAT --- AAB01.SUPORTE.CATALOG                                          
      HISTORY                                                                   
        DATASET-OWNER-----(NULL)     CREATION--------2023.229                   
        RELEASE----------------2     LAST ALTER------0000.000                   
      ATTRIBUTES                                                                
        LIMIT------------------1     SCRATCH          NOEMPTY                   
      ASSOCIATIONS--------(NULL)                                                
1IDCAMS  SYSTEM SERVICES                                           TIME: 13:40:2
0         THE NUMBER OF ENTRIES PROCESSED WAS:                                  
                    AIX -------------------0                                    
                    ALIAS -----------------0                                    
                    CLUSTER ---------------0                                    
                    DATA ------------------0                                    
                    GDG -------------------1                                    
                    INDEX -----------------0                                    
                    NONVSAM ---------------0                                    
                    PAGESPACE -------------0   
                    PATH ------------------0                                    
                    SPACE -----------------0                                    
                    USERCATALOG -----------0                                    
                    TAPELIBRARY -----------0                                    
                    TAPEVOLUME ------------0                                    
                    TOTAL -----------------1                                    
0         THE NUMBER OF PROTECTED ENTRIES SUPPRESSED WAS 0                      
0IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0                      
0                                                                               
0IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 0              
UQS0009 - END OF DATA SET.

Alterando GDG

Vamos alterar o limit de uma GDG que já existe - ela foi criado de 1 vamos alterar para 11
//AACCIDCM JOB (AACC,SCHE),CLAU,CLASS=C,MSGCLASS=A                      
//*UQ ALLOW                                                                     
//* ----------------------------------------------------------                  
//*                   CHANGE GDG BASE LIMIT                                     
//* ----------------------------------------------------------                  
//STEP1    EXEC PGM=IDCAMS                                                      
//SYSPRINT DD SYSOUT=*                                                          
//SYSIN DD *                                                                    
   ALTER ADABAS.C.CLAUD.CSA   LIMIT(11)                                         
/*

Alterado com sucesso;
1IDCAMS  SYSTEM SERVICES                                           TIME: 13:42:0
0                                                                               
    ALTER ADABAS.C.CLAUD.CSA   LIMIT(11)                                        
0IDC0531I ENTRY ADABAS.C.CLAUD.CSA ALTERED                                      
0IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0                      
0                                                                               
0IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 0              
UQS0009 - END OF DATA SET.

Listando - foi alterado para 11
1IDCAMS  SYSTEM SERVICES                                           TIME: 13:43:0
0                                                                               
    LISTCAT ENT(ADABAS.C.CLAUD.CSA) ALL                                         
0GDG BASE ------ ADABAS.C.CLAUD.CSA                                             
      IN-CAT --- AAB01.SUPORTE.CATALOG                                          
      HISTORY                                                                   
        DATASET-OWNER-----(NULL)     CREATION--------2023.229                   
        RELEASE----------------2     LAST ALTER------0000.000                   
      ATTRIBUTES                                                                
        LIMIT-----------------11     SCRATCH          NOEMPTY                   
      ASSOCIATIONS--------(NULL)                                                
1IDCAMS  SYSTEM SERVICES                                           TIME: 13:43:0
0         THE NUMBER OF ENTRIES PROCESSED WAS:                                  
                    AIX -------------------0                                    
                    ALIAS -----------------0                                    
                    CLUSTER ---------------0                                    
                    DATA ------------------0                                    
                    GDG -------------------1                                    
                    INDEX -----------------0                                    
                    NONVSAM ---------------0                                    
                    PAGESPACE -------------0 

Deletando GDG

Vamos deletar uma GDG do sistema;
//AAACDELS JOB (AACC,SCHE),'CLAUDEMAR',CLASS=S,MSGCLASS=A               
//*UQ ALLOW                                                                     
//* ----------------------------------------------------------                  
//*              DELETE GDG ENTRY IN A CATALOG                                  
//* ----------------------------------------------------------                  
//STP1     EXEC PGM=IDCAMS                                            
//SYSPRINT DD   SYSOUT=*                                                        
//SYSIN    DD   *                                                               
   DELETE (AAF.C.TEMP.CSA) GDG FORCE                                            
/* 

Resultado
1IDCAMS  SYSTEM SERVICES                                           TIME: 13:53:2
0                                                                               
    DELETE (ADABAS.C.CLAUD.CSA) GDG FORCE                                       
0IDC0550I ENTRY (B) ADABAS.C.CLAUD.CSA DELETED                                  
0IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0                      
0                                                                               
0IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 0              
UQS0009 - END OF DATA SET.
Leia Mais