04/02/26

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
Leia Mais

23/12/25

Guia Prático para Implementação Técnica de Segurança no IBM z/OS RACF

Você sabia que o Departamento de Defesa dos Estados Unidos (DoD) disponibiliza publicamente uma série de manuais técnicos voltados para a configuração segura de softwares, sistemas operacionais e equipamentos de infraestrutura? Esses documentos fazem parte dos STIGs (Security Technical Implementation Guides), guias técnicos desenvolvidos para estabelecer configurações de segurança extremamente rigorosas em ambientes computacionais. Na prática, eles funcionam como verdadeiros manuais de “blindagem” de sistemas, apresentando uma enorme quantidade de requisitos que devem ser avaliados para reduzir riscos e aumentar o nível de proteção. Para quem trabalha com Mainframe, segurança da informação ou administração de sistemas, o nível de detalhamento dos STIGs é particularmente interessante. Ao analisar as recomendações para ambientes IBM z/OS, é possível perceber que segurança não significa apenas instalar um firewall ou criar uma senha forte. A proteção envolve uma combinação de configurações, controles de acesso, auditoria, gerenciamento de usuários, políticas de autenticação, permissões e monitoramento. Um dos pontos que mais chama a atenção é justamente a quantidade de verificações necessárias para considerar um ambiente adequadamente configurado. Existem requisitos relacionados a senhas, contas de usuários, privilégios, acesso a arquivos e recursos, auditoria, registros de eventos, criptografia, serviços do sistema e configurações de segurança do próprio z/OS. E é aí que o STIG Viewer se torna uma ferramenta muito interessante. Em vez de simplesmente consultar documentos técnicos extensos, o STIG Viewer permite visualizar os requisitos de segurança de maneira mais organizada, transformando as recomendações em uma espécie de checklist de conformidade. Isso facilita bastante o trabalho de quem precisa analisar um ambiente, identificar configurações que precisam ser ajustadas e acompanhar o atendimento de cada requisito. Para quem trabalha com IBM z/OS, RACF, administração de sistemas ou segurança de Mainframe, esse tipo de material pode ser uma excelente fonte de aprendizado. Mesmo que você não trabalhe diretamente com ambientes do Departamento de Defesa dos EUA, os requisitos apresentados nos STIGs ajudam a compreender como uma organização de altíssimo nível trata questões relacionadas à segurança de sistemas críticos. Outro ponto interessante é que os STIGs permitem enxergar a segurança por uma perspectiva diferente. Muitas vezes pensamos em segurança apenas no nível da aplicação ou da rede, mas uma configuração aparentemente simples dentro do sistema operacional pode representar uma importante camada de proteção. Por exemplo, um requisito pode envolver políticas de senha, enquanto outro pode tratar de permissões de acesso a arquivos, privilégios administrativos, geração de logs ou auditoria de determinadas atividades. Quando esses controles são analisados em conjunto, fica evidente que a segurança de um ambiente robusto é construída por dezenas ou até centenas de pequenas configurações. No caso do IBM z/OS, isso se torna ainda mais interessante porque estamos falando de uma plataforma utilizada em ambientes críticos, onde disponibilidade, integridade, controle de acesso e rastreabilidade são requisitos fundamentais. Mesmo para quem não trabalha com Mainframe, recomendo conhecer esse material. Ele ajuda a responder uma pergunta importante: O que realmente significa configurar um sistema pensando em segurança? Os STIGs mostram que segurança não é apenas uma ferramenta, mas um processo contínuo de configuração, controle, auditoria, monitoramento e validação. Para administradores de sistemas, engenheiros de segurança, profissionais de infraestrutura, auditores e estudantes da área de segurança da informação, o material pode ser uma verdadeira aula prática de hardening. E existe algo particularmente interessante para quem trabalha com tecnologias mais tradicionais: ao estudar esses requisitos, é possível perceber que conceitos como menor privilégio, segregação de funções, auditoria, controle de acesso e rastreabilidade continuam extremamente atuais, independentemente da idade da tecnologia. Por isso, se você gosta de Mainframe, IBM z/OS, RACF, segurança ofensiva ou defensiva, hardening e auditoria, vale a pena dedicar um tempo para explorar os STIGs. Não é necessário trabalhar no Departamento de Defesa dos EUA para aprender com eles. Os documentos mostram, em detalhes, como pensar a segurança de um ambiente crítico e como transformar boas práticas de segurança em requisitos objetivos que podem ser verificados. No final, essa é talvez a maior lição dos STIGs: segurança não deve depender de suposições. Ela precisa ser configurada, documentada, auditada e constantemente verificada. E para quem trabalha com Mainframe, encontrar um material tão detalhado sobre IBM z/OS é uma excelente oportunidade para comparar as configurações do ambiente com práticas de segurança extremamente rigorosas. Vale a pena conhecer o STIG Viewer e explorar os requisitos por conta própria. Você provavelmente vai encontrar várias configurações que nunca tinha pensado em analisar.
Leia Mais

27/04/25

Aumentando a Capacidade dos Datasets do SMF

Utilizando o meu ambiente Hercules, percebi que o espaço destinado ao SMF estava muito pequeno, o que poderia impactar a coleta adequada dos registros e informações do sistema. Para evitar possíveis problemas futuros e garantir o bom funcionamento do ambiente, tomei a decisão de aumentar o tamanho dos datasets utilizados pelo SMF, ajustando sua capacidade para atender melhor às necessidades atuais.

                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
   IEE949I 11.13.57 SMF DATA SETS       FRAME LAST   F      E   SYS=ADCD        
             NAME      VOLSER SIZE(BLKS) %FULL  STATUS                          
           P-SYS1.MAN1 ZASYS1      7200    64  ACTIVE                           
           S-SYS1.MAN2 ZASYS1      1800     0  ALTERNATE                        
           S-SYS1.MAN3 ZASYS1      1800     0  ALTERNATE                        
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
  IEE612I CN=L700     DEVNUM=0700 SYS=ADCD                                      


  IEE163I MODE= RD   

Criando 3 novos datasets maior para o SMF - foi esse o JCL que foi submetido para criar esses 3 novos datasets

   Menu  Utilities  Compilers  Help                                             
 ───────────────────────────────────────────────────────────────────────────────
 BROWSE    ADCD.LIB.JCL($$SMF002) - 01.08             Line 00000000 Col 001 080
 Command ===>                                                  Scroll ===> PAGE
********************************* Top of Data **********************************
//SMF0002 JOB 'CRIANDO UM NOVO DATASET',                                        
// NOTIFY=&SYSUID,REGION=0M                                                     
//* ------------------------------------------------------------------          
//*              CRIANDO UM NOVO DATASET SMF                                    
//* ------------------------------------------------------------------          
//ALCVSAM  EXEC PGM=IDCAMS                                                      
//SYSPRINT DD SYSOUT=*                                                          
//SYSIN    DD *                                                                 
  DEFINE CLUSTER( -                                                             
        CONTROLINTERVALSIZE(4096) -                                             
        CYLINDERS(200) -                                                        
        NAME(SYS1.SMF.MAN1) -                                                   
        NONINDEXED -                                                            
        RECORDSIZE(4086,32767) -                                                
        REUSE -                                                                 
        SHAREOPTIONS(2) -                                                       
        SPANNED -                                                               
        SPEED -                                                                 
        VOLUME(ZASYS1) ) -                                                      
        DATA( -                                                                 
        NAME(SYS1.SMF.MAN1.DATA) )   
  DEFINE CLUSTER( -                                                             
        CONTROLINTERVALSIZE(4096) -                                             
        CYLINDERS(200) -                                                        
        NAME(SYS1.SMF.MAN2) -                                                   
        NONINDEXED -                                                            
        RECORDSIZE(4086,32767) -                                                
        REUSE -                                                                 
        SHAREOPTIONS(2) -                                                       
        SPANNED -                                                               
        SPEED -                                                                 
        VOLUME(ZASYS1) ) -                                                      
        DATA( -                                                                 
        NAME(SYS1.SMF.MAN2.DATA) )           
   DEFINE CLUSTER( -                                                             
        CONTROLINTERVALSIZE(4096) -                                             
        CYLINDERS(200) -                                                        
        NAME(SYS1.SMF.MAN3) -                                                   
        NONINDEXED -                                                            
        RECORDSIZE(4086,32767) -                                                
        REUSE -                                                                 
        SHAREOPTIONS(2) -                                                       
        SPANNED -                                                               
        SPEED -                                                                 
        VOLUME(ZASYS1) ) -                                                      
        DATA( -                                                                 
        NAME(SYS1.SMF.MAN3.DATA) )                                              
******************************** Bottom of Data ********************************

Explicação:

Ao definir um novo dataset de SMF, as seguintes opções precisam fazer parte do comando DEFINE:

REUSE - indica que o programa de dump pode limpar o dataset de SMF
CONTROLINTERVALSIZE - indica o tamanho do buffer SMF. Para datasets de SMF, você pode especificar qualquer valor entre 0,5 (512 bytes) e 26K (26624 bytes), com certas restrições.
SHAREOPTIONS - tem dois valores que definem o nível de SHAREOPTIONS. O valor entre regiões deve ser 2. Isso indica que o compartilhamento ocorre com a leitura e a serialização ocorre com a escrita. O valor entre sistemas pode ser o padrão.
NONINDEXED - indica que as entradas são sequenciadas por entrada.
SPANNED - indica que os registros podem abranger intervalos de controle.
SPEED - indica que o dataset não será pré-formatado pelo VSAM enquanto o IFASMFDP estiver pré-formatando. (Se SPEED não for selecionado, o VSAM e o SMF serão pré-formatados simultaneamente.)

Vamos acessar a biblitoeca PARMLIB para alterar o membro SMFPRM00

   Menu  Options  View  Utilities  Compilers  Help                              
 ────────────────────────────────────────────────────────────────────────────── 
 DSLIST - Data Sets Matching ADCD*                          0 Members processed
 Command ===>                                                  Scroll ===> PAGE
                                                                                
 Command - Enter "/" to select action                  Message           Volume 
 -------------------------------------------------------------------------------
          ADCD.DYNISPF.ISPPLIB                                           ZARES1 
          ADCD.LIB.JCL                                                   ZARES1 
          ADCD.TCPIP.DATA                                                ZASYS1 
          ADCD.Z110.CLIST                                                ZARES1 
          ADCD.Z110.DBS.ISPPLIB                                          ZARES1 
          ADCD.Z110.DBS1.ISPPLIB                                         ZARES1 
          ADCD.Z110.ISPPLIB                                              ZARES1 
          ADCD.Z110.LINKLIB                                              ZARES1 
          ADCD.Z110.LPALIB                                               ZARES1 
 B        ADCD.Z110.PARMLIB                            Browsed           ZARES1 
          ADCD.Z110.PROCLIB                                              ZARES1 
          ADCD.Z110.TCPPARMS                                             ZARES1 
          ADCD.Z110.VTAM.SOURCE                                          ZARES1 
          ADCD.Z110.VTAMLIB                                              ZARES1 
          ADCD.Z110.VTAMLST                                              ZARES1 
          ADCD.Z110.WLMIN                                                ZARES1 
          ADCD.Z110.WLMIN.BACKUP                                         ZARES1 
          ADCD.Z110.WLMIN.Z19S                                           ZARES1 
 ***************************** End of Data Set list ****************************

vamos pesquisar L SMF

   Menu  Functions  Confirm  Utilities  Help                                    
 ────────────────────────────────────────────────────────────────────────────── 
 BROWSE            ADCD.Z110.PARMLIB                         Row 00001 of 00223
 Command ===> L SMF                                            Scroll ===> PAGE
            Name     Prompt       Size   Created          Changed          ID  
 _________ $$$COIBM                 29  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ AAASMF01                  2  2008/11/06  2025/04/24 20:29:11  IBMUSER
 _________ AAASMF02                  1  2008/11/06  2025/04/24 20:20:06  IBMUSER
 _________ ADYSET00                 15  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ ADYSET01                 11  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ ADYSET02                 13  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ APFHLA                    2  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ APPCPM1A                 71  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ ASAIPCSP                 26  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ ASBIPCSP                 44  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ ASCHPM1A                 17  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ ATBIPCSP                 42  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ ATCSTRPX                 12  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ ATCSTRP1                 12  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ ATCSTRQX                 12  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ ATCSTRQ1                 12  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ AXR00                    33  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ BDTIPCSP                 34  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ BLSCECT                 642  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ BLSCECTX                 84  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ BLSCUSER                 64  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ BPXIPCSP                242  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ BPXPRMBB                149  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ BPXPRMCI                141  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ BPXPRMCS                 97  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ BPXPRMDB                171  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ BPXPRMD2                179  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ BPXPRMD8                140  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ BPXPRMD9                156  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ BPXPRM00                141  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ CEEIPCSP                160  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ CLOCK00                   7  2008/11/06  2025/04/23 16:36:18  IBMUSER
 _________ CLRPARM                   3  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ CNGRP00                   7  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ CNLENU00                 99  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ CNLJPN00                104  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ COFDLF00                 26  2008/11/06  2008/11/06 15:49:16  IBMUSER
 _________ COFIPCSP                 74  2008/11/06  2008/11/06 15:49:16  IBMUSER

Vamos editar o SMFPRM00

   Menu  Functions  Confirm  Utilities  Help                                    
 ────────────────────────────────────────────────────────────────────────────── 
 BROWSE            ADCD.Z110.PARMLIB                         Row 00212 of 00223
 Command ===>                                                  Scroll ===> PAGE
            Name     Prompt       Size   Created          Changed          ID  
 _________ SHUTDOWN                 38  2008/11/06  2025/04/22 02:15:31  IBMUSER
 E________ SMFPRM00                 23  2008/11/06  2025/04/27 11:04:24  IBMUSER
 _________ TSOKEY00                 13  2008/11/06  2008/11/06 15:49:18  IBMUSER
 _________ VATLST00                  2  2008/11/06  2008/11/06 15:49:18  IBMUSER
 _________ VTAMALL                  36  2008/11/06  2025/04/22 02:24:30  IBMUSER
 _________ VTAMAPPL                 20  2008/11/06  2025/04/22 02:24:43  IBMUSER
 _________ VTAMBB                   27  2008/11/06  2025/04/22 02:24:56  IBMUSER
 _________ VTAMCI                   26  2008/11/06  2025/04/22 02:25:05  IBMUSER
 _________ VTAMDB                   25  2008/11/06  2025/04/22 02:25:13  IBMUSER
 _________ VTAMD2                   27  2008/11/06  2025/04/22 02:25:23  IBMUSER
 _________ VTAMD8                   24  2008/11/06  2025/04/22 02:25:31  IBMUSER
 _________ VTAMD9                   25  2008/11/06  2025/04/22 02:25:40  IBMUSER
           **End**  

Temos 3 datasets antigos, vamos alterar SYS1.MAN para SYS1.SMF.MAN

   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help            
 ───────────────────────────────────────────────────────────────────────────────
 EDIT       ADCD.Z110.PARMLIB(SMFPRM00) - 01.05             Columns 00001 00072
 Command ===>                                                  Scroll ===> CSR
 ****** ***************************** Top of Data ******************************
 000001    ACTIVE                        /* ACTIVE SMF RECORDING             */ 
 000002  DSNAME(SYS1.MAN1, 
 000003         SYS1.MAN2, 
 000004         SYS1.MAN3) 
 000005  NOPROMPT                        /* DO NOT PROMPT OPERATOR           */ 
 000006  REC(PERM)                       /* TYPE 17 PERM RECORDS ONLY        */ 
 000007  MAXDORM(3000)                   /* WRITE IDLE BUFFER AFTER 30 MIN   */ 
 000008  STATUS(010000)                  /* WRITE SMF STATS AFTER 1 HOUR     */ 
 000009  JWT(0400)                       /* 522 AFTER 30 MINUTES             */ 
 000010  SID(SYS1) 
 000011  LISTDSN                         /* LIST DATA SET STATUS AT IPL      */ 
 000012  SYS(NOTYPE(14:19,62:69,118,119), 
 000013      EXITS(IEFU83,IEFU84,IEFACTRT, 
 000014                IEFUSI,IEFUJI,IEFU29),NOINTERVAL,NODETAIL) 
 000015  /* WRITE ALL EXCEPT DATA MANAGEMENT RECORDS, TAKE EXITS.            */ 
 000016  /* NOTE: JES EXITS CONTROLED BY JES , THERE IS NO                   */ 
 000017  /* DEFAULT INTERVAL RECORDS WRITTEN AND ONLY SUMMARY T32            */ 
 000018  /* RECORDS AS A DEFAULT FOR TSO.                                    */ 
 000019  SUBSYS(STC,EXITS(IEFU29,IEFU83,IEFU84,IEFUJP,IEFUSO)) 
 000020  /* WRITE RECORDS ACCORDING TO SYS VALUE, TAKE ONLY FIVE             */ 
 000021  /* EXITS, NOTE: IEFU29 EXECUTES IN THE MASTER ASID WHICH IS A       */ 
 000022  /* STC ADDRESS SPACE SO IEFU29 MUST BE ON FOR STC.                  */ 
 000023  /* USE ALL OTHER SYS PARMETERS AS A DEFAULT.                        */ 
 ****** **************************** Bottom of Data ****************************

Alterado e salvo (save)

  File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help            
───────────────────────────────────────────────────────────────────────────────
EDIT       ADCD.Z110.PARMLIB(SMFPRM00) - 01.06             Columns 00001 00072
Command ===> SAVE                                             Scroll ===> CSR
****** ***************************** Top of Data ******************************
000001    ACTIVE                        /* ACTIVE SMF RECORDING             */ 
000002  DSNAME(SYS1.SMF.MAN1, 
000003         SYS1.SMF.MAN2, 
000004         SYS1.SMF.MAN3) 
000005  NOPROMPT                        /* DO NOT PROMPT OPERATOR           */ 
000006  REC(PERM)                       /* TYPE 17 PERM RECORDS ONLY        */ 
000007  MAXDORM(3000)                   /* WRITE IDLE BUFFER AFTER 30 MIN   */ 
000008  STATUS(010000)                  /* WRITE SMF STATS AFTER 1 HOUR     */ 
000009  JWT(0400)                       /* 522 AFTER 30 MINUTES             */ 
000010  SID(SYS1) 
000011  LISTDSN                         /* LIST DATA SET STATUS AT IPL      */ 
000012  SYS(NOTYPE(14:19,62:69,118,119), 
000013      EXITS(IEFU83,IEFU84,IEFACTRT, 
000014                IEFUSI,IEFUJI,IEFU29),NOINTERVAL,NODETAIL) 
000015  /* WRITE ALL EXCEPT DATA MANAGEMENT RECORDS, TAKE EXITS.            */ 
000016  /* NOTE: JES EXITS CONTROLED BY JES , THERE IS NO                   */ 
000017  /* DEFAULT INTERVAL RECORDS WRITTEN AND ONLY SUMMARY T32            */ 
000018  /* RECORDS AS A DEFAULT FOR TSO.                                    */ 
000019  SUBSYS(STC,EXITS(IEFU29,IEFU83,IEFU84,IEFUJP,IEFUSO)) 
000020  /* WRITE RECORDS ACCORDING TO SYS VALUE, TAKE ONLY FIVE             */ 
000021  /* EXITS, NOTE: IEFU29 EXECUTES IN THE MASTER ASID WHICH IS A       */ 
000022  /* STC ADDRESS SPACE SO IEFU29 MUST BE ON FOR STC.                  */ 
000023  /* USE ALL OTHER SYS PARMETERS AS A DEFAULT.                        */ 
****** **************************** Bottom of Data ****************************

Vou dar um IPL no meu Hercules para o sistema voltar iniciar nos novos datasets

                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
  IEE612I CN=L700     DEVNUM=0700 SYS=ADCD                                      
  S SHUTALL

  IEE163I MODE= RD    

Saiu o JES2, vou dar um IPL no Hercules

     *11.21.53          *BPXI032E FORK SERVICE HAS BEEN SHUTDOWN SUCCESSFULLY.  
     *ISSUE F BPXOINIT,RESTART=FORKS TO RESTART FORK SERVICE.                   
    - 11.22.05 STC00040  IEF404I SHUTALL - ENDED - TIME=11.22.05                
      11.22.05           $HASP099 ALL AVAILABLE FUNCTIONS COMPLETE              
      11.22.07           $HASP314 INIT 1    DRAINED  ******** C=A               
      11.22.07           $HASP314 INIT 2    DRAINED  ******** C=AB              
      11.22.07           $HASP314 INIT 3    DRAINED  ******** C=ABC             
    - 11.22.07 STC00008  IEF404I INIT - ENDED - TIME=11.22.07                   
      11.22.07           $HASP314 INIT 4    DRAINED  ******** C=ABCDE           
      11.22.07           $HASP314 INIT 5    DRAINED  ******** C=ABCD            
      11.22.07           $HASP314 INIT 6    DRAINED  ******** C=ABCD            
    - 11.22.07 STC00006  IEF404I INIT - ENDED - TIME=11.22.07                   
    - 11.22.07 STC00012  IEF404I INIT - ENDED - TIME=11.22.07                   
    - 11.22.07 STC00009  IEF404I INIT - ENDED - TIME=11.22.07                   
      11.22.07           $HASP314 INIT 7    DRAINED  ******** C=ABCD            
    - 11.22.07 STC00011  IEF404I INIT - ENDED - TIME=11.22.07                   
    - 11.22.07 STC00007  IEF404I INIT - ENDED - TIME=11.22.07                   
    - 11.22.07 STC00013  IEF404I INIT - ENDED - TIME=11.22.07                   
      11.22.07           $HASP314 INIT 8    DRAINED  ******** C=ABCD            
    - 11.22.07 STC00010  IEF404I INIT - ENDED - TIME=11.22.07                   
    - 11.22.07 STC00015  IEF404I INIT - ENDED - TIME=11.22.07                   
      11.22.07           $HASP314 INIT 9    DRAINED  ******** C=ABCD            
    - 11.22.07 STC00014  IEF404I INIT - ENDED - TIME=11.22.07                   
      11.22.07           $HASP314 INIT 10   DRAINED  ******** C=ABCD            
      11.22.07           CNZ4213I SYSLOG PROCESSING HAS ENDED                   
     *11.22.07          *IEE037D LOG NOT ACTIVE                                 
    - 11.22.08           IXZ0002I CONNECTION TO JESXCF COMPONENT DISABLED,      
    -          GROUP N1       MEMBER N1$SYS1                                    
      11.22.08           $HASP9085 JES2 MONITOR ADDRESS SPACE STOPPED FOR JES2  
    - 11.22.08           IEF404I IEESYSAS - ENDED - TIME=11.22.08               
    - 11.22.08           IXZ0002I CONNECTION TO JESXCF COMPONENT DISABLED,      
    -          GROUP SYSJ2$XD MEMBER N1$SYS1$$$$$$$$$                           
      11.22.13           $HASP085 JES2 TERMINATION COMPLETE                     
    - 11.22.13           IEF404I JES2 - ENDED - TIME=11.22.13                   
  00- 11.22.16           Z EOD                                                  
      11.22.16           IEE334I HALT EOD SUCCESSFUL                            
     *11.22.16          *IEE362A SMF ENTER DUMP FOR SYS1.MAN1 ON ZASYS1         
      11.22.16           IEE360I SMF NOW RECORDING ON SYS1.MAN2 ON ZASYS1       
       TIME=11.22.16                                                            
  IEE612I CN=L700     DEVNUM=0700 SYS=ADCD                                      


  IEE163I MODE= RD  

Depois do IPL, com o sistema esta no ar, vamos observar os novos tamanhos do SMF - Perfeito

    -           D SMF                                                           
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
   IEE974I 11.24.40 SMF DATA SETS       FRAME LAST   F      E   SYS=ADCD        
             NAME                VOLSER SIZE(BLKS) %FULL  STATUS                
           P-SYS1.SMF.MAN1       ZASYS1     36000     2  ACTIVE                 
           S-SYS1.SMF.MAN2       ZASYS1     36000     0  ALTERNATE              
           S-SYS1.SMF.MAN3       ZASYS1     36000     0  ALTERNATE   
Leia Mais

19/04/25

Rodando um programa PL/L no Hercules

PL/I (alternativamente PL/1, lê-se pê-ele-um) significa Programming Language One e é uma linguagem de programação desenvolvida pela IBM em meados de 1960. A previsão da IBM era que a linguagem fosse utilizada em ciências, inteligência artificial e negócios. Por um período de tempo foi a principal linguagem ensinada na Universidade de Michigan Dearborn. Entretanto, a popularidade declinou nos anos recentes, devido à introdução de línguagens de programação mais modernas voltadas para o ambiente Mainframe.

Sua principal função é o processamento/manipulação de dados; suporta recursão e alocação dinâmica.

Por que PL/I ainda é relevante?

Multifuncionalidade: Pode ser usada tanto para aplicações comerciais quanto científicas.
Integração com o z/OS: Excelente desempenho em ambientes mainframe, com suporte nativo a arquivos VSAM, DB2, e até interfaces com CICS.
Recursos modernos: Mesmo sendo antiga, PL/I possui recursos como tratamento de exceções (ON UNDEFINEDFILE, ON ENDFILE etc.) que nem COBOL nativamente oferece da mesma forma.
Legado ativo: Muitas instituições financeiras e governamentais ainda possuem sistemas escritos em PL/I, exigindo manutenção e evolução constante.

Hello World

Esse é um exemplo de um JCL de Hello World que podemos criar

   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help            
 ───────────────────────────────────────────────────────────────────────────────
 EDIT       ADCD.LIB.JCL($$PLII) - 01.04                    Columns 00001 00072
 Command ===>                                                  Scroll ===> CSR
 ****** ***************************** Top of Data ******************************
 000001 //PL10001 JOB 'COMPILA E LOAD DE PROGRAMA PL/1', 
 000002 // NOTIFY=&SYSUID,REGION=0M 
 000003 //* ------------------------------------------------------------------ 
 000004 //*                  PROGRAMA PL/1 DE EXEMPLO 
 000005 //* ------------------------------------------------------------------ 
 000006 //STEP1 EXEC IBMZCPLG 
 000007 //PLI.STEPLIB DD DSN=IEL370.SIBMZCMP,DISP=SHR 
 000008 //SYSIN DD * 
 000009   Hello: procedure options (main); 
 000010   put skip list ('Hello World em PL/1 !'); 
 000011   end Hello; 
 000012 //* 
 ****** **************************** Bottom of Data ****************************

Rodou ok

   Display  Filter  View  Print  Options  Help                                  
 -------------------------------------------------------------------------------
 SDSF OUTPUT DISPLAY PL10001  JOB00038  DSID     2 LINE 0       COLUMNS 02- 81  
 COMMAND INPUT ===>                                            SCROLL ===> CSR
********************************* TOP OF DATA **********************************
                         J E S 2  J O B  L O G  --  S Y S T E M  S Y S 1  --  N 
                                                                                
00.59.03 JOB00038 ---- SUNDAY,    20 APR 2025 ----                              
00.59.03 JOB00038  IRR010I  USERID IBMUSER  IS ASSIGNED TO THIS JOB.            
00.59.03 JOB00038  ICH70001I IBMUSER  LAST ACCESS AT 00:53:18 ON SUNDAY, APRIL 2
00.59.03 JOB00038  $HASP373 PL10001  STARTED - INIT 1    - CLASS A - SYS SYS1   
00.59.03 JOB00038  IEF403I PL10001 - STARTED - TIME=00.59.03                    
00.59.06 JOB00038  IEF404I PL10001 - ENDED - TIME=00.59.06                      
00.59.06 JOB00038  $HASP395 PL10001  ENDED                                      
------ JES2 JOB STATISTICS ------                                               
  20 APR 2025 JOB EXECUTION DATE                                                
           12 CARDS READ                                                        
          655 SYSOUT PRINT RECORDS                                              
            0 SYSOUT PUNCH RECORDS                                              
           36 SYSOUT SPOOL KBYTES                                               
         0.05 MINUTES EXECUTION TIME                                            
        1 //PL10001 JOB 'COMPILA E LOAD DE PROGRAMA PL/1',                      
          // NOTIFY=&SYSUID,REGION=0M                                           
          //* ------------------------------------------------------------------
          //*                  PROGRAMA PL/1 DE EXEMPLO                         
          //* ------------------------------------------------------------------
          IEFC653I SUBSTITUTION JCL - 'COMPILA E LOAD DE PROGRAMA PL/1',NOTIFY=I
        2 //STEP1 EXEC IBMZCPLG                                                 
        3 XXIBMZCPLG PROC LNGPRFX='IBMZ.V3R7M0',LIBPRFX='CEE',                  
          XX             SYSLBLK=3200,PLANG=EDCPMSGE,GOPGM=GO                   
          XX*                                                                   
          XX********************************************************************
          XX* Licensed Materials - Property of IBM                              
          XX* 5655-H31                                                          
          XX* (C) Copyright IBM Corp. 1999, 2007 All Rights Reserved            
          XX*                                                                   
          XX* US Government Users Restricted Rights - Use, duplication or       
          XX* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 
          XX*                                                                   
          XX********************************************************************
          XX*                                                                   
          XX*       IBM Enterprise PL/I for z/OS                                
          XX*       Version 3 Release 7 Modification 0                          

Observe a penultima linha - Hello World em PL/1 ! - rodou ok

   Display  Filter  View  Print  Options  Help                                  
 -------------------------------------------------------------------------------
 SDSF OUTPUT DISPLAY PL10001  JOB00038  DSID   106 LINE 231     COLUMNS 02- 81  
 COMMAND INPUT ===>                                            SCROLL ===> CSR
                                                                                
 ENTRY POINT AND ALIAS SUMMARY:                                                 
                                                                                
 NAME:            ENTRY TYPE AMODE C_OFFSET CLASS NAME        STATUS            
                                                                                
 CEESTART          MAIN_EP      31 00000000 B_TEXT                              
                                                                                
                         ***** E N D  O F  R E P O R T *****                    
                                                                                
                                                                                
                                                                                
                                                                                
z/OS V1 R10 BINDER     00:59:04 SUNDAY APRIL 20, 2025                           
BATCH EMULATOR  JOB(PL10001 ) STEP(STEP1   ) PGM= IEWL      PROCEDURE(LKED    ) 
IEW2008I 0F03 PROCESSING COMPLETED.  RETURN CODE =  0.                          
                                                                                
                                                                                
                                                                                
----------------------                                                          
MESSAGE SUMMARY REPORT                                                          
----------------------                                                          
 TERMINAL MESSAGES      (SEVERITY = 16)                                         
 NONE                                                                           
                                                                                
 SEVERE MESSAGES        (SEVERITY = 12)                                         
 NONE                                                                           
                                                                                
 ERROR MESSAGES         (SEVERITY = 08)                                         
 NONE                                                                           
                                                                                
 WARNING MESSAGES       (SEVERITY = 04)                                         
 NONE                                                                           
                                                                                
 INFORMATIONAL MESSAGES (SEVERITY = 00)                                         
 2008  2278                                                                     
                                                                                
                                                                                
 **** END OF MESSAGE SUMMARY REPORT ****                                        
                                                                                
                                                                                
 Hello World em PL/1 !
 ******************************** BOTTOM OF DATA ********************************


Leia Mais

09/07/24

ADCD ZOS 2.2 ON 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.

Hercules.cnf

Esse é o arquivo que o Hercules vai ver onde estão as imagens do z/OS e as configurações para rodar o Hercules
# --------------------------------------------------------------------------------------- 
# Hercules Emulator Control file...
# Description: ipl A80 to IPL
# System Operaton: z/OS 2.2
# --------------------------------------------------------------------------------------- 

CPUSERIAL 000111 # CPU serial number
CPUMODEL 2097 # CPU model number (2097=z10)
MAINSIZE 8192 # Main storage size in megabytes 768
XPNDSIZE 0 # Expanded storage size in megabytes
CNSLPORT 3270 # TCP port number to which consoles connect
HTTPPORT 80 noauth # HTTP server
NUMCPU 4 # Number of CPUs
TZOFFSET +0000
OSTAILOR Z/OS # OS tailoring
PANRATE SLOW # Panel refresh rate
PGMPRDOS LICENSED # Allow OS/390 and Z/OS systems to run
ASN_AND_LX_REUSE ENABLE
LPARNAME ADCD
DIAG8CMD ENABLE
DEVTMAX 8
PANTITLE "Hercules z/OS 2.10 : ipl A80 to IPL"
CCKD ra=9,raq=16,rat=16,wr=8,gcparm=4
LOADPARM 0A82PR..

# --------------------------------------------------------------------------------------- 
# Diretory dasd
# --------------------------------------------------------------------------------------- 

DEFSYM DASD "/home/samsung/Documentos/ibm_zos_2_2"

# --------------------------------------------------------------------------------------- 
#       LCS Adapters local IP / z/OS IP                                              
# --------------------------------------------------------------------------------------- 

0E20.2 LCS -n 192.168.43.35 192.168.43.225

# --------------------------------------------------------------------------------------- 
# Reserved for S.O z/OS and produtos                   
# --------------------------------------------------------------------------------------- 

0A80    3390   $(DASD)/a2res1 cu=3990-6
0A81    3390   $(DASD)/a2res2 cu=3990-6
0A82    3390   $(DASD)/a2sys1 cu=3990-6
0A83    3390   $(DASD)/a2cfg1 cu=3990-6
0A84    3390   $(DASD)/a2uss1 cu=3990-6
0A85    3390   $(DASD)/a2uss2 cu=3990-6
0A86    3390   $(DASD)/a2prd1 cu=3990-6
0A87    3390   $(DASD)/a2prd2 cu=3990-6
0A88    3390   $(DASD)/a2prd3 cu=3990-6
0A89    3390   $(DASD)/sares1 cu=3990-6
0A8A    3390   $(DASD)/page01 cu=3990-6
0A8B    3390   $(DASD)/a2sys2 cu=3990-6
0A8C    3390   $(DASD)/a2blz1 cu=3990-6
0A8D    3390   $(DASD)/a2c521 cu=3990-6
0A8E    3390   $(DASD)/a2dbar cu=3990-6
0A8F    3390   $(DASD)/a2dbb1 cu=3990-6
0A90    3390   $(DASD)/a2dbb2 cu=3990-6
0A91    3390   $(DASD)/a2dis1 cu=3990-6
0A92    3390   $(DASD)/a2dis2 cu=3990-6
0A93    3390   $(DASD)/a2ime1 cu=3990-6
0A94    3390   $(DASD)/a2imu1 cu=3990-6
0A95    3390   $(DASD)/a2imu2 cu=3990-6
0A96    3390   $(DASD)/a2kan1 cu=3990-6

# --------------------------------------------------------------------------------------- 
# Backup, WORK, temp archives, Dumps, Log....                    
# --------------------------------------------------------------------------------------- 

0AB0    3390   $(DASD)/wrk000 cu=3990-6
0AB1    3390   $(DASD)/wrk001 cu=3990-6

# --------------------------------------------------------------------------------------- 
# POOL SMS                                                
# --------------------------------------------------------------------------------------- 

0AA1    3390    $(DASD)/SMSP01 cu=3990-6
0AA2    3390    $(DASD)/SMSP02 cu=3990-6
0AA3    3390    $(DASD)/SMSP03 cu=3990-6

# --------------------------------------------------------------------------------------- 
# Master (0700) and terminals 3270 (0701 ~ 7010 / 0900 ~ 902)
# --------------------------------------------------------------------------------------- 

0700    3270                            
0701    3270
0702    3270
0703    3270
0704    3270
0705    3270
0706    3270
0707    3270
0708    3270
0709    3270
0710    3270
0900    3270
0901    3270
0902    3270

Para rodar o Hercules chamando a Hercules.cnf vamos dar o comando - subiu as imagens sem erro
root@samsung:/home/samsung# hercules -f /home/samsung/Documentos/ibm_zos_2_2/hercules.cnf
Hercules Version 3.13
(c)Copyright 1999-2015 by Roger Bowler, Jan Jaeger, and others
Built on Dec  6 2020 at 14:37:47
Build information:
  Debian
  Modes: S/370 ESA/390 z/Arch
  Max CPU Engines: 8
  Using setresuid() for setting privileges
  Dynamic loading support
  Using shared libraries
  HTTP Server support
  Regular Expressions support
  Automatic Operator support
  Machine dependent assists: cmpxchg1 cmpxchg4 cmpxchg8
Running on samsung Linux-5.15.0-113-generic.#123-Ubuntu SMP Mon Jun 10 08:16:17 UTC 2024 x86_64 MP=8
HHCHD018I Loadable module directory is /usr/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
          Message Security Assist Extension 3
          Message Security Assist Extension 4
comp=-1,compparm=-1,ra=9,raq=16,rat=16,wr=8,gcint=10,gcparm=4,nostress=0,
	freepend=-1,fsync=0,trace=0,linuxnull=0
HHCCF065I Hercules: tid=7F1DE1D4A740, pid=11748, pgid=11748, priority=0
HHCHT001I HTTP listener thread started: tid=7F1DE1C23640, pid=11748
HHCHT013I Using HTTPROOT directory "/usr/share/hercules/"
HHCHT006I Waiting for HTTP requests on port 80
HHCTU002E Error opening TUN/TAP device: 192.168.43.35: No such file or directory
HHCLC073I 0E20: TAP device  opened
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2res1 cyls=10017 heads=15 tracks=150255 trklen=56832                                           
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2res2 cyls=10017 heads=15 tracks=150255 trklen=56832                                           
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2sys1 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2cfg1 cyls=10017 heads=15 tracks=150255 trklen=56832                                           HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2uss1 cyls=10017 heads=15 tracks=150255 trklen=56832                                           
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2uss2 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2prd1 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2prd2 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2prd3 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/sares1 cyls=3339 heads=15 tracks=50085 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/page01 cyls=3339 heads=15 tracks=50085 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2sys2 cyls=3339 heads=15 tracks=50085 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2blz1 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2c521 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2dbar cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2dbb1 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2dbb2 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2dis1 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2dis2 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2ime1 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2imu1 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2imu2 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2kan1 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/wrk000 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/wrk001 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/SMSP01 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/SMSP02 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/SMSP03 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCTE001I Console connection thread started: tid=7F1DE1A0B640, pid=11748
HHCTE003I Waiting for console connection on port 3270
HHCCP002I CPU0000 thread started: tid=7F1DE190A640, pid=11748, priority=15
HHCTT002I Timer thread started: tid=7F1DE1809640, pid=11748, priority=-20
HHCCP003I CPU0000 architecture mode ESA/390
HHCCP002I CPU0001 thread started: tid=7F1DE1708640, pid=11748, priority=15
HHCCP003I CPU0001 architecture mode ESA/390
HHCCP002I CPU0002 thread started: tid=7F1DE1607640, pid=11748, priority=15
HHCCP003I CPU0002 architecture mode ESA/390
HHCCP002I CPU0003 thread started: tid=7F1DE1506640, pid=11748, priority=15
HHCCP003I CPU0003 architecture mode ESA/390
HHCPN001I Control panel thread started: tid=7F1DE1D4A740, pid=11748
HHCAO001I Hercules Automatic Operator thread started;
          tid=7F1DE1203640, pri=0, pid=11748

Emulador de Telnet

Vamos abrir um emulador de telnet

IPL no Hercules

Na console do Hercules vamos dar o comando - ipl 0a80
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2ime1 cyls=10017 heads=15 tracks=150255 trklen=56832                                                                            
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2imu1 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2imu2 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/a2kan1 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/wrk000 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/wrk001 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/SMSP01 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/SMSP02 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCDA020I /home/samsung/Documentos/ibm_zos_2_2/SMSP03 cyls=10017 heads=15 tracks=150255 trklen=56832
HHCTE001I Console connection thread started: tid=7FA7AC17F640, pid=14886
HHCTE003I Waiting for console connection on port 3270                                                                                                                             
HHCCP002I CPU0000 thread started: tid=7FA59FFFC640, pid=14886, priority=15                                                                                                        
HHCTT002I Timer thread started: tid=7FA59FEFB640, pid=14886, priority=-20                                                                                                         
HHCCP003I CPU0000 architecture mode ESA/390                                                                                                                                       
HHCCP002I CPU0001 thread started: tid=7FA59FDFA640, pid=14886, priority=15                                                                                                        
HHCCP003I CPU0001 architecture mode ESA/390                                                                                                                                       
HHCCP002I CPU0002 thread started: tid=7FA59FCF9640, pid=14886, priority=15                                                                                                        
HHCCP003I CPU0002 architecture mode ESA/390                                                                                                                                       
HHCCP002I CPU0003 thread started: tid=7FA59FBF8640, pid=14886, priority=15                                                                                                        
HHCCP003I CPU0003 architecture mode ESA/390                                                                                                                                       
HHCPN001I Control panel thread started: tid=7FA7AC4BE740, pid=14886                                                                                                               
HHCAO001I Hercules Automatic Operator thread started;                                                                                                                             
          tid=7FA59F8F5640, pri=0, pid=14886                                                                                                                                      
Command ==> ipl 0a80  

Emulador de Telnet

No emulador de telnet vai aparecer a tela da console - como estamos iniciando a primeira vez vai pedir o comando 00,i
     TOTAL AVAILABLE ONLINE: 8G                                                 
       LFAREA LIMIT FOR xM, xG, OR xT      : 4505M                              
       LFAREA LIMIT FOR SUM OF 1M= AND 2G= : 3276M                              
       LFAREA LIMIT FOR 2GB PAGES FOR 2G=  : 0 (NOT SUPPORTED)                  
   IAR048I LFAREA WAS NOT SPECIFIED WHICH RESULTED IN 0 1MB PAGES AND 0 2GB     
    PAGES.                                                                      
   IEA598I TIME ZONE = W.00.00.00                                               
   CNZ2600I AUTO-REPLY POLICY ATTEMPTING TO USE AUTOR=00.                       
   CNZ2600I AUTO-REPLY POLICY ACTIVATED.                                        
   IXL011I XES HARDWARE SUPPORT IS NOT INSTALLED.  REASON: 02                   
   IXC470I SYSTEM PROD EFFECTIVE VALUES: INTERVAL=165 OPNOTIFY=168              
   DEFAULT USER INTERVAL:    165                                                
   DERIVED SPIN INTERVAL:    165                                                
   DEFAULT USER OPNOTIFY: +    3                                                
   COMPUTED FOR:  XCF INITIALIZATION                                            
   IXC414I CANNOT JOIN SYSPLEX PRODPL WHICH IS RUNNING IN MONOPLEX MODE:        
    CONFIGURATION REQUIREMENT                                                   
   IXC404I SYSTEM(S) ACTIVE OR IPLING: PROD                                     
   IXC420D REPLY I TO INITIALIZE SYSPLEX PRODPL, OR R TO REINITIALIZE XCF.      
    REPLYING I WILL IMPACT OTHER ACTIVE SYSTEMS.                                
                                                                                
                                                                                
 00,i   

Depois de dar o 00,i vai começar a carregar o sistema
    PAGES.                                                                      
   IEA598I TIME ZONE = W.00.00.00                                               
   CNZ2600I AUTO-REPLY POLICY ATTEMPTING TO USE AUTOR=00.                       
   CNZ2600I AUTO-REPLY POLICY ACTIVATED.                                        
   IXL011I XES HARDWARE SUPPORT IS NOT INSTALLED.  REASON: 02                   
   IXC470I SYSTEM PROD EFFECTIVE VALUES: INTERVAL=165 OPNOTIFY=168              
   DEFAULT USER INTERVAL:    165                                                
   DERIVED SPIN INTERVAL:    165                                                
   DEFAULT USER OPNOTIFY: +    3                                                
   COMPUTED FOR:  XCF INITIALIZATION                                            
   IXC414I CANNOT JOIN SYSPLEX PRODPL WHICH IS RUNNING IN MONOPLEX MODE:        
    CONFIGURATION REQUIREMENT                                                   
   IXC404I SYSTEM(S) ACTIVE OR IPLING: PROD                                     
 | IXC420D REPLY I TO INITIALIZE SYSPLEX PRODPL, OR R TO REINITIALIZE XCF.      
    REPLYING I WILL IMPACT OTHER ACTIVE SYSTEMS.                                
   00,I                                                                         
   IEE600I REPLY TO 00 IS;I                                                     
   IXC413I MULTISYSTEM SYSPLEX CONFIGURATION PREVENTED BY SYSTEM COMPONENT      
   ISG150I GRS=NONE IS NOT SUPPORTED WHEN RUNNING IN A MULTISYSTEM SYSPLEX.     
   IXC418I SYSTEM PROD IS NOW ACTIVE IN SYSPLEX PRODPL    

Emulador de Telnet

Depois de um tempo vou abrir outro emulador de telnet e vai mostrar essa tela - vamos dar o comando L TSO
z/OS V2R2 PUT1506 / RSU1508                        IP Address =                
                                                   VTAM Terminal = LCL701      

                       Application Developer System                            
                                                                               
                                //  OOOOOOO   SSSSS
                               //  OO    OO SS
                       zzzzzz //  OO    OO SS
                         zz  //  OO    OO SSSS
                       zz   //  OO    OO      SS
                     zz    //  OO    OO      SS
                   zzzzzz //   OOOOOOO  SSSS

                                                                               
                   System Customization - ADCD.Z22A.*                       
                                                                               

                                                                               
                                                                               
 ===> Enter "LOGON" followed by the TSO userid. Example "LOGON IBMUSER" or      
 ===> Enter L followed by the APPLID                                            
 ===> Examples: "L TSO", "L CICSTS51", "L CICSTS52", "L IMS12", "L IMS13"

l tso

Vamos logar com o usuário IBMUSER
 IKJ56700A ENTER USERID -
ibmuser

A senha é IBMUSER
 ------------------------------- TSO/E LOGON -----------------------------------
                                                                                
                                                                                
    Enter LOGON parameters below:                   RACF LOGON parameters:      
                                                                                
    Userid    ===> IBMUSER                                                      
                                                                                
    Password  ===>                                  New Password ===>           
                                                                                
    Procedure ===> IKJTSUPO                         Group Ident  ===>           
                                                                                
    Acct Nmbr ===> ACCT#                                                        
                                                                                
    Size      ===> 2096128                                                      
                                                                                
    Perform   ===>                                                              
                                                                                
    Command   ===> ISPF                                                         
                                                                                
    Enter an 'S' before each option desired below:                              
            -Nomail         -Nonotice      S -Reconnect        -OIDcard         
                                                                                
 PF1/PF13 ==> Help    PF3/PF15 ==> Logoff    PA1 ==> Attention    PA2 ==> Reshow
 You may request specific help information by entering a '?' in any entry field 

Acessando
 ICH70001I IBMUSER  LAST ACCESS AT 23:02:19 ON TUESDAY, JULY 9, 2024
 IKJ56455I IBMUSER LOGON IN PROGRESS AT 23:03:43 ON JULY 9, 2024
 IKJ56951I NO BROADCAST MESSAGES
 ***

Dentro do TSO
                           Application Menu                                     
                                                                                
 Option ===>                                                  CPU  - PROD       
                                                              User - IBMUSER    
                                                                                
   IS  ISMF     - Interactive Storage Management Facility                       
   P   PDF      - ISPF/Program Development Facility                             
   IP  IPCS     - Interactive Problem Control Facility                          
   SM  SMP/E    - SMP/E Dialogs                                                 
   SD  SDSF     - System Display and Search Facility                            
   IC  ICSF     - Integrated Cryptographic Service Facility                     
   OS  SUPPORT  - ISPF System Support Options                                   
   OU  USER     - ISPF User Options                                             
   D   DTLC     - ISPF DTL Conversion Utility                                   
   S   SORT     - DF/SORT Dialogs                                               
   HC  HCD      - Hardware Configuration Definition                             
   X   EXIT     - Terminate ISPF using list/log defaults                        
                                                                                                                                              
                                                                                
  Use UP and DOWN PF Keys or commands to scroll MENU.                           
  Enter END command to terminate.  

Parando os Aplicativos

Para desativar vamos dar o comando S SHUTALL
    - 00.16.12 STC02628  +DFHAP1211I CICPTOR1 Language Environment              
    -  initialization completed.                                                
    - 00.16.12 STC02628  +DFHWB1007 CICPTOR1 Initializing CICS Web environment. 
    - 00.16.12 STC02630  +DFHWB1008 CICPFOR1 CICS Web environment               
    -  initialization is complete.                                              
    - 00.16.13 STC02629  +DFHWB1008 CICPAOR1 CICS Web environment               
    -  initialization is complete.                                              
    - 00.16.13 STC02630  +DFHEC1006I CICPFOR1 Event processing status is        
    -  STARTED.                                                                 
    - 00.16.13 STC02630  +DFHSI1517 CICPFOR1 Control is being given to CICS.    
    - 00.16.13 STC02630  +DFHSJ0102I CICPFOR1 SJ domain initialization has      
    -  ended.                                                                   
    - 00.16.13 STC02630  +DFHDH0101I CICPFOR1 Document domain initialization    
    -  has ended.                                                               
    - 00.16.13 STC02629  +DFHEC1006I CICPAOR1 Event processing status is        
    -  STARTED.                                                                 
    - 00.16.13 STC02629  +DFHSI1517 CICPAOR1 Control is being given to CICS.    
    - 00.16.13 STC02629  +DFHSJ0102I CICPAOR1 SJ domain initialization has      
    -  ended.                                                                   
    - 00.16.13 STC02629  +DFHDH0101I CICPAOR1 Document domain initialization    
    -  has ended.                                                               
    - 00.16.14 STC02628  +DFHWB1008 CICPTOR1 CICS Web environment               
    -  initialization is complete.                                              
    - 00.16.14 STC02628  +DFHEC1006I CICPTOR1 Event processing status is        
    -  STARTED.                                                                 
    - 00.16.14 STC02628  +DFHSI1517 CICPTOR1 Control is being given to CICS.    
    - 00.16.14 STC02628  +DFHSJ0102I CICPTOR1 SJ domain initialization has      
    -  ended.                                                                   
    - 00.16.14 STC02628  +DFHDH0101I CICPTOR1 Document domain initialization    
    -  has ended.                                                               
      00.17.44           HWI008I BCPII FAILED TO CONNECT TO THE LOCAL CENTRAL   
       PROCESSOR                                                                
      COMPLEX (CPC). RC = 00000101, RSN = 00000082. BCPII INITIALIZATION        
      IS HALTED.                                                                
    - 00.17.44           IEF404I IEESYSAS - ENDED - TIME=00.17.44               
      00.17.45           HWI006I BCPII ADDRESS SPACE HAS ENDED.                 
  00- 00.18.49 STC02624  DSNL512I  -DBBG DSNLILNR TCP/IP GETADDRINFO(PROD)      
    - FAILED WITH                                                               
    -            RETURN CODE=1 AND REASON CODE=78AE1004                         
  IEE612I CN=L700     DEVNUM=0700 SYS=PROD                                      
  S SHUTALL

  IEE163I MODE= R                                                               

Depois de alguns minutos saindo os aplicativos vai aparecer a mensagem que o JES2 esta fora do ar - vamos dar o comando Z EOD
     * SUCCESSFULLY                                                             
    - 00.25.09 STC02634  VTAMAP10I Issuing "$PJES2".                            
    - 00.25.09 STC02634  VTAMAP95I 059 record(s) read.                          
    - 00.25.09 STC02634  VTAMAP96I 000 record(s) contained errors.              
    - 00.25.09 STC02634  VTAMAP97I 014 internal command(s) executed.            
    - 00.25.09 STC02634  VTAMAP98I 032 system command(s) issued.                
    - 00.25.09 STC02634  VTAMAP99I Execution completed.                         
    - 00.25.09 STC02634  IEF404I SHUTALL - ENDED - TIME=00.25.09                
      00.25.09           $HASP099 ALL AVAILABLE FUNCTIONS COMPLETE              
      00.25.10           $HASP314 INIT 1    DRAINED  ******** C=A               
      00.25.10           $HASP314 INIT 2    DRAINED  ******** C=AB              
      00.25.10           $HASP314 INIT 3    DRAINED  ******** C=ABC             
      00.25.10           $HASP314 INIT 4    DRAINED  ******** C=ABCDE           
      00.25.10           $HASP314 INIT 5    DRAINED  ******** C=ABCD            
      00.25.10           $HASP314 INIT 6    DRAINED  ******** C=ABCD            
    - 00.25.10 STC02593  IEF404I INIT - ENDED - TIME=00.25.10                   
      00.25.10           $HASP314 INIT 7    DRAINED  ******** C=ABCD            
    - 00.25.10 STC02600  IEF404I INIT - ENDED - TIME=00.25.10                   
      00.25.10           $HASP314 INIT 8    DRAINED  ******** C=ABCD            
    - 00.25.10 STC02595  IEF404I INIT - ENDED - TIME=00.25.10                   
      00.25.10           $HASP314 INIT 9    DRAINED  ******** C=ABCD            
    - 00.25.10 STC02599  IEF404I INIT - ENDED - TIME=00.25.10                   
    - 00.25.10 STC02594  IEF404I INIT - ENDED - TIME=00.25.10                   
      00.25.10           $HASP314 INIT 10   DRAINED  ******** C=ABCD            
    - 00.25.10 STC02596  IEF404I INIT - ENDED - TIME=00.25.10                   
    - 00.25.10 STC02597  IEF404I INIT - ENDED - TIME=00.25.10                   
    - 00.25.10 STC02601  IEF404I INIT - ENDED - TIME=00.25.10                   
    - 00.25.10 STC02598  IEF404I INIT - ENDED - TIME=00.25.10                   
    - 00.25.10 STC02602  IEF404I INIT - ENDED - TIME=00.25.10                   
      00.25.11           CNZ4213I SYSLOG PROCESSING HAS ENDED                   
     *00.25.11          *IEE037D LOG NOT ACTIVE                                 
    - 00.25.12           IXZ0002I CONNECTION TO JESXCF COMPONENT DISABLED,      
    -          GROUP PROD     MEMBER PROD$PROD                                  
      00.25.12           $HASP9085 JES2 MONITOR ADDRESS SPACE STOPPED FOR JES2  
    - 00.25.12           IEF404I IEESYSAS - ENDED - TIME=00.25.12               
    - 00.25.12           IXZ0002I CONNECTION TO JESXCF COMPONENT DISABLED,      
    -          GROUP SYSJ2$XD MEMBER PROD$PROD$$$$$$$                           
      00.25.17           $HASP085 JES2 TERMINATION COMPLETE                     
  00- 00.25.18           IEF404I JES2 - ENDED - TIME=00.25.18                   
  IEE612I CN=L700     DEVNUM=0700 SYS=PROD                                      
  Z EOD

  IEE163I MODE= R                                                               

Vamos dar o comando QUIESCE
    - 00.25.09 STC02634  VTAMAP99I Execution completed.                         
    - 00.25.09 STC02634  IEF404I SHUTALL - ENDED - TIME=00.25.09                
      00.25.09           $HASP099 ALL AVAILABLE FUNCTIONS COMPLETE              
      00.25.10           $HASP314 INIT 1    DRAINED  ******** C=A               
      00.25.10           $HASP314 INIT 2    DRAINED  ******** C=AB              
      00.25.10           $HASP314 INIT 3    DRAINED  ******** C=ABC             
      00.25.10           $HASP314 INIT 4    DRAINED  ******** C=ABCDE           
      00.25.10           $HASP314 INIT 5    DRAINED  ******** C=ABCD            
      00.25.10           $HASP314 INIT 6    DRAINED  ******** C=ABCD            
    - 00.25.10 STC02593  IEF404I INIT - ENDED - TIME=00.25.10                   
      00.25.10           $HASP314 INIT 7    DRAINED  ******** C=ABCD            
    - 00.25.10 STC02600  IEF404I INIT - ENDED - TIME=00.25.10                   
      00.25.10           $HASP314 INIT 8    DRAINED  ******** C=ABCD            
    - 00.25.10 STC02595  IEF404I INIT - ENDED - TIME=00.25.10                   
      00.25.10           $HASP314 INIT 9    DRAINED  ******** C=ABCD            
    - 00.25.10 STC02599  IEF404I INIT - ENDED - TIME=00.25.10                   
    - 00.25.10 STC02594  IEF404I INIT - ENDED - TIME=00.25.10                   
      00.25.10           $HASP314 INIT 10   DRAINED  ******** C=ABCD            
    - 00.25.10 STC02596  IEF404I INIT - ENDED - TIME=00.25.10                   
    - 00.25.10 STC02597  IEF404I INIT - ENDED - TIME=00.25.10                   
    - 00.25.10 STC02601  IEF404I INIT - ENDED - TIME=00.25.10                   
    - 00.25.10 STC02598  IEF404I INIT - ENDED - TIME=00.25.10                   
    - 00.25.10 STC02602  IEF404I INIT - ENDED - TIME=00.25.10                   
      00.25.11           CNZ4213I SYSLOG PROCESSING HAS ENDED                   
     *00.25.11          *IEE037D LOG NOT ACTIVE                                 
    - 00.25.12           IXZ0002I CONNECTION TO JESXCF COMPONENT DISABLED,      
    -          GROUP PROD     MEMBER PROD$PROD                                  
      00.25.12           $HASP9085 JES2 MONITOR ADDRESS SPACE STOPPED FOR JES2  
    - 00.25.12           IEF404I IEESYSAS - ENDED - TIME=00.25.12               
    - 00.25.12           IXZ0002I CONNECTION TO JESXCF COMPONENT DISABLED,      
    -          GROUP SYSJ2$XD MEMBER PROD$PROD$$$$$$$                           
      00.25.17           $HASP085 JES2 TERMINATION COMPLETE                     
    - 00.25.18           IEF404I JES2 - ENDED - TIME=00.25.18                   
  00- 00.31.17           Z EOD                                                  
      00.31.18           IEE334I HALT EOD SUCCESSFUL                            
     *00.31.18          *IEE362A SMF ENTER DUMP FOR SYS1.MAN1 ON WRK000         
      00.31.18           IEE360I SMF NOW RECORDING ON SYS1.MAN2 ON WRK000       
       TIME=00.31.18                                                            
     *00.31.18          *IEE985A SMF IS PROCESSING ITS LAST AVAILABLE DATASET   
  IEE612I CN=L700     DEVNUM=0700 SYS=PROD                                      
  QUIESCE

  IEE163I MODE= R                                                               

Na console do Hercules de o comando exit
HHCCF047I Subchannel 0:001D detached
HHCCF047I Subchannel 0:001E detached
HHCCF047I Subchannel 0:001F detached
HHCCF047I Subchannel 0:0020 detached
HHCCF047I Subchannel 0:0021 detached
HHCCF047I Subchannel 0:0022 detached
HHCCF047I Subchannel 0:0023 detached
HHCCF047I Subchannel 0:0024 detached
HHCCF047I Subchannel 0:0025 detached
HHCCF047I Subchannel 0:0026 detached
HHCCF047I Subchannel 0:0027 detached
HHCCF047I Subchannel 0:0028 detached
HHCCF047I Subchannel 0:0029 detached
HHCCF047I Subchannel 0:002A detached
HHCCF047I Subchannel 0:002B detached
HHCIN902I Configuration release complete
HHCIN903I Calling termination routines
HHCHD900I Begin shutdown sequence
HHCHD901I Calling panel_cleanup
HHCTE004I Console connection thread terminated
HHCHD902I logger_term complete
HHCHD909I Shutdown sequence complete
HHCIN904I All termination routines complete
HHCIN909I Hercules shutdown complete
HHCIN099I Hercules terminated
HHCHD900I Begin shutdown sequence
HHCHD909I Shutdown sequence complete
root@samsung:/home/samsung# 
Leia Mais

06/06/24

Ativando TCP/IP no z/OS no Hercules no Windows

Introdução

O Hercules oferece seu próprio servidor Telnet, para que possamos ter sessões de TSO e console usando o TCP/IP fornecido pelo próprio Hercules, mas ele possui diversas limitações, e a primeira delas é basicamente que os endereços de sessão são endereços definidos no IODF. (700 o console mestre, 701 sessão TSO, 900, 901, etc.), e dependem inteiramente de essas sessões serem definidas no arquivo HERCULES.CNF.

A outra limitação é que para z/OS essas sessões são sessões diretas não-SNA, assim como seriam definidas em um OSA-ICC, ou em unidades de controle de terminal 2074, ou no antigo IBM 3174 que se conectava via coaxial a cada terminal, e obviamente, cada sessão possui um endereço de HARDWARE para o sistema.

Mas se quisermos ter um pool de terminais que se conectem via TCP/IP, usando um mainframe OSA real, devemos habilitar a pilha TCP/IP dentro do z/OS, definir um IP ou VIPA para o z/OS, etc. , e claro, esses terminais são mais flexíveis de configurar do que os tradicionais não-SNA, então neste documento explicarei como criar do zero um dispositivo que o Hercules emulará como um canal OSA-CTC e suas definições subsequentes em z/SO.

A teoria da operação está muito bem resumida neste diagrama:
+-----------------------------------------------------------------------------------+
|                                                                                   |
|                          E Q U I P E   DO   W I N D O W S                         |
|                                                                                   |
|                                                                                   |
| +-----------------+       00-00-5E-A8-00-04                                       |
| |    Hercules     |     +--------------------+                                    |
| | --------------  |     |        ADAPTADOR   |                 +------------------+
| |           Z/OS  |     |        "virtual"   |   FishPack dll  |         WinPCap  |
| |         TCP/IP  |     |         HERCULES   | <-------------> |     dispositivo  |   (para outros equipamentos,
| | --------------  |     |                    |                 |          driver  |     pós, internet, etc)
| |           CTCA  |     | (192.168.254.2544) |                 + - - - - - - - - -+
| |(192.168.254.254)|     +-----+--------------+                 |       Adaptador  |        +-------------------+
| +------+----------+           |                                |            REAL  +------> |   192.168.254.1   |
|        |                      |       +----------------------> |         Windows  |  LAN   |    Gateway        |
|        +----------------------+       |     Winsock dll        | 192.168.254.118  |        +-------------------+
|           (dll TunTap32)              |                        +------------------+          00-02-48-8B-8D-60
|                                       |                         00-80-B3-E1-DF-69 |
|                             +---------V-------+                                   |
|                           +-|                 |                                   |
|                         +-| | (Aplicativos    |                                   |
|                         | | |  Windows)       |                                   |
|                         | | |                 |                                   |
|                         | | +-----------------+                                   |
|                         | +-----------------+                                     |
|                         +-----------------+                                       |
|                                                                                   |
+-----------------------------------------------------------------------------------+


1.1 Modos de Operação do Terminal

Nosso PC possui o IP 192.168.254.118. A ideia é que o z/OS tenha o IP 192.168.254.254, e conseguimos isso criando uma placa de rede "virtual" que conecte os dois computadores. Para isso será necessário instalar uma série de programas e bibliotecas no Windows para criar a referida interface. Depois que esta instalação for concluída, a interface será criada no z/OS e o TCP/IP do z/OS será configurado posteriormente para que saia com o IP correto.

Portanto, temos vários passos a realizar, e que veremos neste documento.


2 Definindo nosso OSA-CTC no HCD

Uma vez dentro do nosso Hércules, e com as sessões TSO abertas, dentro do ISPF existe uma opção de menu chamada M Mais e ao entrar nos levará a outro menu. A opção 3 nos levará ao HCD (diálogo de configuração de hardware), onde podemos ajustar a configuração de hardware do z/OS.

No nosso caso específico, vamos definir um dispositivo CTC que possui endereços de 2000 a 2001 (o CTC necessita de 2 endereços, um para leitura e outro para escrita).

Seguiremos os seguintes passos:

1 - Iremos ao menu 1 Definir, e a partir daí, à opção 4 (Unidades de Controle).
Fig. 1: Caixa de diálogo de configuração de hardware

2: Definição de configuração

Fig. 2 - Se pressionarmos PF11 (Adicionar), aparecerá uma caixa de diálogo na qual nos pede para criar um arquivo temporário de definição de hardware, então o criamos e informaremos em qual disco salvá-lo –ZASYS1 no nosso caso-.
Fig. 3: Criação do arquivo de definição
Fig. 4: Criação da Unidade de Controle - Criaremos a central com endereço 2000 e diremos que é um CTC (Channel To Channel), e iremos atribuí-la à nossa configuração atual
Fig. 5: Atribuição da Unidade de Controle ao nosso processador
Fig. 6: Unidade de controle criada - Se colocarmos um “/” podemos acessar suas opções, entre outras para trabalhar com seus dispositivos, portanto escolheremos esta opção para criar os dois dispositivos necessários, 2000 e 2001.
Fig. 7: Trabalhando com dispositivos
Fig . 8: Lista de dispositivos - Se pressionarmos a tecla PF11 podemos somar os dois dispositivos, com o endereço 2000, o número de dispositivos diremos que é 2 e do tipo CTC.
Fig. 9: Definição dos dois dispositivos.
Figura 10: Conexão com z/OS - E vamos conectá-los ao z/OS para definir seu comportamento e se eles possuem nomes esotéricos – no nosso caso, o CTC não possui nomes esotéricos de nenhum tipo.
Fig. 11: Seleção de conexão para z/OS
Fig. 12: Valores padrão de conexão
Fig. 13: Atribuição esotérica (não possui)
Fig. 14: Dispositivo criado - 6.- Neste ponto criaremos um novo IODF refletindo a nova configuração, selecionando a opção 2 Ativar ou processar dados de configuração e a seguir 1 Construir arquivo de definição de E/S de produção
Fig. 15: Ativar configurações
Figura 16: Criamos o IODF - 7.- Escolheremos SYS1.IODF02 como nome , já que o que iniciamos foi SYS1.IODF01 e esse é o IODF atual que não temos interesse em mexer.
Figura 17: Novo IODF

Uma vez criado SYS1.IODF02, criaremos um NOVO membro em SYS1.IPLPARM , para iniciá-lo na próxima vez. Fazemos desta forma caso haja erros de IPL, desta forma podemos retornar ao IODF anterior sem maiores problemas. Para isso, copiaremos o membro atual, LOADCS e o chamaremos de LOADTC (TCP de TCP/IP) e terá o seguinte conteúdo:

IODF 02 SYS1
SYSCAT ZASYS1113CCATALOG.Z110.MASTER
SYSPARM CS
IEASYM 00
PARMLIB USER.PARMLIB ZASYS1
PARMLIB ADCD.Z110.PARMLIB ZARES1
PARMLIB SYS1.PARMLIB ZARES1
NUCLEUS 1
SYSPLEX ADCDPL

O sistema continuará inicializando em CS (Cold Start) mas teremos que alterar o LOADPARM do Hercules para 0A82TCM1 , ao invés do atual, que é 0A82CSM1

1.3 Configurando TCP/IP em nosso z/OS

Os passos a seguir nos ajudarão a configurar corretamente o TCP/IP de nossa instalação.

Nesse sentido, no início do documento deixamos claro que o endereço do z/OS será 192.168.254.254 e que, obviamente, deve ser diferente do do nosso PC (192.168.254.118), já que o z/OS é Ele se comportará como se fosse uma máquina virtual dentro do nosso PC. Com isso em mente, a partir do ISPF navegaremos pelos membros da configuração TCP/IP e realizaremos os seguintes passos:

1.- No z/OS versão 1.10, os membros da configuração TCP/IP residem em um conjunto de dados particionado chamado ADCD.Z110.TCPARMS. Eu vi isso porque o processo que inicia o TCP/IP no z/OS está no PROCLIB e é chamado TCPIP. Se virmos o seu conteúdo, verifica-se que as configurações apontam para esse conjunto de dados, portanto não há mais nada: Vemos que os membros a “retocar” são PROF1 e TCPDATA. Então nós os retocamos, editando esses membros.
Fig. 18: Membro TCPIP do PROCLIB

2.- Dentro de PROF1, na parte DEVICE, vamos comentar todos os que existem (colocando um ; na frente da coluna 1) e vamos definir o dispositivo que o sistema irá utilizar. Nos pontos anteriores vimos que o dispositivo foi definido no endereço 2000, portanto editaremos o seguinte:

DEVICE CTCA1 CTC 2000
LINK CTC1 CTC 1 CTCA1

Abaixo iremos para a área HOME e comentaremos tudo o que existe, e adicionaremos esta linha:

HOME

 192.168.254.254 CTC1 

4.- Na área GATEWAY editaremos as rotas para que encontre nosso gateway e tenhamos comunicação externa:
 
GATEWAY
;
; Direct Routes - Routes that are directly connected to my interfaces.
;
; Network First Hop Link Name Packet Size Subnet Mask Subnet Value

; 192.168.252 = OSDL 1500 0
 192.168.254 = CTC1 576 0
; 130.50 = TR1 2000 0.0.255.0 0.0.10.0
; 193.5.2 = ETH1 1500 0
; 9 = FDDI1 4000 0.255.255.0 0.67.43.0
; 193.7.2.2 = SNA1 2000 HOST 

defaultnet 192.168.254.254 CTC1 576 0

Finalmente, na área inferior, está a parte START. Portanto, comentaremos todo o resto e inseriremos a seguinte linha:
 
START CTCA1 

Isso iniciará o driver CTCA1 quando o TCP/IP for iniciado.

Se abrirmos o membro TCPDATA , devemos nos preocupar apenas com o HOSTNAME , que por enquanto deixaremos como está (ADCD).

Com esta edição, podemos fechar o z/OS e o Hercules.

1.4 Configuração OSA-CTC no Hercules

Para que o Hercules, e portanto o z/OS, inicialize nosso novo dispositivo CTC com endereço 2000, devemos adicioná-lo à configuração do Hercules. Portanto, editaremos o arquivo HERCULES.CNF e adicionaremos a seguinte linha:
 
2000-2001 CTCI 192.168.254.254 192.168.254.118

Sendo, como já explicamos, 192.168.254.254 é o IP que o z/OS irá levar e 192.168.254.118 é o IP da nossa máquina. Desta forma o CTC saberá para onde direcionar o tráfego.

NOTA: Lembremos também de alterar o valor de LOADPARM para 0A82TCM1 , caso contrário nosso IODF com a nova configuração não entrará em ação.

1.5 Instalação das bibliotecas Windows FISHPACK e WinPcap

Para criar o driver de rede virtual específico, usaremos uma ferramenta chamada WinPcap. Para isso, iremos ao site http://www.winpcap.org e baixaremos a ferramenta:
Figura 19: Download do WinPcap
Depois de baixado, procederemos à instalação da ferramenta, iniciando o assistente.
Fig. 20: Assistente de instalação do WinPcap
Fig. 21: Bem-vindo ao assistente
Fig. 22: Contrato de licença
Fig. 23: Executaremos o driver na inicialização do Windows
Fig. 24: Instalação concluída

Com este simples passo, agora temos o driver de rede virtual no Windows.

A próxima coisa agora é instalar as bibliotecas Fish DLL. Para fazer isso, vamos ao site http://www.softdevlabs.com/Hercules/hercgui-index.html e baixamos dois ZIPs: O FishLib (somente executáveis), que pode ser baixado de http://www.softdevlabs. com/Hercules/FishLib-2.7.1.564-bin.zip
Fig, 25: Download do FishLib
E então o CTCI-W32, que está em http://www.softdevlabs.com/Hercules/ctci-w32-index.html e baixado de http://www.softdevlabs.com/Hercules/CTCI-W32_3.2.1 . 160_bin.zip
Figura 26: Download do CTCI-W32
Depois de baixado, descompactaremos a pasta BIN de ambos os ZIPs na MESMA PASTA que o Hercules está instalado, ou seja, em C:Program FilesHerculesHercules 3.07 (32 Bit). Você também pode descompactar em outro lugar e adicionar um PATH do Windows, mas esta é a opção mais simples e menos problemática.

NOTA: Se nossa instalação for de 64 bits, devemos descompactar a pasta x64.

1.6 Inicialização final do Hercules e z/OS

Neste momento, devemos ter certeza de que o Hercules pegou os drivers e DLLs do FISH, então assim que iniciarmos o Hercules, devemos ver as seguintes linhas quando ele detectar o carregamento do CTCI no endereço 2000:

D:\MAINFRAME\HERCULES\TunTap32.dll version 3.2.1.160 initiated
HHCCT073I 1400: TUN device tun0 opened

Se parecer que o dispositivo tun0 está aberto, significa que o WinPcap já está funcionando. Portanto, neste ponto podemos IPL Hercules, seguindo o procedimento usual.

Depois que tudo estiver iniciado, se fizermos um PING do nosso PC para o endereço do nosso z/OS (192.168.254.254), e ele responder, então tudo funciona, parabéns!!!
Figura 27: Ping bem-sucedido para z/OS

Portanto, e como toque final, definiremos uma nova sessão em nosso emulador, para a qual configuraremos o IP do z/OS

Fig. 28: Configuração IP do emulador 3270

Fig. 29: Entrada no TSO via TCP/IP –número de sessão SC0TCP01-
De qualquer forma, espero ter explicado bem. Neste exato momento, temos 2 sistemas IP em execução: o próprio Hercules - sessões locais VTAM - e o próprio z/OS - sessões IP -. Portanto, neste momento o z/OS é apenas mais uma máquina em nossa rede e, portanto, podemos. configurar todos os serviços que desejamos no futuro (DB2, CICS-Sockets, FTP, WAS, MQ, etc.).

Até mais veja!! Retirado
Leia Mais