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