Translate

domingo, 20 de maio de 2018

IBM Mainframe Discovery : Capítulo V — A Frota Invisível do Transporte Interestelar

 

Bellacosa Mainframe apresenta ibm mainframe parte v

☕ Um Café no Bellacosa Mainframe

Capítulo V — A Frota Invisível do Transporte Interestelar

O Subsistema de Entrada e Saída (I/O): Por Que o IBM Z Nunca Deixa a CPU Carregar Caixas


SEGUNDA REGRA DA ENGENHARIA GALÁCTICA

Se você encontrar o capitão de uma nave descarregando caixas no depósito...

...alguma coisa está profundamente errada.

O capitão deveria estar comandando.

Os pilotos deveriam estar voando.

Os cientistas pesquisando.

Os médicos salvando vidas.

Existe uma razão para isso.

Especialistas produzem mais quando fazem aquilo para o qual foram projetados.

Curiosamente...

o IBM Mainframe pensou exatamente assim.

Enquanto boa parte dos computadores do planeta obriga a CPU a cuidar de detalhes de Entrada e Saída (I/O)...

o IBM Z simplesmente responde:

"Desculpe... eu tenho uma tripulação especializada para isso."

Hoje vamos conhecer uma das maiores obras de engenharia da computação moderna.

O lendário subsistema de I/O do Mainframe.


O Grande Porto Espacial

Imagine uma gigantesca estação espacial.

Todos os dias chegam:

20 mil cargueiros.

40 mil naves.

Milhões de passageiros.

Bilhões de contêineres.

Agora imagine que existe apenas um único funcionário organizando tudo.

O resultado seria previsível.

Caos.

Filas.

Colisões.

Aeroportos fechados.

Agora imagine outra estação.

Ela possui:

controladores de voo.

torres independentes.

radares.

equipes de solo.

docas automáticas.

computadores dedicados.

Cada profissional cuida apenas da sua especialidade.

Essa segunda estação lembra muito mais o IBM Z.


O Erro Mais Comum dos Computadores

Grande parte dos computadores tradicionais segue um modelo simples.

A CPU deseja ler um arquivo.

Então ela:

manda o pedido.

espera.

confere.

espera novamente.

recebe os dados.

volta ao trabalho.

É como um comandante abandonar a ponte de comando para verificar pessoalmente se o caminhão de suprimentos chegou.


O IBM Z Não Tem Tempo Para Isso

No universo Mainframe existe uma filosofia extremamente elegante.

A CPU deve executar programas.

Mais nada.

Todo o restante...

alguém especializado resolve.

Foi exatamente essa ideia que moldou todo o subsistema de Entrada e Saída.

Segundo Wilhelm G. Spruth, uma das razões da enorme capacidade de processamento transacional do System z é justamente descarregar boa parte do trabalho de I/O para componentes especializados, em vez de consumir ciclos da CPU principal.


Bem-vindo ao Centro Logístico da Galáxia

Imagine um centro de distribuição.

A CPU apenas escreve:

"Preciso deste arquivo."

Instantaneamente surge uma cadeia inteira de especialistas.

Cada um sabe exatamente o que fazer.

Sem interromper o comandante.

Sem desperdiçar energia.

Sem ocupar a ponte principal.


Os Control Units — As Docas Inteligentes

Chegamos ao primeiro personagem desta história.

As famosas:

Control Units.

Imagine uma gigantesca doca espacial.

Ela conversa com:

discos.

fitas.

SSD.

impressoras.

subsistemas.

A CPU sequer precisa conhecer os detalhes desses equipamentos.

Ela conversa apenas com a Control Unit.

É como um capitão dizendo:

"Quero abastecer."

Sem precisar saber:

qual mangueira.

qual válvula.

qual bomba.

Tudo isso fica sob responsabilidade da equipe da doca.

Spruth ressalta que funções tradicionalmente atribuídas a drivers de dispositivos em outras plataformas são executadas pelas Control Units no ambiente System z.


O Carteiro Nunca Vai Até a Floresta

Imagine um carteiro.

Ele não fabrica cartas.

Não escreve mensagens.

Não constrói estradas.

Ele apenas entrega.

As Control Units seguem exatamente essa lógica.

Elas especializam-se na comunicação entre a CPU e o universo externo.

Essa separação simplifica o sistema inteiro.


Drivers? Quase Não...

Aqui encontramos uma das maiores diferenças para Windows e Linux.

Nos PCs existe enorme quantidade de drivers.

Cada dispositivo possui o seu.

Cada fabricante faz diferente.

Cada atualização pode quebrar alguma coisa.

No Mainframe...

a maior parte dessa inteligência foi deslocada para o próprio hardware especializado.

Resultado?

Mais estabilidade.

Mais desempenho.

Menos complexidade para o sistema operacional.


O Channel Subsystem — O Controle de Tráfego Espacial

Agora imagine que existem milhares de cargueiros chegando ao mesmo tempo.

Quem organiza isso?

O verdadeiro maestro chama-se:

Channel Subsystem.

Pense nele como a torre de controle de um gigantesco porto espacial.

Ele decide:

qual caminho utilizar.

qual canal está livre.

qual dispositivo responderá.

qual rota está congestionada.

A CPU?

Nem toma conhecimento.

Segundo o relatório, o Channel Subsystem utiliza processadores especializados chamados System Assist Processors (SAPs), que executam esse gerenciamento fora do alcance do sistema operacional.


SAP — Os Pilotos Automáticos

Esses pequenos especialistas chamam-se:

SAPs

(System Assist Processors).

Imagine dezenas de controladores de voo trabalhando continuamente.

Enquanto isso...

a CPU continua executando COBOL.

CICS.

Db2.

Java.

Sem perder tempo organizando filas de discos.

É como contratar uma equipe inteira apenas para administrar aeroportos.


A Área Secreta da Nave

Existe um compartimento que praticamente nenhum programa consegue enxergar.

Ele chama-se:

Hardware System Area (HSA).

Pense nele como a sala de manutenção da nave.

Somente engenheiros autorizados entram ali.

É nesse ambiente que diversos mecanismos internos trabalham silenciosamente, incluindo parte da infraestrutura utilizada pelos SAPs e pelo gerenciamento dos canais.


Um Disco Pode Ter Muitas Estradas

Agora imagine uma cidade.

Existe apenas uma estrada.

Qualquer acidente paralisa tudo.

No IBM Z isso seria considerado um projeto ruim.

Em vez disso...

cada dispositivo pode possuir diversos caminhos.

Se um canal ficar indisponível...

outro assume.

Sem interromper a viagem.

Esse conceito é conhecido como:

Multiple Paths.


O GPS da Galáxia

Imagine um navegador inteligente.

Se uma rota congestiona...

ele muda imediatamente o caminho.

É exatamente isso que acontece.

O subsistema pode alterar dinamicamente a rota de uma operação de I/O.

A carga continua viajando.

O usuário nem percebe.

Spruth explica que uma operação pode inclusive terminar por um canal diferente daquele em que começou, graças ao gerenciamento dinâmico dos caminhos de conexão.


O Elevador Inteligente

Suponha um edifício de mil andares.

Cinco elevadores.

Todos recebem chamadas ao mesmo tempo.

Quem decide qual elevador atenderá cada passageiro?

O algoritmo.

No Mainframe existe conceito semelhante.

O I/O Scheduling organiza a sequência das operações para reduzir deslocamentos desnecessários e aumentar a eficiência.

Enquanto muitos sistemas realizam esse trabalho utilizando ciclos da CPU, no IBM Z boa parte dele é executada pelos componentes especializados do subsistema de I/O.


FICON — As Rodovias de Luz

Agora vamos observar as estradas.

Em vez de simples cabos...

o IBM Z utiliza conexões ópticas de altíssimo desempenho.

Entre elas destaca-se:

FICON

(Fibre Connection).

Posteriormente surgiu o:

zHPF

(High Performance FICON).

Imagine substituir antigas rodovias por túneis hiperluminais.

Mais velocidade.

Menor latência.

Maior eficiência.


O NUMA Cache Compartilhado

Chegamos a uma das partes mais sofisticadas do relatório.

Imagine quatro enormes cidades espaciais.

Cada uma possui sua biblioteca.

Normalmente...

cada cidade consulta apenas seus próprios livros.

No IBM Z ocorre algo extraordinário.

As bibliotecas conseguem cooperar.

Os caches L2 são organizados de forma a oferecer uma visão compartilhada entre diferentes "books", reduzindo custos de acesso e aumentando a eficiência em sistemas de grande porte.


DMA Diretamente no Cache

Aqui encontramos outra inovação impressionante.

Na maioria dos computadores...

os dispositivos conversam diretamente com a memória principal.

No System z...

certas operações de I/O conseguem atingir diretamente o cache L2.

Imagine um cargueiro entregando suprimentos diretamente na cozinha da nave...

sem precisar passar primeiro pelo almoxarifado.

Resultado?

Muito menos deslocamento.

Muito menos espera.

Mais desempenho.

Spruth destaca essa característica como uma implementação singular da arquitetura System z.


Quantos Discos Cabem Numa Galáxia?

O relatório apresenta números impressionantes.

Um único Channel Subsystem pode administrar dezenas de milhares de subcanais.

Diversos subsistemas podem coexistir.

Isso permite conectar quantidades gigantescas de dispositivos de armazenamento e periféricos.

É uma escala difícil até de imaginar quando pensamos em servidores convencionais.


Por Que Tudo Isso Existe?

Porque bancos não possuem apenas:

um arquivo.

Eles possuem:

milhões.

Uma companhia aérea não processa:

cem reservas.

Processa milhões.

Uma seguradora não grava:

dez registros.

Grava bilhões.

O problema nunca foi ler um arquivo.

O problema sempre foi ler milhões deles simultaneamente.


O Que Mudou Desde 2010?

Desde a publicação do relatório, o subsistema de I/O continuou evoluindo.

Hoje encontramos:

  • FICON ainda mais rápido;

  • discos Flash de altíssimo desempenho;

  • DS8000 muito mais inteligentes;

  • integração com NVMe;

  • compressão por hardware;

  • criptografia transparente;

  • Storage Class Memory;

  • melhorias em zHyperLink;

  • novos mecanismos de paralelismo.

Mas a filosofia permanece rigorosamente igual.

A CPU continua fazendo apenas aquilo que ela faz melhor.


A Grande Lição dos Engenheiros

Existe um princípio elegante escondido neste capítulo.

Não sobrecarregue quem deveria estar pensando.

Delegue.

Especialize.

Distribua responsabilidades.

Curiosamente...

essa não é apenas uma lição para computadores.

Também vale para equipes.

Projetos.

Empresas.

E até para nossas próprias rotinas.


Curiosidades do Diário de Bordo

🚀 Muitos conceitos modernos de aceleração por hardware seguem a mesma filosofia utilizada pelo IBM Z há décadas: mover tarefas especializadas para componentes dedicados.

💾 O subsistema de I/O do Mainframe é frequentemente considerado um dos maiores diferenciais da plataforma, justamente porque permite que a CPU permaneça focada no processamento das aplicações.

🌌 O Channel Subsystem trabalha de forma tão integrada ao hardware que a maior parte dos programas jamais percebe sua complexidade.

📡 Em um IBM Z, a logística de movimentação de dados lembra muito mais a operação de um gigantesco porto espacial automatizado do que a de um computador pessoal.


Diário de Bordo do Padawan COBOL

Antes de deixar o centro logístico da nave, registre estas coordenadas:

✅ A CPU do IBM Z foi projetada para processar negócios, não para administrar filas de dispositivos.

✅ Control Units, Channel Subsystem e SAPs formam uma equipe especializada que descarrega grande parte do trabalho de Entrada e Saída.

✅ Múltiplos caminhos de comunicação aumentam simultaneamente desempenho e disponibilidade.

✅ O segredo da eficiência do IBM Z não está apenas em processadores poderosos, mas em uma arquitetura onde cada componente faz exatamente aquilo para o qual foi criado.

No próximo capítulo atravessaremos as portas do Supervisor do z/OS, o verdadeiro centro nervoso da nave. Descobriremos como Kernel, Address Spaces, Dispatcher e Scheduler coordenam milhões de atividades simultâneas com a serenidade de um comandante experiente, mantendo a ordem em uma galáxia onde o caos tenta aparecer a cada microssegundo.

☕ Um Café no Bellacosa Mainframe

O Guia Galáctico do IBM Z

Dezoito capítulos e uma conclusão reunidos em um painel interativo. Escolha uma missão, abra no visor e continue explorando diretamente no artigo original.

Não entre em pânico: se o Blogger impedir a exibição dentro do iframe, use “Abrir artigo”. Os links diretos continuam visíveis para leitores e motores de busca.
01

Capítulo I — Não Entre em Pânico!

Leia no visor ou abra a publicação original.

Abrir artigo
02

Capítulo II — A Planta da Nave Mais Duradoura da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
03

Capítulo III — A Nave Que Se Recusa a Explodir

Leia no visor ou abra a publicação original.

Abrir artigo
04

Capítulo IV — A Sala dos Cofres Cósmicos

Leia no visor ou abra a publicação original.

Abrir artigo
05

Capítulo V — A Frota Invisível do Transporte Interestelar

Leia no visor ou abra a publicação original.

Abrir artigo
06

Capítulo VI — O Grande Maestro Invisível

Leia no visor ou abra a publicação original.

Abrir artigo
07

Capítulo VII — O Grande Terminal de Embarque da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
08

Capítulo VIII — A Metrópole das Transações Infinitas

Leia no visor ou abra a publicação original.

Abrir artigo
09

Capítulo IX — A Federação das Naves Invisíveis

Leia no visor ou abra a publicação original.

Abrir artigo
10

Capítulo X — A Consciência Coletiva da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
11

Capítulo XI — O Almirante Invisível da Frota

Leia no visor ou abra a publicação original.

Abrir artigo
12

Capítulo XII — A Biblioteca Infinita da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
13

Capítulo XIII — O Serviço Postal Mais Confiável da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
14

Capítulo XIV — O Jardim Secreto da Nave

Leia no visor ou abra a publicação original.

Abrir artigo
15

Capítulo XV — O Tradutor Universal da Federação

Leia no visor ou abra a publicação original.

Abrir artigo
16

Capítulo XVI — A Fábrica Automática da Federação

Leia no visor ou abra a publicação original.

Abrir artigo
17

Capítulo XVII — A Última Fronteira Nunca Foi o Espaço

Leia no visor ou abra a publicação original.

Abrir artigo
18

Capítulo XVIII — O Guia Nunca Terminou

Leia no visor ou abra a publicação original.

Abrir artigo
19

Conclusão — Não Entre em Pânico... A Jornada Está Apenas Começando

Leia no visor ou abra a publicação original.

Abrir artigo

sexta-feira, 18 de maio de 2018

SQL JOINs: O Que Todo Programador COBOL Padawan Precisa Saber Para Entender Como os Bancos de Dados Pensam

 

Bellacosa Mainframe e o uso dos sqljoins em SQL

☕ Um Café no Bellacosa Mainframe

SQL JOINs: O Que Todo Programador COBOL Padawan Precisa Saber Para Entender Como os Bancos de Dados Pensam

Você não está apenas aprendendo comandos SQL. Está aprendendo como bilhões de registros conversam entre si todos os dias.

Existem momentos na carreira de um programador em que um conceito muda completamente sua forma de enxergar a computação.

Para alguns, esse momento acontece ao aprender ponteiros em C.

Para outros, ao descobrir orientação a objetos.

Para quem trabalha com bancos de dados relacionais, esse momento geralmente acontece quando entende, de verdade, os JOINs.

À primeira vista, parecem apenas quatro comandos:

  • INNER JOIN

  • LEFT JOIN

  • RIGHT JOIN

  • FULL OUTER JOIN

Mas, por trás deles, existe uma das maiores invenções da Ciência da Computação moderna.

Para um programador COBOL, compreender JOINs é semelhante a descobrir que, em vez de navegar manualmente por dezenas de arquivos VSAM procurando registros relacionados, existe um mecanismo matemático capaz de fazer isso automaticamente, de forma otimizada, segura e extremamente rápida.

Pegue seu café.

Hoje vamos conversar sobre como os bancos de dados realmente pensam.


Antes do SQL

Imagine que estamos em 1975.

Você trabalha em um grande banco.

Os dados estão espalhados em arquivos.

Existe um arquivo de clientes.

Outro de contas.

Outro de cartões.

Outro de empréstimos.

Outro de movimentações.

Em COBOL, o processamento normalmente seria algo parecido com:

Ler Cliente

Para cada Cliente

    Abrir arquivo de Contas

    Procurar Conta

        Abrir arquivo de Movimentos

        Procurar Movimentos

            Gerar relatório

Nada de errado.

Foi assim durante décadas.

Mas existe um problema.

À medida que os arquivos crescem...

...o processamento cresce junto.

Às vezes de forma exponencial.

Era necessário pensar diferente.


Surge o Modelo Relacional

Em 1970, Edgar F. Codd publicou um artigo que mudou a história da informática.

Sua ideia era brilhante.

Em vez de navegar manualmente entre arquivos...

...o programador apenas declararia:

"Quero relacionar estas duas tabelas."

O banco descobriria o melhor caminho.

Foi o nascimento do SQL moderno.

E junto dele...

...os JOINs.


O que é um JOIN?

JOIN significa literalmente

Junção.

É a operação que une informações de duas ou mais tabelas utilizando algum relacionamento.

Imagine duas tabelas.

CLIENTE

IDNome
1João
2Maria
3Carlos
4Ana

PEDIDO

PedidoClienteValor
1011250
1021400
1033120
1045900

Observe.

O pedido possui um campo chamado CLIENTE.

Esse campo aponta para o ID da tabela CLIENTE.

Visualmente:

CLIENTE

1 João
2 Maria
3 Carlos
4 Ana

        │

        ▼

PEDIDO

101 Cliente 1

102 Cliente 1

103 Cliente 3

104 Cliente 5

Existe um relacionamento.

É justamente isso que o JOIN explora.


INNER JOIN

É o JOIN mais famoso.

Ele responde uma pergunta muito simples.

"Quais registros existem nos dois lados?"

SQL

SELECT
    C.NOME,
    P.VALOR
FROM CLIENTE C
INNER JOIN PEDIDO P
ON C.ID = P.CLIENTE_ID;

Resultado

ClienteValor
João250
João400
Carlos120

Perceba.

Maria desapareceu.

Ana desapareceu.

O pedido do cliente 5 também desapareceu.

Por quê?

Porque não existe correspondência.

O INNER JOIN trabalha exclusivamente com a interseção.

Imagine dois círculos.

CLIENTES

(1 2 3 4)

PEDIDOS

(1 3 5)

Resultado

(1 3)

Apenas aquilo que existe em ambos.


A mágica acontece automaticamente

Quando você escreve:

INNER JOIN

Você não está dizendo ao banco:

"Leia primeiro esta tabela."

Nem:

"Depois percorra aquela."

Nem:

"Faça um loop."

Você apenas declara o resultado desejado.

O banco escolhe como chegar nele.

Esse é o paradigma declarativo.


LEFT JOIN

Agora imagine outra pergunta.

"Quero todos os clientes."

Mesmo aqueles que nunca compraram.

É aqui que entra o LEFT JOIN.

SELECT
    C.NOME,
    P.VALOR
FROM CLIENTE C
LEFT JOIN PEDIDO P
ON C.ID=P.CLIENTE_ID;

Resultado

ClienteValor
João250
João400
MariaNULL
Carlos120
AnaNULL

Observe o NULL.

Ele não significa zero.

Não significa vazio.

Significa simplesmente:

"Não existe registro correspondente."

Esse pequeno detalhe causa milhares de erros em sistemas corporativos.


Descobrindo clientes inativos

Um dos usos mais comuns do LEFT JOIN.

SELECT C.*

FROM CLIENTE C

LEFT JOIN PEDIDO P

ON C.ID=P.CLIENTE_ID

WHERE P.CLIENTE_ID IS NULL;

Resultado.

Maria.

Ana.

São clientes cadastrados.

Mas nunca fizeram pedidos.

Esse tipo de consulta é extremamente comum em:

  • CRM

  • Bancos

  • Seguradoras

  • Telecom

  • E-commerce


RIGHT JOIN

É simplesmente o espelho do LEFT.

Mantém todos os registros da direita.

Na prática...

Poucos desenvolvedores utilizam RIGHT JOIN.

A maioria prefere inverter as tabelas e continuar usando LEFT JOIN.

É mais intuitivo.


FULL OUTER JOIN

Esse é o mais democrático.

Nada é descartado.

Tudo aparece.

Clientes com pedidos.

Clientes sem pedidos.

Pedidos sem clientes.

Tudo.

CLIENTES

1

2

3

4

PEDIDOS

1

3

5

Resultado

1

2

3

4

5

Muito utilizado em auditorias.

Migração de sistemas.

Comparação de bases.

Validação de integrações.


O papel do NULL

Uma das maiores dificuldades dos iniciantes.

Imagine.

Maria nunca comprou.

O resultado será

Maria

NULL

Não escreva

WHERE VALOR=0

Porque NULL não é zero.

Use

WHERE VALOR IS NULL

Parece detalhe.

Mas não é.


O problema da multiplicação de registros

Esse é um conceito que surpreende muitos programadores COBOL.

Imagine.

Um cliente.

Cinco pedidos.

CLIENTE

João
PEDIDO

101

102

103

104

105

Resultado do JOIN.

João

101

João

102

João

103

João

104

João

105

Um registro virou cinco.

Isso é perfeitamente normal.

É consequência da cardinalidade.


Cardinalidade

Existem quatro situações clássicas.

Um para Um

Pessoa

CPF

Cada pessoa possui apenas um CPF.


Um para Muitos

Cliente

Pedidos

Um cliente possui vários pedidos.

É o relacionamento mais comum.


Muitos para Um

Milhares de pedidos.

Um cliente.

É apenas a visão inversa.


Muitos para Muitos

Aluno

Disciplina

Um aluno cursa várias disciplinas.

Uma disciplina possui vários alunos.

Nesse caso normalmente existe uma terceira tabela intermediária.


O erro que derruba servidores

Todo DBA conhece essa história.

Um desenvolvedor escreve:

SELECT *

FROM CLIENTE,

PEDIDO;

Ou

JOIN

sem ON

Resultado.

Produto Cartesiano.

Se houver:

100.000 clientes

100.000 pedidos

O banco produzirá

10 bilhões de combinações.

Pode consumir CPU, memória e I/O de forma devastadora.

Por isso, nunca execute um JOIN sem uma condição de relacionamento bem definida.


Como o DB2 realmente executa um JOIN?

Aqui entramos no mundo do IBM Mainframe.

Você escreve SQL.

Mas quem decide o caminho é o Otimizador do DB2.

Ele analisa dezenas de fatores.

Quantidade de registros.

Índices.

Estatísticas.

Cardinalidade.

Distribuição dos valores.

Buffer Pool.

Espaço disponível.

Custo estimado.

No final...

Escolhe um plano de execução.

É semelhante ao GPS.

Você informa o destino.

Ele calcula a melhor rota.


Nested Loop Join

Imagine duas listas telefônicas.

Você pega um nome.

Procura na outra lista.

Repete.

Esse é o Nested Loop.

Cliente

↓

Índice

↓

Pedido

Excelente quando existe índice.

Muito utilizado em consultas seletivas.


Merge Join

Agora imagine duas listas ordenadas alfabeticamente.

Você percorre ambas ao mesmo tempo.

Sem voltar.

Sem pesquisar novamente.

Muito eficiente para grandes conjuntos já classificados.


Hash Join

Agora imagine uma tabela hash.

Os registros menores são colocados em memória.

Depois a outra tabela apenas consulta essa estrutura.

É extremamente rápido para determinadas situações.


O papel dos índices

Sem índices...

O banco precisa procurar registro por registro.

Com índices...

Ele encontra rapidamente os dados desejados.

Imagine um livro de 2.000 páginas.

Sem índice.

Você folheia página por página.

Com índice.

Vai diretamente ao assunto.

É exatamente isso que acontece.


RUNSTATS

No DB2 existe um utilitário extremamente importante.

RUNSTATS.

Ele atualiza as estatísticas do banco.

Quantidade de linhas.

Número de páginas.

Distribuição dos valores.

Percentual de registros.

Sem essas informações...

O otimizador pode escolher um caminho ruim.

É como dirigir sem GPS.


EXPLAIN

Todo desenvolvedor Mainframe deveria aprender EXPLAIN.

Ele responde perguntas como:

  • Qual índice será utilizado?

  • Quantas páginas serão lidas?

  • Haverá Tablespace Scan?

  • Será usado Hash Join?

  • Nested Loop?

  • Merge Join?

O EXPLAIN é uma janela para o cérebro do DB2.

Não basta escrever SQL correto.

É preciso entender como ele será executado.


JOIN não é apenas SQL

Muitos iniciantes acreditam que JOIN pertence exclusivamente ao SQL.

Na verdade...

JOIN é um conceito matemático.

Baseado em Álgebra Relacional.

Projetos.

Seleções.

Uniões.

Diferenças.

Interseções.

Produto Cartesiano.

Todos esses operadores são estudados muito antes do SQL existir.

SQL apenas transformou essas ideias em uma linguagem prática.


A evolução para Big Data

Mesmo tecnologias modernas continuam utilizando o conceito de JOIN.

Spark SQL.

Hive.

Snowflake.

BigQuery.

Databricks.

DuckDB.

PostgreSQL.

Oracle.

SQL Server.

Todos executam JOINs.

Mudam os algoritmos.

Mudam as otimizações.

Mas a teoria continua exatamente a mesma criada por Edgar Codd há mais de cinquenta anos.

Isso demonstra a força de uma boa ideia.


O que um Programador COBOL Padawan deve levar desta conversa?

Se você está começando sua jornada em informática, talvez pense que JOIN é apenas mais uma palavra da linguagem SQL.

Não é.

JOIN representa uma mudança de mentalidade.

No mundo procedural, típico de muitos programas COBOL tradicionais, você descreve passo a passo como localizar, ler e combinar registros. No mundo relacional, você descreve o que deseja obter, e o banco de dados decide a melhor estratégia para alcançar esse resultado.

Essa diferença parece sutil, mas muda completamente a forma de projetar sistemas.

Ao dominar JOINs, você deixa de enxergar tabelas como arquivos isolados e passa a vê-las como partes de uma grande rede de relacionamentos. É essa visão que permite construir consultas elegantes, sistemas escaláveis e aplicações capazes de responder rapidamente a perguntas complexas sobre milhões — ou até bilhões — de registros.

Da próxima vez que escrever um INNER JOIN, lembre-se de que não está apenas unindo duas tabelas. Está utilizando um dos conceitos mais elegantes da Álgebra Relacional, aperfeiçoado por décadas de pesquisa e otimizado continuamente pelos maiores bancos de dados do mundo.

E essa é uma das grandes lições da engenharia de software: as tecnologias evoluem, as linguagens mudam, o hardware se transforma, mas os fundamentos permanecem. Quem aprende esses fundamentos não está apenas estudando SQL; está construindo uma base sólida para compreender qualquer plataforma de dados, do IBM Z aos ambientes distribuídos em nuvem.

No Bellacosa Mainframe, costumamos dizer que um verdadeiro COBOL Padawan não coleciona apenas comandos. Ele coleciona maneiras diferentes de pensar. Porque, no fim das contas, programar nunca foi apenas escrever código. Programar é aprender a conversar com a lógica que organiza o mundo dos dados. E os JOINs são uma das linguagens mais poderosas dessa conversa.

O Caso da Ponte Invisível : Quando Sherlock Holmes Descobriu que Existiam Estradas Secretas Entre Mainframes

 

Bellacosa Mainframe e o caso da ponte invisivel entre mainframes

☕ Um Café no Bellacosa Mainframe

O Caso da Ponte Invisível

Quando Sherlock Holmes Descobriu que Existiam Estradas Secretas Entre Mainframes

"Nem todas as conexões aparecem nos diagramas. Algumas apenas deixam rastros... e apenas um bom programador COBOL consegue percebê-los."


Era uma madrugada fria.

As luzes do CPD permaneciam acesas como estrelas artificiais iluminando um universo que poucas pessoas conheciam.

Os discos DASD giravam silenciosamente.

As impressoras de linha descansavam.

Os operadores observavam dezenas de consoles enquanto milhares de transações bancárias cruzavam o país.

Foi então que Sherlock Holmes colocou uma xícara de café sobre um terminal IBM 3270 e comentou:

Watson... existe algo estranho.

— "O quê?"

Um cliente acabou de consultar o saldo da conta. O programa está neste CICS... mas o saldo veio de outro mainframe localizado a centenas de quilômetros.

Watson arregalou os olhos.

— "Magia?"

Holmes sorriu.

Não... chama-se ISC.

E assim começava mais um dos casos do Bellacosa Mainframe.


O Mistério da Comunicação Invisível

Todo iniciante imagina que um programa COBOL conversa apenas com os arquivos existentes dentro do próprio computador.

Seria lógico pensar assim.

Mas o mundo corporativo nunca foi simples.

Imagine um grande banco.

Existe apenas um computador?

Claro que não.

Pode haver:

  • dezenas de IBM Z

  • centenas de regiões CICS

  • milhares de programas COBOL

  • milhões de clientes simultâneos

Então surge uma pergunta.

Como um programa que está rodando em São Paulo consegue consultar um cadastro existente em Brasília?

Ou um sistema instalado no Rio de Janeiro acessar uma conta localizada em Curitiba?

É aí que entra o protagonista desta investigação.

ISC — InterSystem Communication.


Primeiro precisamos entender o território

Antes de compreender o ISC precisamos conhecer seu "primo".

O famoso MRO.

Muitos iniciantes confundem os dois.

Isso acontece porque ambos fazem praticamente a mesma coisa.

Mas existe uma diferença gigantesca.

Imagine um condomínio.

Você mora na Torre A.

Seu amigo mora na Torre B.

Para visitá-lo basta atravessar o jardim.

Essa caminhada representa o MRO.

Agora imagine visitar um amigo que mora em outro estado.

Você precisará viajar de avião.

Essa viagem representa o ISC.

A lógica continua sendo comunicação.

O caminho é completamente diferente.


MRO: o corredor interno

No artigo anterior vimos que uma arquitetura típica pode ser:

Usuário

↓

TOR

↓

AOR

↓

FOR

↓

VSAM

Todas essas regiões pertencem ao mesmo ambiente z/OS.

A comunicação ocorre por MRO.

É praticamente um corredor interno.

Tudo acontece "dentro da mesma casa".


ISC: a rodovia interestadual

Agora imagine isto.

Datacenter São Paulo

↓

CICS A

=====================

Rede

=====================

↓

CICS B

↓

Datacenter Brasília

Agora já não existe um simples corredor.

Existe uma estrada.

Essa estrada chama-se ISC.

Ela permite que sistemas completamente independentes conversem como se fossem vizinhos.


O verdadeiro significado de InterSystem Communication

Muita gente acredita que ISC apenas troca mensagens.

Na verdade ele faz muito mais.

Ele permite que um CICS utilize recursos existentes em outro CICS.

Esses recursos podem ser:

• programas COBOL

• transações

• arquivos VSAM

• tabelas DB2

• filas

• serviços

• APIs

Na prática...

Um sistema pode "emprestar" recursos para outro.

É como uma enorme biblioteca.

Você não precisa comprar todos os livros.

Basta pedir emprestado.


Um banco de verdade

Vamos imaginar o Banco Bellacosa.

Ele possui três grandes centros.

São Paulo.

Rio de Janeiro.

Brasília.

Cada um executa uma função.

São Paulo:

  • Internet Banking

  • PIX

  • Aplicativo

Rio:

  • Cartões

Brasília:

  • Cadastro

  • Contas

  • Crédito

Quando um cliente consulta seu saldo:

Aplicativo

↓

São Paulo

↓

ISC

↓

Brasília

↓

DB2

↓

Resposta

↓

Cliente

Perceba algo curioso.

O usuário acredita que tudo aconteceu no mesmo computador.

Mas não.

A transação atravessou uma rede inteira.


O programador nunca percebe

Este talvez seja o aspecto mais fascinante.

Você programa normalmente.

Escreve COBOL.

Utiliza EXEC CICS.

Recebe os dados.

Para você parece local.

Mas o CICS trabalha nos bastidores.

Ele localiza o sistema remoto.

Abre comunicação.

Transfere informações.

Recebe a resposta.

Entrega os dados ao programa.

Tudo isso em poucos milissegundos.

É quase mágica.


A diferença que cai em entrevistas

Esta pergunta aparece há décadas.

"Qual a diferença entre MRO e ISC?"

A resposta curta:

MRO comunica regiões do mesmo z/OS.

ISC comunica sistemas diferentes.

Mas existe uma resposta muito melhor.

MRO resolve o problema da distribuição interna.

ISC resolve o problema da distribuição geográfica.

Essa pequena frase costuma impressionar entrevistadores.


Um exemplo ainda maior

Imagine uma companhia aérea.

O sistema de venda de passagens está em um datacenter.

O programa de milhagem está em outro.

O controle de bagagens em outro.

O sistema meteorológico em outro.

Mesmo assim o passageiro compra uma passagem em menos de cinco segundos.

Como?

Graças a tecnologias como ISC.

Cada sistema executa apenas sua especialidade.


A evolução da tecnologia

Nos anos 1970 era comum existir apenas um grande CICS.

Depois vieram dezenas.

Depois centenas.

Hoje encontramos arquiteturas gigantescas.

Cliente

↓

API

↓

z/OS Connect

↓

CICS

↓

ISC

↓

Outro CICS

↓

DB2

Observe algo interessante.

Mesmo quando você utiliza REST.

Mesmo quando utiliza APIs.

Mesmo quando utiliza aplicações Java.

Em muitos casos...

Lá no fundo...

Existe um ISC funcionando silenciosamente.


O que realmente viaja pela rede?

Essa é uma dúvida comum.

O programa COBOL inteiro atravessa a rede?

Não.

Normalmente trafegam:

  • parâmetros

  • comandos

  • dados

  • respostas

É semelhante a fazer uma ligação telefônica.

Você não envia sua casa inteira.

Apenas sua voz.


Como era antigamente?

Nos primeiros anos do CICS predominava o SNA.

Depois vieram APPC e LU6.2.

Hoje o mais comum é encontrar IPIC utilizando TCP/IP.

Isso mostra como o mainframe evolui.

Ele preserva compatibilidade.

Mas também acompanha novas tecnologias.

É uma das razões pelas quais sistemas escritos há quarenta anos continuam funcionando.


Um segredo que pouca gente conhece

Você sabia que existem bancos onde uma única operação pode atravessar cinco ou seis CICS diferentes?

É verdade.

Imagine:

Cliente

TOR

AOR

ISC

Outro AOR

MQ

Outro sistema

DB2

Resposta

Tudo isso ocorre antes de o cliente terminar de piscar.


O preço da distância

Existe uma regra simples.

Quanto maior a distância.

Maior a latência.

Isso significa que um ISC entre dois CICS no mesmo prédio costuma ser mais rápido do que entre cidades diferentes.

Mesmo assim estamos falando de tempos extremamente baixos.

Por isso grandes bancos conseguem atender milhões de clientes simultaneamente.


Segurança: ninguém entra sem identificação

Imagine que qualquer sistema pudesse conversar livremente com outro.

Seria um desastre.

Por isso entram em cena diversos mecanismos de proteção.

Entre eles:

  • RACF

  • autenticação

  • autorização

  • criptografia

  • auditoria

  • SMF

Nada acontece sem registro.

No universo IBM Z praticamente tudo deixa rastros.

É por isso que investigadores de performance conseguem reconstruir uma transação inteira.


Onde o ISC aparece sem você perceber?

Você provavelmente já utilizou ISC.

Ao:

  • sacar dinheiro

  • pagar boleto

  • fazer PIX

  • comprar passagem aérea

  • consultar plano de saúde

  • emitir nota fiscal

  • realizar declaração de imposto

Em todos esses ambientes existe uma enorme chance de existir comunicação entre diferentes sistemas CICS.


Curiosidades do Mundo Mainframe 🕵️

Curiosidade 1

O nome InterSystem Communication surgiu porque, originalmente, o objetivo era conectar sistemas completamente independentes, não apenas regiões CICS.


Curiosidade 2

Muitos ambientes antigos ainda possuem conexões SNA funcionando perfeitamente após décadas de operação.


Curiosidade 3

Existem empresas que mantêm ambientes de produção e contingência em estados diferentes utilizando ISC como parte da estratégia operacional.


Curiosidade 4

É perfeitamente possível que uma transação utilize MRO e ISC na mesma execução.

Exemplo:

Cliente

↓

TOR

↓

MRO

↓

AOR

↓

ISC

↓

Outro Mainframe

↓

DB2

Dicas para quem está aprendendo COBOL

Não tente decorar siglas.

Entenda responsabilidades.

Pergunte sempre:

Quem recebe?

Quem executa?

Quem possui os arquivos?

Quem conversa com outro sistema?

Quando responder essas perguntas automaticamente, TOR, AOR, FOR, MRO e ISC passam a fazer sentido.


Passo a passo mental para entender uma arquitetura CICS

Sempre siga esta sequência:

Passo 1

Quem iniciou a transação?

Passo 2

Quem recebeu?

(TOR)

Passo 3

Quem executou?

(AOR)

Passo 4

Quem possui os dados?

(FOR ou DB2)

Passo 5

Os dados estão neste sistema?

Se sim:

MRO.

Se não:

ISC.

Essa pequena metodologia ajuda muito em entrevistas técnicas e na leitura de diagramas corporativos.


O Easter Egg ☕

Desde o primeiro artigo desta série existe um personagem escondido.

Sherlock Holmes.

Mas existe outro.

Pouca gente percebeu.

Sempre que aparece uma xícara de café sobre um terminal 3270, ela simboliza algo muito maior.

O café representa o programador.

O terminal representa a tecnologia.

Enquanto existir alguém curioso o suficiente para sentar diante daquele terminal, fazer perguntas e investigar como as coisas realmente funcionam, o mainframe continuará evoluindo.

O verdadeiro combustível do IBM Z nunca foram apenas MIPS, processadores ou discos. Foram pessoas curiosas.


O Grande Detetive Chega à Conclusão

Sherlock terminou o café.

Olhou novamente para o console.

Sorriu discretamente.

— "Watson... agora sabemos por que o cliente recebeu o saldo tão rapidamente."

— "Porque o banco possui computadores muito rápidos?"

Holmes respondeu:

— "Não apenas isso."

"Porque milhares de engenheiros passaram décadas construindo pontes invisíveis entre sistemas. O cliente jamais verá essas pontes. Mas sem elas o banco inteiro pararia."

Watson permaneceu em silêncio.

Na tela verde do 3270 apareceu apenas uma única mensagem:

TRANSACTION COMPLETED

Holmes levantou-se.

Vestiu o sobretudo.

Apagou o cachimbo imaginário.

E desapareceu pelos corredores do CPD.

Naquela noite, ninguém percebeu que o maior mistério nunca foi descobrir o que era o ISC.

O verdadeiro mistério era entender como bilhões de transações conseguem atravessar fronteiras, datacenters e continentes em silêncio absoluto, mantendo a confiança de bancos, governos e empresas há mais de meio século.

Talvez seja justamente esse o maior segredo do universo IBM Mainframe: as tecnologias mais importantes raramente aparecem para o usuário final. Elas trabalham nas sombras, como bons detetives das antigas revistas noir dos anos 1950, resolvendo casos antes mesmo que alguém perceba que existia um problema.

E, quando você finalmente dominar TOR, AOR, FOR, MRO e ISC, descobrirá que não aprendeu apenas um conjunto de siglas. Aprendeu a enxergar a malha invisível que sustenta uma parte significativa da economia mundial, transação após transação, café após café.

quinta-feira, 17 de maio de 2018

☕🔥 15 ANIMES PSICOLÓGICOS QUE DESTRUÍRAM A SANIDADE DOS OTAKUS — O LADO SOMBRIO DOS ANIMES QUE VOCÊ NUNCA ESQUECE

 

Bellacosa Mainframe e 15 animes que podem destruir sua mente

☕🔥 15 ANIMES PSICOLÓGICOS QUE DESTRUÍRAM A SANIDADE DOS OTAKUS — O LADO SOMBRIO DOS ANIMES QUE VOCÊ NUNCA ESQUECE

Existe um momento na vida de todo fã de anime em que ele percebe uma verdade perturbadora:

alguns animes não querem apenas entreter.

🔥 Eles querem te desmontar psicologicamente.

Essas obras:

  • mexem com trauma

  • paranoia

  • identidade

  • loucura

  • isolamento

  • violência emocional

  • existencialismo

E quando analisamos isso ao estilo Bellacosa Mainframe…

descobrimos algo fascinante:

muitos desses animes funcionam como sistemas críticos entrando lentamente em corrupção lógica.

A mente humana vira:

  • o sistema operacional

  • o banco de dados

  • o ponto de falha

E o resultado frequentemente é:

🔥 colapso psicológico em produção.


☕🔥 1. SHOUJO TSUBAKI (MIDORI)

📅 Ano

1992

🇯🇵 Título Original

少女椿 (Shōjo Tsubaki)

✍️ Autor

Suehiro Maruo

📺 Mídia

OVA / Filme experimental

🎞️ Episódios

1

👤 Personagens

  • Midori

  • Sr. Arashi

  • Freaks do circo

☕ Resumo

Uma garota órfã entra em um circo grotesco e mergulha num pesadelo psicológico extremo.

☕ História

Mistura:

  • abuso

  • decadência

  • trauma

  • surrealismo grotesco


☕ Easter Eggs

Inspirado no movimento ero-guro japonês.


☕ Curiosidades

🔥 Foi censurado e proibido em diversos lugares.


☕🔥 2. PERFECT BLUE

📅 Ano

1997

🇯🇵 Original

パーフェクトブルー

✍️ Autor

Yoshikazu Takeuchi / Satoshi Kon

📺 Mídia

Filme

👤 Personagens

  • Mima Kirigoe

  • Rumi

  • Me-Mania

☕ Resumo

Uma idol abandona a carreira musical e começa a perder a noção entre realidade e paranoia.

☕ História

Um thriller psicológico brutal sobre:

  • obsessão

  • fama

  • identidade


☕ Easter Eggs

Diversas cenas inspiraram:

  • Black Swan

  • Requiem for a Dream


☕ Curiosidades

🔥 Satoshi Kon virou lenda após esse filme.


☕🔥 3. MADE IN ABYSS

📅 Ano

2017

🇯🇵 Original

メイドインアビス

✍️ Autor

Akihito Tsukushi

📺 Mídia

Anime / Mangá / Filmes

🎞️ Episódios

2 temporadas + filmes

👤 Personagens

  • Riko

  • Reg

  • Nanachi

☕ Resumo

Uma aventura infantil aparentemente inocente vira horror existencial.

☕ História

O Abyss é praticamente:
🔥 um sistema operacional infernal vivo.

Quanto mais fundo:

  • pior o trauma

  • pior a maldição


☕ Easter Eggs

Camadas do Abyss lembram círculos do inferno de Dante.


☕ Curiosidades

🔥 O contraste “fofura vs horror” traumatizou muita gente.


☕🔥 4. HIGURASHI WHEN THEY CRY

📅 Ano

2006

🇯🇵 Original

ひぐらしのなく頃に

✍️ Autor

Ryukishi07

📺 Mídia

Visual Novel / Anime

🎞️ Episódios

50+

👤 Personagens

  • Keiichi

  • Rena

  • Satoko

  • Rika

☕ Resumo

Uma vila aparentemente tranquila esconde paranoia coletiva e assassinatos brutais.

☕ História

Loops temporais, trauma e insanidade se misturam.


☕ Easter Eggs

Referências ocultas aparecem antes das revelações principais.


☕ Curiosidades

🔥 Ficou famoso pelas expressões faciais perturbadoras.


☕🔥 5. DEVILMAN CRYBABY

📅 Ano

2018

🇯🇵 Original

デビルマン

✍️ Autor

Go Nagai

📺 Mídia

Anime Netflix

🎞️ Episódios

10

👤 Personagens

  • Akira

  • Ryo

  • Miki

☕ Resumo

Demônios e humanidade entram numa espiral brutal de violência e desespero.

☕ História

Uma crítica pesada:

  • à humanidade

  • ao medo

  • à histeria coletiva


☕ Easter Eggs

Ryo representa uma releitura moderna de Satanás.


☕ Curiosidades

🔥 Final considerado um dos mais devastadores dos animes.


☕🔥 6. ELFEN LIED

📅 Ano

2004

🇯🇵 Original

エルフェンリート

✍️ Autor

Lynn Okamoto

📺 Mídia

Anime / Mangá

🎞️ Episódios

13 + OVA

👤 Personagens

  • Lucy

  • Kouta

  • Nana

☕ Resumo

Mutantes perseguidos entram num ciclo brutal de violência e trauma.

☕ História

Explora:

  • abuso

  • rejeição

  • sofrimento humano


☕ Easter Eggs

A abertura usa referências à arte de Gustav Klimt.


☕ Curiosidades

🔥 Mistura extrema de violência e melancolia.


☕🔥 7. SERIAL EXPERIMENTS LAIN

📅 Ano

1998

🇯🇵 Original

シリアルエクスペリメンツレイン

✍️ Autor

Yasuyuki Ueda

📺 Mídia

Anime

🎞️ Episódios

13

👤 Personagens

  • Lain

  • Alice

  • Eiri

☕ Resumo

Uma garota mergulha numa internet experimental que dissolve a realidade.

☕ História

Cyberpunk psicológico extremamente filosófico.


☕ Easter Eggs

Previu:

  • hiperconectividade

  • identidade digital

  • internet social


☕ Curiosidades

🔥 Hoje parece assustadoramente profético.


☕🔥 8. PARANOIA AGENT

📅 Ano

2004

🇯🇵 Original

妄想代理人

✍️ Autor

Satoshi Kon

📺 Mídia

Anime

🎞️ Episódios

13

👤 Personagens

  • Lil' Slugger

  • Tsukiko

  • Detetives

☕ Resumo

Ataques misteriosos revelam traumas escondidos da sociedade.

☕ História

A paranoia coletiva vira epidemia psicológica.


☕ Easter Eggs

Cada episódio representa uma faceta da fuga psicológica.


☕ Curiosidades

🔥 Um dos trabalhos mais inteligentes de Satoshi Kon.


☕🔥 9. ANOTHER

📅 Ano

2012

🇯🇵 Original

アナザー

✍️ Autor

Yukito Ayatsuji

📺 Mídia

Anime / Novel

🎞️ Episódios

12

👤 Personagens

  • Mei Misaki

  • Kouichi

☕ Resumo

Uma sala de aula amaldiçoada mergulha em mortes brutais.

☕ História

Paranoia e medo coletivo dominam tudo.


☕ Easter Eggs

Diversos sinais antecipam quem está “morto”.


☕ Curiosidades

🔥 O guarda-chuva virou símbolo traumático do anime.


☕🔥 10. TEXHNOLYZE

📅 Ano

2003

🇯🇵 Original

Texhnolyze

✍️ Autor

Chiaki J. Konaka

📺 Mídia

Anime

🎞️ Episódios

22

👤 Personagens

  • Ichise

  • Ran

  • Yoshii

☕ Resumo

Cyberpunk existencial sobre decadência humana.

☕ História

Um mundo subterrâneo caminha lentamente para o colapso total.


☕ Easter Eggs

A cidade Lux simboliza decomposição civilizacional.


☕ Curiosidades

🔥 Considerado um dos animes mais depressivos já feitos.


☕🔥 11. CORPSE PARTY

📅 Ano

2013

🇯🇵 Original

コープスパーティー

✍️ Autor

Makoto Kedouin

📺 Mídia

OVA / Game

🎞️ Episódios

4

👤 Personagens

  • Naomi

  • Seiko

  • Ayumi

☕ Resumo

Estudantes presos numa escola amaldiçoada enfrentam horror extremo.

☕ História

Mistura:

  • fantasmas

  • mutilação

  • trauma psicológico


☕ Easter Eggs

Conexões ocultas entre timelines aparecem nos games.


☕ Curiosidades

🔥 Extremamente pesado até para fãs de horror.


☕🔥 12. MONSTER

📅 Ano

2004

🇯🇵 Original

モンスター

✍️ Autor

Naoki Urasawa

📺 Mídia

Anime / Mangá

🎞️ Episódios

74

👤 Personagens

  • Dr. Tenma

  • Johan Liebert

  • Nina

☕ Resumo

Um médico salva um garoto que cresce e vira um monstro psicológico.

☕ História

Explora:

  • mal absoluto

  • manipulação

  • niilismo


☕ Easter Eggs

Referências constantes à Alemanha pós-Guerra Fria.


☕ Curiosidades

🔥 Johan é considerado um dos maiores vilões dos animes.


☕🔥 13. SHIKI

📅 Ano

2010

🇯🇵 Original

屍鬼

✍️ Autor

Fuyumi Ono

📺 Mídia

Anime / Novel

🎞️ Episódios

22

👤 Personagens

  • Toshio

  • Sunako

  • Natsuno

☕ Resumo

Vampirismo como metáfora brutal sobre sobrevivência humana.

☕ História

O anime questiona:
🔥 quem realmente é o monstro.


☕ Easter Eggs

Inspirado parcialmente em Salem’s Lot de Stephen King.


☕ Curiosidades

🔥 O visual extravagante esconde um horror extremamente cruel.


☕🔥 14. HAPPY SUGAR LIFE

📅 Ano

2018

🇯🇵 Original

ハッピーシュガーライフ

✍️ Autor

Tomiyaki Kagisora

📺 Mídia

Anime / Mangá

🎞️ Episódios

12

👤 Personagens

  • Satou

  • Shio

☕ Resumo

Obsessão afetiva levada ao limite da insanidade.

☕ História

Uma relação aparentemente “fofa” vira pesadelo psicológico.


☕ Easter Eggs

As cores doces escondem simbolismo perturbador.


☕ Curiosidades

🔥 Um dos animes mais desconfortáveis emocionalmente.


☕🔥 15. BERSERK

📅 Ano

1997

🇯🇵 Original

ベルセルク

✍️ Autor

Kentaro Miura

📺 Mídia

Mangá / Anime / Filmes

🎞️ Episódios

25 (1997)

👤 Personagens

  • Guts

  • Griffith

  • Casca

☕ Resumo

Fantasia sombria sobre ambição, trauma e destino.

☕ História

Berserk mistura:

  • guerra

  • horror

  • filosofia

  • sofrimento humano


☕ Easter Eggs

A Marca do Sacrifício aparece repetidamente em detalhes ocultos.


☕ Curiosidades

🔥 O Eclipse traumatizou gerações de fãs.


☕🔥 CONCLUSÃO — O VERDADEIRO HORROR NÃO ESTÁ NOS MONSTROS… MAS NA MENTE HUMANA

Esses animes possuem algo em comum:

o inimigo raramente é apenas físico.

Frequentemente é:

  • trauma

  • identidade

  • paranoia

  • obsessão

  • vazio existencial

E talvez seja exatamente isso que os torna inesquecíveis.

Porque no fim…

🔥 os monstros mais assustadores dos animes quase sempre nascem dentro da própria mente humana.

quarta-feira, 16 de maio de 2018

🔥☕ “O MAINFRAME NÃO ESTÁ LENTO — VOCÊ É QUE NÃO OLHOU O DB2 PELO PAINEL DE COMANDO” 💾🚨

 

Bellacosa Mainframe Painel de Comando do DB2

🔥☕ “O MAINFRAME NÃO ESTÁ LENTO — VOCÊ É QUE NÃO OLHOU O DB2 PELO PAINEL DE COMANDO” 💾🚨

O laboratório definitivo de DB2 Commands para Sysprogs, DBAs e sobreviventes de produção no IBM Z

Existe um momento na vida de todo profissional de Mainframe em que ele percebe uma verdade brutal:

O problema não está no COBOL.
Não está no CICS.
Não está no batch.
Muitas vezes… o DB2 já estava gritando há horas no painel de comandos.

E é exatamente aí que nasce o verdadeiro operador de produção, o DBA raiz e o sysprog veterano.

Porque enquanto muita gente depende:

  • de dashboard web,
  • monitor colorido,
  • ferramenta gráfica,
  • console “moderninho”,

o profissional de IBM Z abre um terminal 3270 e digita:

-DIS THD(*)

E em segundos ele enxerga:

  • travamentos,
  • contenção,
  • deadlocks,
  • pressão de memória,
  • gargalo de I/O,
  • DDF congestionado,
  • utilities presas,
  • aplicações morrendo lentamente.

Tudo isso diretamente no coração do DB2.


💾 O QUE É O DB2 COMMAND FACILITY?

O DB2 Command Facility é o mecanismo operacional do DB2 z/OS usado para:

  • monitoramento,
  • administração,
  • troubleshooting,
  • recovery,
  • tuning,
  • análise de performance.

Ele permite conversar diretamente com o subsystem DB2.

Na prática:

  • você não executa SQL,
  • você conversa com o motor interno do DB2.

É quase como abrir um shell administrativo do banco.


🔥 O PAINEL QUE ASSUSTA INICIANTES… E SALVA PRODUÇÃO

A clássica tela:

DB2 COMMANDS

parece simples.

Mas ela é uma das interfaces mais poderosas do ecossistema IBM Z.

Ali vivem comandos capazes de:

  • parar databases,
  • analisar locks,
  • detectar gargalos,
  • visualizar threads,
  • monitorar DDF,
  • inspecionar bufferpools,
  • acompanhar utilities,
  • identificar problemas de log.

Em ambientes bancários isso significa:

milhões de transações por minuto.


🚨 O PRIMEIRO ERRO QUE TODO MUNDO COMETE

Você digitou:

-DIS

e recebeu:

REQUIRED KEYWORD IS MISSING

Esse erro é quase um ritual de iniciação 😄

O DB2 funciona com estrutura:

-VERBO OBJETO(OPÇÕES)

Exemplo:

ComandoFunção
-DIS THREAD(*)Mostra threads
-DIS DB(*)Mostra databases
-DIS LOGMostra logs
-DIS UTIL(*)Mostra utilities
-DIS DDFMostra Distributed Data Facility

🔥 DISPLAY THREAD — O ELETROCARDIOGRAMA DO DB2

Comando

-DIS THD(*)

ou:

-DIS THREAD(*)

💣 O QUE ELE MOSTRA?

Esse comando revela:

  • conexões ativas,
  • jobs batch,
  • usuários TSO,
  • transações CICS,
  • conexões distribuídas,
  • planos DB2,
  • waits,
  • locks.

É literalmente o “quem está vivo” dentro do DB2.


🚨 O QUE UM SYSPOG PROCURA?

🔥 STATUS=WAIT

Pode indicar:

  • lock contention,
  • deadlock,
  • timeout,
  • gargalo I/O.

🔥 THREADS DDF EXCESSIVAS

Pode indicar:

  • avalanche de conexão distribuída,
  • problema de aplicação Java,
  • pool mal configurado.

🔥 CPU DISPARANDO

Às vezes um único thread:

  • está executando SQL ruim,
  • segurando recurso crítico,
  • consumindo zIIP,
  • causando storm de lock.

💾 DISPLAY DATABASE — A RADIOGRAFIA DO STORAGE LÓGICO

Comando

-DIS DB(*)

ou:

-DIS DB(DBPROD) SP(*)

🔥 O QUE ISSO ENTREGA?

Mostra:

  • status databases,
  • tablespaces,
  • pendências recovery,
  • copy pending,
  • utility pending,
  • read only,
  • stop states.

🚨 STATUS QUE ASSUSTAM DBA

StatusProblema
STOPDatabase indisponível
UTUtility executando
COPYBackup pendente
CHKPCheck pending
RECOVERRecovery necessário

💣 O QUE ISSO SIGNIFICA EM PRODUÇÃO?

Um database em:

STOP

pode derrubar:

  • internet banking,
  • PIX,
  • cartão,
  • ATM,
  • APIs distribuídas.

🔥 DISPLAY DDF — O “PULMÃO” DAS CONEXÕES DISTRIBUÍDAS

Comando

-DIS DDF

💾 O QUE É DDF?

DDF = Distributed Data Facility.

É o componente responsável pelas conexões:

  • JDBC,
  • Java,
  • APIs,
  • microservices,
  • aplicações distribuídas,
  • Linux,
  • cloud.

Ou seja:

praticamente o mundo moderno acessa DB2 via DDF.


🚨 O QUE O SYSPOG ANALISA?

STATUS=STOPD

🔥 Grave.

Significa:

  • aplicações externas perderam conexão.

CONDBAT EXCEDIDO

Pode indicar:

  • excesso de conexões,
  • pool mal configurado,
  • tempestade de microservices.

💣 DISPLAY LOCKS — O DETETIVE DE CRIMES EM PRODUÇÃO

Comando

-DIS LOCKS

🔥 O QUE ELE MOSTRA?

  • locks ativos,
  • quem segura lock,
  • recursos travados,
  • deadlocks,
  • waits.

💾 CENÁRIO CLÁSSICO

Batch noturno:

UPDATE MASSIVO

segura lock exclusivo.

Resultado:

  • CICS trava,
  • online para,
  • filas aumentam,
  • CPU sobe,
  • usuários reclamam.

E então o DBA roda:

-DIS LOCKS

e encontra o culpado.


🔥 DISPLAY UTIL — O “CENTRO CIRÚRGICO” DO DB2

Comando

-DIS UTIL(*)

💾 O QUE MOSTRA?

Utilities ativas:

  • REORG,
  • COPY,
  • LOAD,
  • RUNSTATS,
  • RECOVER.

🚨 O QUE UM DBA OBSERVA?

Utility presa

Pode indicar:

  • lock,
  • falta de espaço,
  • erro dataset,
  • deadlock utility.

REORG eterno

Pode indicar:

  • tablespace gigantesca,
  • I/O saturado,
  • SORT insuficiente.

🔥 DISPLAY LOG — O DNA TRANSACIONAL DO DB2

Comando

-DIS LOG

💾 O QUE ANALISAR?

  • active logs,
  • archive logs,
  • checkpoints,
  • dual logging,
  • status de escrita.

🚨 LOG LOTADO = CAOS

Se active logs saturam:

  • aplicações param,
  • commits travam,
  • DB2 entra em pressão severa.

Pouca gente percebe:

o log é literalmente o sistema nervoso do DB2.


🔥 DISPLAY BUFFERPOOL — O RAIO-X DA MEMÓRIA

Comando

-DIS BPOOL(*)

💾 O QUE É BUFFERPOOL?

Cache inteligente do DB2.

Armazena:

  • páginas,
  • índices,
  • dados recentes.

Quanto melhor o bufferpool:

  • menos disco,
  • menos I/O,
  • menos CPU.

🚨 O QUE UM SYSPOG ANALISA?

PGFIX(NO)

Pode aumentar:

  • paging,
  • CPU,
  • overhead.

VPSIZE PEQUENO

Pode causar:

  • sync I/O,
  • leituras físicas excessivas.

HIT RATIO BAIXO

Indica:

  • cache ineficiente,
  • memória insuficiente.

💣 A VERDADE QUE POUCOS ACEITAM

Muitos problemas “de SQL” são:

problemas de bufferpool.


🔥 EXECUTANDO VIA JCL BATCH

O verdadeiro poder aparece no batch.


💾 EXEMPLO REAL

//STEP1 EXEC PGM=IKJEFT01
//STEPLIB DD DISP=SHR,DSN=DSN910.SDSNLOAD
//SYSTSIN DD *
DSN SYSTEM(DB9G)
-DIS DDF
-DIS THD(*)
-DIS LOG
END
/*

🚨 O ERRO CLÁSSICO

Você encontrou:

IKJ56500I COMMAND DSN NOT FOUND

Isso significa:

  • SDSNLOAD ausente,
  • DB2 runtime não alocado,
  • comando DSN indisponível.

É um dos erros mais clássicos do mundo DB2 batch.


💾 O QUE É SDSNLOAD?

Biblioteca que contém:

  • DSN,
  • utilities,
  • runtime DB2,
  • SPUFI,
  • módulos administrativos.

Sem ela:

não existe DB2 no batch.


🔥 O QUE SEPARA JUNIOR DE VETERANO

O iniciante:

  • olha dashboard.

O veterano:

  • olha DISPLAY THREAD,
  • DISPLAY LOCKS,
  • DISPLAY LOG,
  • BUFFERPOOL,
  • utilities,
  • waits.

Porque ele sabe:

o DB2 sempre dá sinais antes do desastre.


☕ A FILOSOFIA DO SYSPOG MAINFRAME

No mundo distribuído:

  • muita gente troca ferramenta.

No IBM Z:

  • primeiro se entende o problema.

E o painel de comandos DB2 continua sendo:

  • rápido,
  • confiável,
  • preciso,
  • resiliente,
  • praticamente eterno.

Quarenta anos depois…
ele ainda está ali.

Piscando em verde, azul ou branco no 3270.

Esperando alguém digitar:

-DIS THD(*)

…e descobrir o que realmente está acontecendo dentro do Mainframe IBM Z 🔥💾

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988