Translate

terça-feira, 20 de fevereiro de 2007

O que é RACF?

 

Bellacosa Mainframe o que é RACF


O que é RACF?

RACF significa:

Resource Access Control Facility

É o principal sistema de segurança do ambiente IBM Mainframe desenvolvido pela IBM.

O RACF controla:

  • usuários;

  • senhas;

  • grupos;

  • datasets;

  • transações CICS;

  • recursos do sistema;

  • comandos operacionais;

  • aplicações.

Em resumo:

RACF é o "porteiro" do Mainframe.


Definição Simples

Sempre que alguém tenta acessar:

TSO
CICS
IMS
DB2
Dataset
JES2
Console

o RACF verifica:

Quem é você?
O que pode fazer?
Você tem autorização?

Se a resposta for não:

ACESSO NEGADO

Analogia Simples

Imagine um prédio corporativo.

O RACF seria:

  • recepção;

  • crachá;

  • catraca;

  • segurança.

Sem autorização ninguém entra.


Arquitetura Simplificada

Usuário
    ↓
Login
    ↓
RACF
    ↓
Validação
    ↓
Sistema

O que o RACF protege?

Usuários

USERID

Datasets

BANCO.CLIENTES

Transações CICS

SALD
PAGT
PIX1

Planos DB2

PLAN
PACKAGE

Comandos Operacionais

CANCEL
START
STOP

Conceitos Fundamentais

USER

Usuário do sistema.

Exemplo:

VBELLA01

GROUP

Grupo de usuários.

Exemplo:

DESENV
OPERACAO
SEGURANCA

RESOURCE

Recurso protegido.

Exemplo:

DATASET
CICS
DB2
JES

Estrutura RACF

GROUP
   ↓
USER
   ↓
PERMISSÕES

Exemplo

GRUPO: DESENV

USUÁRIO:
JOAO
MARIA
CARLOS

Classe de Recursos

O RACF organiza recursos em classes.


DATASET

Protege arquivos.

DATASET

CICS

Protege transações.

TCICSTRN

JES

Protege Jobs.

JESSPOOL

OPERCMDS

Protege comandos.

OPERCMDS

Como Funciona?

Usuário tenta acessar:

BANCO.CLIENTES

RACF verifica:

Existe usuário?
      ↓
Possui permissão?
      ↓
Liberar ou negar

Níveis de Permissão

NONE

Sem acesso.


READ

Somente leitura.


UPDATE

Alteração.


CONTROL

Controle avançado.


ALTER

Controle total.


Exemplo

DATASET

BANCO.CLIENTES

READ

Pode apenas consultar.


Comandos RACF Mais Conhecidos

ADDUSER

Criar usuário.

ADDUSER JOAO

ALTUSER

Alterar usuário.

ALTUSER JOAO

DELUSER

Excluir usuário.

DELUSER JOAO

ADDGROUP

Criar grupo.

ADDGROUP DESENV

CONNECT

Associar usuário ao grupo.

CONNECT JOAO
GROUP(DESENV)

LISTUSER

Consultar usuário.

LISTUSER JOAO

Perfil de Dataset

Exemplo:

BANCO.**

Protege todos os datasets:

BANCO.CLIENTES
BANCO.CONTAS
BANCO.EXTRATOS

Máscaras RACF

*

Um nível.

BANCO.*

**

Todos os níveis.

BANCO.**

Exemplo

BANCO.CLIENTES
BANCO.CLIENTES.TESTE
BANCO.CLIENTES.HIST

RACF e TSO

Ao entrar no TSO:

LOGON

o RACF valida:

  • usuário;

  • senha;

  • grupo;

  • privilégios.


RACF e CICS

Quando uma transação é executada:

SALD

RACF verifica:

Usuário autorizado?

RACF e DB2

Controla:

  • tabelas;

  • packages;

  • plans;

  • comandos administrativos.


RACF e JES2

Controla:

  • SUBMIT;

  • CANCEL;

  • HOLD;

  • OUTPUT.


Auditoria

O RACF registra eventos.


Exemplos

Login
Logoff
Falha senha
Tentativa acesso
Alteração perfil

SMF

As auditorias normalmente são gravadas em:

SMF

(System Management Facility)


Multifactor Authentication

Versões modernas suportam:

  • Token

  • Certificado Digital

  • MFA

  • OTP


Comandos de Consulta

LISTUSER

LISTUSER JOAO

SEARCH

SEARCH CLASS(DATASET)

RLIST

RLIST DATASET

Curiosidades

1. O RACF existe desde 1976

2. É um dos sistemas de segurança mais confiáveis do mundo

3. Protege bilhões de transações diariamente

4. Continua evoluindo com suporte a MFA e certificados digitais

5. É amplamente utilizado por bancos e governos


RACF x ACF2 x Top Secret

ProdutoFabricante
RACFIBM
ACF2Broadcom
Top SecretBroadcom

Todos possuem funções semelhantes.


Resumo Rápido

ConceitoFunção
RACFSegurança Mainframe
USERUsuário
GROUPGrupo
RESOURCERecurso protegido
DATASETArquivo
READLeitura
UPDATEAlteração
ALTERControle total
ADDUSERCria usuário
LISTUSERConsulta usuário
SMFAuditoria
MFAAutenticação forte

Conclusão

O RACF (Resource Access Control Facility) é o principal sistema de segurança do Mainframe IBM Z. Ele controla autenticação, autorização e auditoria de usuários, protegendo datasets, aplicações CICS, bancos DB2, jobs JES2 e recursos críticos do sistema, garantindo que apenas pessoas autorizadas tenham acesso aos dados corporativos.


 


segunda-feira, 19 de fevereiro de 2007

O que é Database IMS em Mainframe?

 

Bellacosa Mainframe o que é database IMS

O que é IMS em Mainframe?

IMS significa:

Information Management System

É um dos softwares mais importantes da história da IBM e um dos pilares do ambiente Mainframe.

Criado em 1968 para apoiar o programa Apollo da NASA, o IMS continua em produção em milhares de empresas ao redor do mundo.


Definição Simples

O IMS é uma plataforma que fornece:

✅ Banco de Dados (IMS DB)

✅ Processamento de Transações (IMS TM)

Em outras palavras:

IMS = Banco de Dados + Monitor Transacional

História Curiosa

A IBM desenvolveu o IMS para ajudar a NASA a controlar milhões de componentes do foguete Saturno V usado nas missões Apollo.

Por isso, o IMS é frequentemente chamado de:

O banco de dados que ajudou a levar o homem à Lua


Componentes Principais

IMS DB

Banco de dados hierárquico.


IMS TM

Transaction Manager.

Responsável pelo processamento online.


Arquitetura Simplificada

Usuário
    ↓
IMS TM
    ↓
Programa COBOL
    ↓
IMS DB
    ↓
Resposta

O que é IMS DB?

É um banco de dados hierárquico.

Diferente do DB2, que é relacional.


Exemplo DB2

Tabela CLIENTES

IDNOME
1JOÃO
2MARIA

Exemplo IMS

EMPRESA
   │
   ├── CLIENTE
   │      │
   │      ├── CONTA
   │      │      │
   │      │      ├── MOVIMENTO
   │      │      ├── MOVIMENTO
   │
   └── CLIENTE

Conceito de Segmento

No IMS os registros são chamados de:

Segmentos


Exemplo

CLIENTE

Segmento Pai


CONTA

Segmento Filho


MOVIMENTO

Segmento Neto


Estrutura Hierárquica

CLIENTE
   ↓
CONTA
   ↓
MOVIMENTO

O que é DL/I?

Data Language I.

É a linguagem utilizada para acessar bancos IMS.

Equivale ao SQL do DB2.


Comandos DL/I

GU

Get Unique

Busca um segmento específico.


GN

Get Next

Busca próximo segmento.


GNP

Get Next Within Parent

Busca próximo filho.


ISRT

Insert

Inclui segmento.


REPL

Replace

Atualiza segmento.


DLET

Delete

Remove segmento.


Exemplo DL/I

CALL 'CBLTDLI'

USING
      GU
      PCB
      AREA
      SSA.

O que é PCB?

Program Communication Block.

Define como o programa acessa o banco.


O que é PSB?

Program Specification Block.

Define:

  • bancos acessados;

  • permissões;

  • PCBs.


O que é DBD?

Database Description.

Descreve:

  • segmentos;

  • relacionamentos;

  • estrutura física.


Estrutura IMS DB

DBD
 ↓
PSB
 ↓
PCB
 ↓
Programa COBOL

O que é IMS TM?

Transaction Manager.

Funciona de forma semelhante ao CICS.


Responsabilidades

  • receber transações;

  • controlar usuários;

  • chamar programas;

  • gerenciar filas;

  • garantir integridade.


Fluxo Online

Terminal
   ↓
IMS TM
   ↓
Programa COBOL
   ↓
IMS DB
   ↓
Resposta

Exemplo de Transação

Usuário digita:

CONS

IMS executa:

CONS
  ↓
Programa COBOL
  ↓
Consulta IMS
  ↓
Resposta

IMS x CICS

IMS TMCICS
IBMIBM
TransacionalTransacional
Muito usado em bancosMuito usado em bancos
Integração IMS DBIntegração DB2
Altíssimo desempenhoAltíssimo desempenho

IMS x DB2

IMS

Hierárquico

CLIENTE
 ↓
CONTA
 ↓
MOVIMENTO

DB2

Relacional

CLIENTES
CONTAS
MOVIMENTOS

Relacionadas por chaves.


Linguagens Utilizadas

  • COBOL

  • PL/I

  • Assembler

  • Java


IMS e COBOL

Combinação clássica.


Exemplo

CALL 'CBLTDLI'

Praticamente todo programa IMS utiliza esse comando.


Vantagens do IMS

✅ Altíssima performance

✅ Excelente escalabilidade

✅ Segurança

✅ Baixo consumo de recursos

✅ Confiabilidade extrema


Onde é Utilizado?

  • Bancos

  • Cartões

  • Seguradoras

  • Governo

  • Telecomunicações

  • Companhias aéreas


Curiosidades

1. O IMS foi criado para o Projeto Apollo

2. Continua sendo utilizado mais de 50 anos depois

3. Alguns dos maiores bancos do mundo usam IMS

4. Processa bilhões de transações diariamente

5. É considerado um dos sistemas mais confiáveis já criados


Principais Objetos IMS

ObjetoFunção
DBDDescrição do Banco
PSBEspecificação Programa
PCBComunicação Programa
SegmentoRegistro IMS
SSACritério Pesquisa
DL/ILinguagem de acesso
IMS DBBanco Hierárquico
IMS TMGerenciador Transacional

Resumo Rápido

IMS
 │
 ├── IMS DB
 │      ↓
 │ Banco Hierárquico
 │
 └── IMS TM
        ↓
     Transações Online

Conclusão

O IMS (Information Management System) é uma plataforma da IBM composta por um poderoso banco de dados hierárquico (IMS DB) e um monitor transacional (IMS TM). Presente em grandes bancos, seguradoras e órgãos governamentais, ele continua sendo uma das tecnologias mais robustas e confiáveis do ecossistema Mainframe IBM Z, processando milhões de transações críticas todos os dias.


domingo, 18 de fevereiro de 2007

O que é CICS?

 

Bellacosa Mainframe e o que é CICS

O que é CICS?

CICS significa:

Customer Information Control System

É o principal monitor transacional do ambiente Mainframe IBM Z e um dos softwares mais importantes da história da computação corporativa.

Criado pela IBM em 1968, o CICS é responsável por executar milhões de transações online em bancos, seguradoras, governos, companhias aéreas e grandes empresas.


Definição Simples

O CICS é:

um gerenciador de transações online.

Ele permite que milhares de usuários acessem simultaneamente aplicações COBOL, PL/I, C e Java executadas no Mainframe.


Analogia Simples

Imagine um restaurante.

  • O cliente faz o pedido.

  • O garçom recebe.

  • A cozinha prepara.

  • O prato é entregue.

No Mainframe:

Usuário
   ↓
CICS
   ↓
Programa COBOL
   ↓
DB2 / VSAM
   ↓
Resposta

O CICS é o "garçom" que coordena tudo.


Por que o CICS existe?

Sem o CICS, cada usuário precisaria executar diretamente um programa no sistema operacional.

Isso consumiria muitos recursos.

O CICS resolve esse problema:

✅ Compartilhando recursos

✅ Controlando usuários

✅ Gerenciando transações

✅ Controlando memória

✅ Gerenciando comunicação


Onde o CICS é usado?

Praticamente em:

  • Bancos

  • PIX

  • TED

  • Cartões de crédito

  • Internet Banking

  • Seguradoras

  • Governo

  • Telecomunicações

  • Companhias aéreas


Arquitetura Simplificada

Terminal
    ↓
CICS
    ↓
Programa COBOL
    ↓
DB2
    ↓
Resposta

Exemplo Real

Cliente consulta saldo:

ATM
 ↓
CICS
 ↓
COBOL
 ↓
DB2
 ↓
Saldo exibido

Tudo acontece em poucos milissegundos.


O que é uma Transação CICS?

É uma operação identificada por um código de 4 caracteres.


Exemplos

CUST
SALD
PIX1
PAGT

Fluxo

Usuário digita:

SALD

O CICS:

Localiza programa
       ↓
Executa COBOL
       ↓
Retorna resultado

Programas CICS

Normalmente escritos em:

  • COBOL

  • PL/I

  • C

  • Java


Exemplo COBOL CICS

Recebendo dados:

EXEC CICS RECEIVE
     MAP('TELA1')
END-EXEC.

Enviando dados

EXEC CICS SEND
     MAP('TELA2')
END-EXEC.

O que é uma MAP?

Tela utilizada pelo usuário.


Exemplo

+----------------------+
| CONSULTA CLIENTE     |
| CONTA: ________      |
| SALDO: ________      |
+----------------------+

BMS

Basic Mapping Support.

Ferramenta usada para criar telas CICS.


COMMAREA

Área usada para passar dados entre programas.


Exemplo

Programa A:

EXEC CICS LINK
     PROGRAM('PROG2')
     COMMAREA(WS-AREA)
END-EXEC.

Programa B

Recebe os dados pela COMMAREA.


Principais Comandos CICS

LINK

Chama outro programa.

EXEC CICS LINK
END-EXEC

XCTL

Transfere controle sem retorno.

EXEC CICS XCTL
END-EXEC

RETURN

Finaliza transação.

EXEC CICS RETURN
END-EXEC

SEND

Envia tela.

EXEC CICS SEND
END-EXEC

RECEIVE

Recebe dados.

EXEC CICS RECEIVE
END-EXEC

CICS e DB2

Integração extremamente comum.


Exemplo

EXEC SQL

   SELECT SALDO
   INTO :WS-SALDO

   FROM CLIENTES

END-EXEC.

CICS e VSAM

Também muito utilizado.


Exemplo

READ ARQCLI

CICS e Segurança

Normalmente integrado ao:

  • RACF

  • ACF2

  • Top Secret


Regiões CICS

O CICS executa dentro de uma região.


Exemplos

CICSA
CICSPRD
CICSTST

O que é uma Região?

Ambiente onde as transações executam.


Monitoramento

Comandos comuns:

CEMT
CEDA
CEDF
CECI

CEMT

Monitor operacional.


Exemplo

CEMT I TASK

Mostra tarefas ativas.


CEDA

Administração de recursos.


CEDF

Debug interativo.


CECI

Executa comandos CICS manualmente.


Erros Comuns (ABENDs CICS)

AICA

Timeout.


AEI0

Programa não encontrado.


AEIV

Erro COMMAREA.


ASRA

Exceção de programa.

Equivalente a:

S0C7
S0C4

Conceito de Transação

Uma transação deve obedecer:

ACID


Atomicidade

Tudo ou nada.


Consistência

Dados válidos.


Isolamento

Transações independentes.


Durabilidade

Dados persistem após COMMIT.


Curiosidades

1. O CICS existe desde 1968

2. Processa bilhões de transações diariamente

3. É considerado o maior monitor transacional do mundo

4. Grande parte dos sistemas bancários utiliza CICS

5. Muitas transações PIX passam por aplicações COBOL/CICS


Resumo Rápido

ConceitoFunção
CICSMonitor transacional
TransaçãoOperação online
MAPTela usuário
BMSCriação de telas
COMMAREAPassagem de dados
LINKChama programa
XCTLTransfere controle
SENDEnvia tela
RECEIVERecebe dados
CEMTAdministração
CEDADefinição recursos
CEDFDebug
CECITestes

Conclusão

O CICS (Customer Information Control System) é o principal monitor de processamento online do Mainframe IBM Z. Ele gerencia transações, usuários, programas COBOL, acesso a DB2 e VSAM, permitindo que milhões de operações críticas sejam executadas com segurança, desempenho e alta disponibilidade em tempo real.


sábado, 17 de fevereiro de 2007

O que é Processamento Online em Mainframe?

 

Bellacosa Mainframe o que é processamento mainframe

O que é Processamento Online em Mainframe?

O processamento Online é o modelo de execução em que o usuário interage diretamente com a aplicação e recebe uma resposta quase imediata.

Enquanto o Batch processa grandes volumes de dados em lote, o Online processa uma transação por vez, em tempo real.


Definição Simples

Processamento Online é:

a execução interativa de transações em tempo real.

Sempre que um usuário:

  • consulta saldo;

  • realiza um PIX;

  • faz uma compra no cartão;

  • acessa Internet Banking;

  • emite um boleto;

há um processamento online acontecendo.


Analogia Simples

Batch

100.000 registros
        ↓
Processa tudo junto
        ↓
Resultado

Online

Usuário solicita
        ↓
Sistema responde
        ↓
Fim da transação

Exemplos do Dia a Dia

Caixa Eletrônico

Cliente consulta saldo
        ↓
CICS
        ↓
DB2
        ↓
Resposta em segundos

PIX

Cliente envia PIX
        ↓
Validação
        ↓
Atualização DB2
        ↓
Confirmação

Cartão de Crédito

Compra realizada
        ↓
Autorização
        ↓
Resposta

Arquitetura Online no Mainframe

Usuário
    ↓
Terminal / Web / Mobile
    ↓
CICS ou IMS TM
    ↓
Programa COBOL
    ↓
DB2 / VSAM
    ↓
Resposta

Principais Componentes

CICS

Customer Information Control System

Principal monitor transacional do mundo Mainframe.

Gerencia:

  • transações;

  • usuários;

  • telas;

  • comunicação.


IMS TM

IMS Transaction Manager.

Alternativa ao CICS.

Muito usado em:

  • bancos;

  • telecom;

  • governo.


COBOL

Contém as regras de negócio.


DB2

Banco de dados relacional.


VSAM

Arquivos indexados.


Fluxo de uma Transação CICS

Terminal
    ↓
Transação
    ↓
Programa COBOL
    ↓
DB2
    ↓
Resposta

Exemplo de Transação

Código digitado:

CONS

ou

SALD

O CICS:

Recebe
 ↓
Localiza programa
 ↓
Executa
 ↓
Retorna tela

Exemplo COBOL Online

EXEC CICS RECEIVE
     MAP('TELA1')
END-EXEC.

Recebe dados da tela.


Consulta DB2

EXEC SQL

   SELECT SALDO
   INTO :WS-SALDO

   FROM CLIENTES

   WHERE CONTA = :WS-CONTA

END-EXEC.

Retorno ao Usuário

EXEC CICS SEND
     MAP('TELA2')
END-EXEC.

Características do Online

✅ Tempo real

✅ Resposta imediata

✅ Interação usuário

✅ Pequeno volume por transação

✅ Alta disponibilidade


Online x Batch

OnlineBatch
Tempo realEm lote
InterativoNão interativo
Usuário presenteUsuário ausente
Resposta imediataProcessamento agendado
CICS/IMSJCL/COBOL

O que é uma Transação?

Unidade lógica de trabalho.

Exemplo:

Consultar saldo

ou

Transferir dinheiro

Conceito ACID

Transações online devem garantir:

Atomicidade

Tudo ou nada.


Consistência

Dados válidos.


Isolamento

Usuários não interferem.


Durabilidade

Dados persistem.


COMMIT

Confirma a transação.

COMMIT;

ROLLBACK

Desfaz alterações.

ROLLBACK;

Exemplo

PIX enviado
     ↓
Erro
     ↓
ROLLBACK

Nenhum valor é debitado.


Desempenho

Transações online normalmente precisam responder em:

Menos de 1 segundo

ou

2 segundos

Dependendo da aplicação.


Segurança

Ambientes online usam:

  • RACF

  • ACF2

  • Top Secret

para controlar acessos.


Disponibilidade

Muitos sistemas online operam:

24x7

Sem interrupção.


Exemplos Reais

Bancos

  • PIX

  • TED

  • Consulta saldo

  • Investimentos


Seguradoras

  • Apólices

  • Sinistros


Governo

  • Receita Federal

  • Previdência


Varejo

  • Cartões

  • E-commerce


Erros Comuns

Deadlock DB2

SQLCODE -911

Programa não encontrado

AEI0

Erro de COMMAREA

AEIV

Timeout

AICA

Curiosidades

1. O CICS processa bilhões de transações por dia no mundo

2. Muitas operações de cartão passam por Mainframes IBM Z

3. Um único CICS pode suportar milhares de usuários simultâneos

4. Grande parte dos PIX bancários passa por aplicações COBOL online


Resumo Rápido

ConceitoFunção
OnlineProcessamento em tempo real
CICSMonitor transacional
IMS TMGerenciador de transações
COBOLRegras de negócio
DB2Banco de dados
VSAMArquivo indexado
COMMITConfirma
ROLLBACKDesfaz
ACIDIntegridade transacional
RACFSegurança

Conclusão

O processamento Online é o responsável pelas transações em tempo real no ambiente IBM Z. Utilizando tecnologias como CICS, IMS TM, COBOL, DB2 e VSAM, ele permite que milhões de usuários realizem consultas, pagamentos, transferências e operações críticas com rapidez, segurança e alta disponibilidade, tornando-se um dos pilares da computação corporativa moderna.


sexta-feira, 16 de fevereiro de 2007

O que é Processamento Batch em Mainframe?

 

Bellacosa Mainframe o que é processamento batch em Mainframe

O que é Processamento Batch em Mainframe?

O processamento Batch é uma das tecnologias mais importantes da história da computação corporativa e continua sendo responsável por processar bilhões de transações diariamente em bancos, seguradoras, governos e grandes empresas.

Batch significa:

Processamento em Lote

Ou seja, um conjunto de dados é processado automaticamente, sem interação direta do usuário durante a execução.


Definição Simples

Imagine que uma empresa precisa:

  • calcular salários;

  • gerar extratos;

  • processar PIX;

  • atualizar saldos;

  • emitir boletos.

Em vez de fazer isso um registro por vez, o sistema reúne milhares ou milhões de registros e processa tudo em lote.

Isso é Batch.


Analogia Simples

Imagine uma lavanderia industrial.

Processamento Online

Roupa entra
↓
Lavagem imediata
↓
Entrega

Processamento Batch

1000 roupas chegam
↓
Acumula tudo
↓
Processa em lote
↓
Entrega

Batch x Online

BatchOnline
Sem usuárioCom usuário
Processamento em loteTempo real
Grande volumePequeno volume
Horários programadosSob demanda
Alta performanceBaixa latência

Exemplo Online

Cliente consulta saldo:

ATM
↓
CICS
↓
DB2
↓
Resposta

Tudo acontece em segundos.


Exemplo Batch

Fim do dia:

Milhões de contas
↓
Atualizar juros
↓
Gerar extratos
↓
Criar relatórios

Arquitetura Batch no Mainframe

JCL
 ↓
Scheduler
 ↓
JOB
 ↓
Programa COBOL
 ↓
QSAM / VSAM / DB2
 ↓
Relatórios

Componentes Principais

JCL

Job Control Language

Controla a execução.


COBOL

Executa as regras de negócio.


Dataset

Contém os dados.


Scheduler

Agenda a execução.


JES2/JES3

Gerencia filas e spool.


Como um Batch Funciona?

Fluxo típico:

Entrada
 ↓
Leitura
 ↓
Validação
 ↓
Processamento
 ↓
Gravação
 ↓
Relatórios

Exemplo Real

Banco processando pagamentos:

Arquivo PIX
 ↓
COBOL
 ↓
Validação
 ↓
Atualização DB2
 ↓
Relatório

Exemplo de JCL

//PAGTO JOB ...

//STEP1 EXEC PGM=PAGPIX

//ENTRADA DD DSN=BANCO.PIX.INPUT

//SAIDA   DD DSN=BANCO.PIX.OUTPUT

O que acontece?

O z/OS:

  1. Aloca datasets

  2. Carrega programa

  3. Executa COBOL

  4. Gera SYSOUT

  5. Finaliza Job


Ciclo de Vida de um Job Batch

SUBMIT
  ↓
INPUT QUEUE
  ↓
EXECUTION QUEUE
  ↓
RUNNING
  ↓
OUTPUT QUEUE
  ↓
PURGE

Onde vemos isso?

No SDSF:

ST
DA
I
H
O

Horário de Batch

Tradicionalmente:

22:00
 ↓
06:00

Conhecido como:

Janela Batch


Por que à noite?

Menos usuários online.

Mais recursos disponíveis.


Tipos de Batch


Batch Sequencial

Processa arquivo inteiro.

Registro 1
Registro 2
Registro 3

Batch DB2

Processa tabelas.

SELECT
UPDATE
INSERT
DELETE

Batch VSAM

Processa registros indexados.


Batch ETL

Extrai, transforma e carrega dados.

Muito usado em Data Warehouse.


Schedulers Mais Conhecidos


IBM Workload Scheduler (IWS)

Antigo OPC/TWS.


Control-M

Muito usado em bancos.


CA-7

Broadcom.


ESP

Scheduler corporativo.


Automic

Ambientes distribuídos e Mainframe.


Dependências Batch

Um Job pode depender de outro.


Exemplo

JOB-A
 ↓
JOB-B
 ↓
JOB-C

JOB-B só executa se:

JOB-A RC=0000

Return Code (RC)

Código de retorno do Job.


Exemplos

RCSignificado
0000Sucesso
0004Aviso
0008Erro
0012Erro grave
0016Falha crítica

ABEND em Batch

Se ocorrer:

S0C7
S806
SB37

O Job pode parar.


Logs do Batch

Disponíveis no:

SYSOUT
JESMSGLG
JESJCL
JESYSMSG

Exemplo de Fluxo Bancário

PIX RECEBIDOS
        ↓
JOB BATCH
        ↓
ATUALIZA DB2
        ↓
GERA EXTRATO
        ↓
ENVIA RELATÓRIO

Vantagens do Batch

✅ Processa milhões de registros

✅ Excelente performance

✅ Automatização

✅ Baixo custo operacional

✅ Alta confiabilidade


Desvantagens

❌ Não é tempo real

❌ Dependência de janelas

❌ Recuperação pode ser complexa


Curiosidades

1. Alguns bancos processam mais de 10 bilhões de registros por noite

2. Muitos batchs executam há mais de 30 anos sem interrupção

3. O conceito de processamento em lote existe desde a era dos cartões perfurados

4. Grande parte do fechamento bancário mundial ainda depende de batchs COBOL


Erros Comuns de Iniciantes

Confundir Batch com Online


Ignorar Return Codes


Não analisar SYSOUT


Não tratar ABENDs


Não entender dependências do Scheduler


Resumo Rápido

ConceitoFunção
BatchProcessamento em lote
JCLControle execução
COBOLRegras negócio
DatasetDados
SchedulerAgendamento
RCCódigo retorno
SYSOUTLogs
JES2Gerência filas
IWSScheduler IBM
Control-MScheduler corporativo

Conclusão

O processamento Batch é o coração operacional de muitas empresas que utilizam Mainframe IBM Z. Ele permite processar enormes volumes de dados de forma automatizada, segura e eficiente, sendo responsável por atividades críticas como fechamento bancário, folha de pagamento, faturamento, conciliações financeiras e geração de relatórios corporativos.


quinta-feira, 15 de fevereiro de 2007

O que é Compilação e Linkedição de um Programa COBOL?

 

Bellacosa Mainframe o que é Compilação e Linkedição de um programa COBOL

O que é Compilação e Linkedição de um Programa COBOL?

Quando escrevemos um programa COBOL, o computador não executa diretamente o código-fonte.

Antes disso, ele precisa passar por duas etapas fundamentais:

Compilação

e

Linkedição (Link-Edit ou Binder)

Essas etapas transformam o código COBOL em um programa executável pelo z/OS.


Visão Geral

Código COBOL
     ↓
Compilação
     ↓
Objeto (OBJ)
     ↓
Linkedição (Binder)
     ↓
Load Module / Program Object
     ↓
Execução

O que é Compilação?

Compilação é o processo de converter:

Código COBOL

em

Código Objeto

Analogia Simples

Imagine que você escreveu um livro em português.

O compilador é um tradutor que converte o texto para um idioma que o processador entende.


Entrada da Compilação

Programa fonte:

IDENTIFICATION DIVISION.

PROGRAM-ID. HELLO.

PROCEDURE DIVISION.

DISPLAY 'OLA MUNDO'.

STOP RUN.

Saída da Compilação

Arquivo objeto:

OBJETO

Ainda não é executável.


O que o Compilador faz?

Durante a compilação ele:

✅ Analisa sintaxe

✅ Valida comandos COBOL

✅ Expande COPYBOOKs

✅ Verifica variáveis

✅ Gera instruções de máquina

✅ Produz mensagens de erro


Exemplo de erro

DISPLY 'OLA'

Resultado:

IGYPS2121-S

Erro de sintaxe.


Compilador COBOL

Nos ambientes IBM Z normalmente encontramos:

Enterprise COBOL for z/OS

O que é o Código Objeto?

Após a compilação é criado:

OBJETO

Também chamado de:

Object Deck
Object Module
OBJ

Características

  • Não executa sozinho

  • Pode conter referências externas

  • Precisa passar pelo Binder


O que é Linkedição?

Também chamada:

Link-Edit

ou

Binding


Função

Transformar o código objeto em um programa executável.


Fluxo

OBJETO
   ↓
BINDER
   ↓
LOAD MODULE

O que o Binder faz?

Ele:

✅ Resolve chamadas externas

✅ Liga subprogramas

✅ Liga bibliotecas

✅ Resolve referências CICS

✅ Resolve referências DB2

✅ Cria módulo executável


Analogia Simples

Imagine várias peças de LEGO.

A compilação cria as peças.

A linkedição monta tudo em um único brinquedo funcional.


Resultado Final

LOAD MODULE

ou

PROGRAM OBJECT

Onde fica o executável?

Normalmente em uma biblioteca:

USER.LOADLIB

ou

PROD.LOADLIB

Fluxo Completo

COBOL Source
      ↓
Compiler
      ↓
Object Module
      ↓
Binder
      ↓
Load Module
      ↓
JCL EXEC PGM=

Exemplo de Execução

JCL:

//STEP1 EXEC PGM=HELLO

O z/OS procura:

HELLO

na:

STEPLIB
JOBLIB
LINKLIST

O que é STEPLIB?

Biblioteca onde o executável está armazenado.


Exemplo

//STEPLIB DD DSN=USER.LOADLIB,
//            DISP=SHR

Chamadas entre Programas

Programa principal:

CALL 'CALCSAL'

Durante a Linkedição

O Binder procura:

CALCSAL

e conecta os módulos.


Linkedição com CICS

Programas CICS utilizam bibliotecas especiais.

Exemplo:

DFHEIBLK
DFHCOMMAREA

O Binder resolve essas referências.


Linkedição com DB2

Programas DB2 possuem etapas extras.

COBOL
 ↓
Pré-compilador DB2
 ↓
Compilação
 ↓
BIND DB2
 ↓
Linkedição

O que é BIND no DB2?

Não confundir com Binder.


Binder

Cria executável.


BIND DB2

Cria:

PACKAGE
PLAN

Principais Saídas da Compilação


SYSPRINT

Mensagens do compilador.


LISTING

Listagem fonte expandida.


OBJETO

Código objeto.


Principais Saídas da Linkedição


SYSPRINT

Mensagens Binder.


LOAD MODULE

Executável.


Erros Comuns de Compilação

Variável não declarada

IGYPS...

COPYBOOK inexistente

IGYDS...

Erro de sintaxe

IGYPS...

Erros Comuns de Linkedição

Módulo não encontrado

IEW2456E

Referência externa não resolvida

IEW2646S

Biblioteca ausente

IEW...

Ferramentas Envolvidas

EtapaFerramenta
CompilaçãoEnterprise COBOL
LinkediçãoBinder (IEWL)
Execuçãoz/OS Loader

Exemplo Real de JCL

//COBOL EXEC PGM=IGYCRCTL
//SYSIN DD DSN=USER.COBOL(PROG1)

//LKED EXEC PGM=IEWL
//SYSLMOD DD DSN=USER.LOADLIB(PROG1)

Curiosidades

1. Antigamente a saída da compilação era gravada em cartões perfurados

2. O Binder substituiu o antigo Linkage Editor

3. Um único programa pode ser ligado a dezenas de módulos externos

4. Grandes bancos compilam milhares de programas COBOL diariamente


Resumo Rápido

EtapaFunção
CompilaçãoGera código objeto
Código ObjetoSaída intermediária
BinderLiga módulos
LinkediçãoCria executável
Load ModulePrograma executável
STEPLIBBiblioteca de execução
CALLChama subprograma
BIND DB2Cria Package e Plan

Conclusão

A compilação converte o código COBOL em um módulo objeto, enquanto a linkedição (Binder) conecta todas as dependências e gera o módulo executável que será carregado pelo z/OS. Entender essas etapas é fundamental para diagnosticar erros de compilação, problemas de execução e compreender como os programas COBOL realmente funcionam no ambiente IBM Z.


quarta-feira, 14 de fevereiro de 2007

O que é SQL no Mainframe?

 

Bellacosa Mainframe o que é SQL Mainframe

O que é SQL no Mainframe?

SQL significa:

Structured Query Language

É a linguagem usada para acessar e manipular dados armazenados em bancos relacionais, principalmente o:

  • DB2 for z/OS

  • IMS SQL

  • Db2 Distributed

No ambiente mainframe, SQL é a ponte entre os programas COBOL e os dados armazenados no banco.


Definição simples

SQL é:

a linguagem utilizada para consultar, incluir, alterar e remover dados em bancos de dados.

Sem SQL, um programa COBOL não conseguiria acessar diretamente uma tabela DB2.


Analogia simples

Imagine uma biblioteca gigante.

O DB2 é a biblioteca.

O SQL é o idioma usado para conversar com o bibliotecário.

Você pode dizer:

Me mostre todos os clientes.

ou

Atualize o saldo deste cliente.

Onde SQL é usado?

Principalmente em:

  • COBOL

  • CICS

  • Batch

  • Java

  • PL/I

  • REXX

  • Stored Procedures


SQL e DB2

Fluxo simplificado:

Programa COBOL
       ↓
      SQL
       ↓
      DB2
       ↓
     Dados

Principais comandos SQL

SELECT

Consulta dados.

SELECT *
FROM CLIENTES;

SELECT com filtro

SELECT NOME,
       SALDO
FROM CLIENTES
WHERE SALDO > 1000;

INSERT

Inclui registros.

INSERT INTO CLIENTES
VALUES
(1001,'JOAO SILVA',5000);

UPDATE

Atualiza registros.

UPDATE CLIENTES
SET SALDO = 8000
WHERE ID = 1001;

DELETE

Remove registros.

DELETE
FROM CLIENTES
WHERE ID = 1001;

SQL dentro do COBOL

No mainframe normalmente usamos:

Embedded SQL


Exemplo

EXEC SQL

   SELECT NOME
     INTO :WS-NOME

     FROM CLIENTES

    WHERE ID = :WS-ID

END-EXEC.

O que é EXEC SQL?

Indica ao pré-compilador DB2 que aquele trecho contém comandos SQL.


Host Variables

Variáveis COBOL utilizadas pelo SQL.


Exemplo

01 WS-ID      PIC 9(5).
01 WS-NOME    PIC X(30).

Uso:

WHERE ID = :WS-ID

O ":" identifica uma Host Variable.


SQLCODE

Após cada comando SQL o DB2 retorna um código.


Exemplo

IF SQLCODE = 0

SQLCODE mais comuns

SQLCODESignificado
0Sucesso
+100Registro não encontrado
-803Chave duplicada
-305Valor nulo
-911Deadlock
-904Recurso indisponível

SQLCA

Área de comunicação entre COBOL e DB2.


Inclusão

EXEC SQL
   INCLUDE SQLCA
END-EXEC.

SQLCA contém

  • SQLCODE

  • SQLSTATE

  • mensagens

  • estatísticas


O que é Cursor?

Quando um SELECT retorna várias linhas.


Exemplo

SELECT *
FROM CLIENTES

Pode retornar:

JOAO
MARIA
CARLOS
ANA

Cursor resolve isso

Fluxo:

DECLARE
    ↓
OPEN
    ↓
FETCH
    ↓
FETCH
    ↓
FETCH
    ↓
CLOSE

Exemplo

DECLARE C1 CURSOR FOR

SELECT NOME
FROM CLIENTES

FETCH

FETCH C1
INTO :WS-NOME

Lê uma linha por vez.


COMMIT

Confirma alterações.

COMMIT;

ROLLBACK

Desfaz alterações.

ROLLBACK;

Exemplo prático

UPDATE SALDO
      ↓
COMMIT

Grava definitivamente.


Exemplo erro

UPDATE SALDO
      ↓
ABEND
      ↓
ROLLBACK

Volta ao estado anterior.


SQL Estático

Mais comum em COBOL.


Exemplo

EXEC SQL
   SELECT ...
END-EXEC

Conhecido na compilação.


SQL Dinâmico

Montado em tempo de execução.


Exemplo

MOVE 'SELECT * FROM CLIENTES'
TO WS-COMANDO

Muito usado em ferramentas administrativas.


Processo de compilação

COBOL + SQL
      ↓
Pré-compilador DB2
      ↓
Compilador COBOL
      ↓
BIND
      ↓
Package
      ↓
Execução

O que é BIND?

Gera os objetos que permitem ao DB2 executar o SQL.


Ferramentas SQL famosas no Mainframe

  • SPUFI

  • DSNTEP2

  • QMF

  • Db2 Admin Tool

  • Data Studio


SQL x QSAM

SQL

Procure cliente 1000

DB2 encontra.


QSAM

Registro 1
Registro 2
Registro 3
...
Registro 1000

Leitura sequencial.


Vantagens do SQL

✅ Fácil leitura

✅ Menos código COBOL

✅ Acesso rápido aos dados

✅ Relacionamentos entre tabelas

✅ Alta produtividade


Curiosidades

1. SQL foi criado na IBM na década de 1970

2. O DB2 foi um dos primeiros bancos comerciais a usar SQL

3. Milhões de linhas COBOL executam SQL diariamente

4. Grande parte das transações bancárias depende de SQL no DB2


Resumo rápido

ComandoFunção
SELECTConsulta
INSERTInclusão
UPDATEAlteração
DELETEExclusão
COMMITConfirma
ROLLBACKDesfaz
CURSORPercorre linhas
FETCHLê linha
SQLCARetorno SQL
SQLCODECódigo de retorno

Conclusão

SQL é a linguagem que permite aos programas COBOL, CICS e aplicações do ambiente IBM Z acessar bancos de dados DB2. Ele é um dos pilares do processamento transacional moderno, tornando possível consultar, inserir, atualizar e excluir dados de forma segura, rápida e eficiente no mainframe.