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