Translate

quinta-feira, 23 de junho de 2022

DB2I sem Mistérios: o Portal Clássico que Leva o Programador COBOL Padawan do Primeiro SELECT ao BIND de Produção

 

Bellacosa Mainframe apresenta o db2i

☕ Um Café no Bellacosa Mainframe

DB2I sem Mistérios: o Portal Clássico que Leva o Programador COBOL Padawan do Primeiro SELECT ao BIND de Produção

Imagine a seguinte cena.

Você acabou de entrar no TSO. A tela preta surgiu diante de seus olhos como a entrada de uma antiga fortaleza digital. Depois de informar seu usuário, sua senha e atravessar os corredores do ISPF, você finalmente executa o comando que abre uma das áreas mais tradicionais do universo IBM Z.

Na tela aparece:

DB2I PRIMARY OPTION MENU

No canto superior direito:

SSID: DB9G

E logo abaixo, um conjunto de opções aparentemente simples:

1  SPUFI
2  DCLGEN
3  PROGRAM PREPARATION
4  PRECOMPILE
5  BIND/REBIND/FREE
6  RUN
7  DB2 COMMANDS
8  UTILITIES
D  DB2I DEFAULTS
X  EXIT

Para um iniciante, isso pode parecer apenas mais um menu antigo em modo texto.

Mas não se engane, jovem padawan.

Essa tela é uma verdadeira central de comando para o desenvolvimento de aplicações COBOL com Db2 no mainframe. Ela reúne, em um único lugar, grande parte da jornada que transforma uma instrução SQL escrita dentro de um programa COBOL em uma operação real, autorizada, otimizada e executada contra um banco de dados corporativo.

Estamos diante do DB2I, sigla para Db2 Interactive.

Ele é um dos portais clássicos do desenvolvimento no IBM Z.

Neste café, vamos atravessar cada porta desse menu, entender sua história, observar como ele funciona, descobrir o que acontece nos bastidores e acompanhar, passo a passo, o nascimento de um programa COBOL com SQL embutido.

Prepare sua caneca.

O Db2 está acordado.


Bellacosa Mainframe e o db2i no emulador 3270

1. O que é o DB2I?

O DB2I é uma interface interativa integrada ao ISPF que permite acessar diversas funções relacionadas ao Db2 for z/OS.

Ele não é o banco de dados propriamente dito.

Também não é o compilador COBOL.

Ele funciona como um grande painel de controle que organiza diferentes ferramentas, processos e utilitários do ecossistema Db2.

Por meio dele, o usuário pode:

  • executar comandos SQL;

  • gerar declarações de tabelas;

  • preparar programas para execução;

  • realizar precompile;

  • executar BIND e REBIND;

  • rodar programas;

  • emitir comandos administrativos;

  • executar utilitários;

  • configurar parâmetros pessoais.

Sua grande virtude é a integração.

Em vez de o programador precisar decorar vários comandos, jobs e programas utilitários, o DB2I apresenta painéis que solicitam os parâmetros necessários e, em muitos casos, gera ou submete o JCL correspondente.

É importante entender que o DB2I não eliminou o JCL.

Ele apenas oferece uma interface mais amigável para preparar ou executar processos que, por baixo da superfície, continuam dependendo de datasets, procedimentos catalogados, módulos de carga, bibliotecas, parâmetros, planos e packages.

O DB2I é, portanto, uma espécie de ponte entre o usuário e a complexidade da infraestrutura.


2. Em que ambiente estamos trabalhando?

A tela mostrada é acessada por meio de um emulador TN3270.

A arquitetura normalmente segue este caminho:

Computador do usuário
        |
        v
Emulador TN3270
        |
        v
TSO/E
        |
        v
ISPF
        |
        v
DB2I
        |
        v
Subsistema Db2

Cada camada possui uma função.

O TN3270 permite que o computador moderno se comporte como um terminal IBM 3270.

O TSO/E oferece a sessão interativa no z/OS.

O ISPF fornece os painéis, menus, editores e serviços de produtividade.

O DB2I organiza as funções relacionadas ao Db2.

Finalmente, o subsistema Db2 executa o trabalho real de gerenciamento de dados, SQL, locks, buffer pools, logs, recuperação, autorização e otimização.

O programador enxerga uma tela.

O sistema enxerga uma cadeia inteira de componentes.


3. O significado de SSID

No canto superior direito aparece:

SSID: DB9G

SSID significa:

Subsystem Identifier

É o identificador do subsistema Db2 ao qual a sessão está associada.

Em um mesmo ambiente z/OS podem existir vários subsistemas Db2.

Por exemplo:

DB2D = desenvolvimento
DB2T = testes
DB2H = homologação
DB2P = produção

Também podem existir subsistemas diferentes por aplicação, unidade de negócio, versão, data sharing group ou finalidade técnica.

O nome não precisa obrigatoriamente indicar o ambiente. Cada empresa define sua convenção.

O ponto essencial é este:

Sempre confirme em qual SSID você está trabalhando antes de executar comandos.

Essa é uma regra de ouro.

Um SELECT executado no ambiente errado pode causar apenas confusão.

Um DELETE executado no ambiente errado pode causar uma reunião de emergência com vinte pessoas, três gerentes, dois DBAs e um café que já perdeu a temperatura.


4. Opção 1 — SPUFI

A primeira opção é:

1 SPUFI

SPUFI significa:

SQL Processor Using File Input

Em muitas documentações antigas, também é descrito como uma interface para processar SQL armazenado em um dataset de entrada.

Na prática, ele permite escrever instruções SQL em um arquivo, executá-las e armazenar os resultados em outro arquivo.

É uma das ferramentas mais tradicionais do Db2 for z/OS.


4.1 Como o SPUFI funciona?

O fluxo básico é:

Dataset de entrada
       |
       v
Instruções SQL
       |
       v
SPUFI
       |
       v
Db2
       |
       v
Dataset de saída

O usuário informa:

  • o dataset que contém o SQL;

  • o dataset em que deseja receber o resultado;

  • parâmetros de execução;

  • formato da saída;

  • número máximo de linhas;

  • opções de commit;

  • isolamento.

Um exemplo de dataset de entrada:

SELECT EMPNO,
       FIRSTNME,
       LASTNAME,
       SALARY
FROM DSN8C10.EMP
ORDER BY LASTNAME;

O SPUFI envia a instrução ao Db2 e grava a resposta no dataset de saída.


4.2 Primeiro passo a passo com SPUFI

Suponha que você queira consultar uma tabela chamada CLIENTE.

Entre na opção 1.

Informe um dataset de entrada, por exemplo:

VAGNER.SQL.CONSULTA

Caso o dataset não exista, o DB2I poderá permitir sua alocação, dependendo das configurações.

No editor ISPF, escreva:

SELECT ID_CLIENTE,
       NOME_CLIENTE,
       LIMITE_CREDITO
FROM APP.CLIENTE
FETCH FIRST 20 ROWS ONLY;

Salve o membro ou dataset.

Retorne ao painel do SPUFI.

Informe o dataset de saída:

VAGNER.SQL.RESULTADO

Execute.

Depois, abra o resultado.

Você poderá ver algo semelhante a:

---------+---------+---------+---------+
ID_CLIENTE NOME_CLIENTE          LIMITE_CREDITO
---------+---------+---------+---------+
000001     ANA SILVA                    5000.00
000002     JOAO SOUZA                   3500.00
000003     MARIA COSTA                  8000.00
DSNE610I NUMBER OF ROWS DISPLAYED IS 3
DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL

O formato real varia conforme parâmetros, versão e configuração do ambiente.


4.3 Cuidados com SPUFI

O SPUFI não é apenas uma ferramenta de consulta.

Ele também pode executar:

INSERT
UPDATE
DELETE
CREATE
ALTER
DROP
GRANT
REVOKE

Portanto, trate-o com respeito.

Antes de executar:

DELETE FROM APP.CLIENTE;

verifique se faltou uma cláusula WHERE.

Uma pequena ausência pode transformar uma manutenção de um registro em uma limpeza completa da tabela.

Uma boa prática é primeiro executar:

SELECT COUNT(*)
FROM APP.CLIENTE
WHERE STATUS = 'I';

Depois:

SELECT *
FROM APP.CLIENTE
WHERE STATUS = 'I'
FETCH FIRST 50 ROWS ONLY;

Somente após validar os dados, executar:

DELETE FROM APP.CLIENTE
WHERE STATUS = 'I';

O padawan prudente consulta antes de alterar.


5. Opção 2 — DCLGEN

A segunda opção é:

2 DCLGEN

DCLGEN significa:

Declarations Generator

Sua finalidade é gerar declarações de tabela e estruturas de host variables para linguagens como COBOL.

Suponha que exista a tabela:

CREATE TABLE APP.CLIENTE
(
    ID_CLIENTE      INTEGER       NOT NULL,
    NOME_CLIENTE    VARCHAR(80)   NOT NULL,
    LIMITE_CREDITO  DECIMAL(11,2),
    DATA_CADASTRO   DATE,
    STATUS          CHAR(1)
);

O programa COBOL precisa conhecer a estrutura dos campos que serão usados nas instruções SQL.

O DCLGEN pode gerar algo semelhante a:

       EXEC SQL DECLARE APP.CLIENTE TABLE
       ( ID_CLIENTE      INTEGER NOT NULL,
         NOME_CLIENTE    VARCHAR(80) NOT NULL,
         LIMITE_CREDITO  DECIMAL(11,2),
         DATA_CADASTRO   DATE,
         STATUS          CHAR(1)
       ) END-EXEC.

Também gera a estrutura COBOL:

       01  DCLCLIENTE.
           10  ID-CLIENTE          PIC S9(9) COMP.
           10  NOME-CLIENTE.
               49 NOME-CLIENTE-LEN PIC S9(4) COMP.
               49 NOME-CLIENTE-TEXT PIC X(80).
           10  LIMITE-CREDITO      PIC S9(9)V99 COMP-3.
           10  DATA-CADASTRO       PIC X(10).
           10  STATUS-CLIENTE      PIC X(1).

Os nomes e formatos podem variar de acordo com as opções escolhidas.


5.1 Por que o DCLGEN é tão importante?

Sem ele, o programador teria que converter manualmente cada tipo SQL em um formato COBOL.

Exemplos:

INTEGER       -> PIC S9(9) COMP
SMALLINT      -> PIC S9(4) COMP
DECIMAL(9,2)  -> PIC S9(7)V99 COMP-3
CHAR(10)      -> PIC X(10)
DATE          -> PIC X(10)
VARCHAR       -> campo de tamanho + texto

Essa conversão manual pode gerar erros.

Um campo definido incorretamente pode resultar em:

  • truncamento;

  • dados corrompidos;

  • SQLCODE negativo;

  • valores numéricos inválidos;

  • ABEND S0C7;

  • comportamento imprevisível.

O DCLGEN reduz essa possibilidade.


5.2 DCLGEN não substitui governança

Há um detalhe importante.

Gerar o DCLGEN é apenas o começo.

A empresa precisa controlar:

  • onde o copybook será armazenado;

  • qual versão está em produção;

  • quais programas usam aquela estrutura;

  • o que acontece quando a tabela muda;

  • se os programas precisam ser recompilados;

  • se o BIND precisa ser renovado.

Em ambientes maduros, alterações de tabela seguem processos rigorosos.

Não basta alterar uma coluna e esperar que todos os programas se adaptem magicamente.

No mainframe, magia sem controle costuma receber outro nome: incidente.


6. Opção 3 — Program Preparation

A opção 3 é:

3 PROGRAM PREPARATION

Ela reúne etapas necessárias para preparar uma aplicação Db2 para execução.

Um programa COBOL com SQL embutido precisa passar por várias fases:

Fonte COBOL com EXEC SQL
          |
          v
Precompile
          |
          +----> DBRM
          |
          v
Fonte COBOL transformado
          |
          v
Compilação
          |
          v
Objeto
          |
          v
Link-edit
          |
          v
Load module
          |
          v
BIND
          |
          v
Package ou plan

A opção Program Preparation tenta coordenar essas etapas.

É excelente para laboratórios, ambientes educacionais e processos padronizados.

Em grandes empresas, porém, muitas dessas fases são executadas por pipelines, ferramentas de change management ou JCLs corporativos.

Entre as ferramentas modernas ou tradicionais podem aparecer:

  • Endevor;

  • ISPW;

  • Changeman;

  • DBB;

  • Jenkins;

  • GitLab;

  • GitHub Actions;

  • IBM Developer for z/OS;

  • zBuilder.

Mesmo assim, o conceito permanece exatamente o mesmo.


7. Opção 4 — Precompile

A opção 4 chama o precompiler do Db2.

Essa é uma das etapas mais fascinantes.

O compilador COBOL não compreende diretamente uma instrução como:

       EXEC SQL
           SELECT NOME_CLIENTE,
                  LIMITE_CREDITO
             INTO :WS-NOME,
                  :WS-LIMITE
             FROM APP.CLIENTE
            WHERE ID_CLIENTE = :WS-ID
       END-EXEC.

O SQL embutido precisa ser tratado antes da compilação COBOL.

O precompiler percorre o fonte e identifica blocos entre:

EXEC SQL

e:

END-EXEC

Ele separa as instruções SQL e gera dois resultados principais:

  1. Um fonte COBOL modificado.

  2. Um DBRM.


7.1 O que é o DBRM?

DBRM significa:

Database Request Module

Ele contém representações das instruções SQL extraídas do programa.

O DBRM não é o executável.

Ele também não é uma tabela.

Ele é um artefato intermediário utilizado posteriormente no BIND.

Pense nele como um dossiê contendo os pedidos de acesso ao banco feitos pelo programa.

Exemplo conceitual:

Programa: PGMCAD01

SQL 1:
SELECT NOME_CLIENTE
FROM APP.CLIENTE
WHERE ID_CLIENTE = ?

SQL 2:
UPDATE APP.CLIENTE
SET STATUS = ?
WHERE ID_CLIENTE = ?

Esse conjunto de solicitações será analisado pelo Db2 durante o BIND.


7.2 O que acontece com o fonte COBOL?

O SQL é substituído ou acompanhado por chamadas apropriadas à interface do Db2.

O fonte resultante pode conter referências a módulos e estruturas necessárias para a comunicação com o banco.

Depois disso, o compilador COBOL consegue processar o programa.

O fluxo é:

COBOL + SQL
    |
    v
Precompiler Db2
    |
    +----> DBRM
    |
    v
COBOL sem SQL nativo
    |
    v
Compiler

8. SQLCA: o mensageiro do Db2

Quase todo programa COBOL com Db2 possui:

       EXEC SQL
           INCLUDE SQLCA
       END-EXEC.

SQLCA significa:

SQL Communication Area

É uma estrutura usada para receber informações sobre a execução da instrução SQL.

O campo mais famoso é:

SQLCODE

Exemplos:

SQLCODE = 0      sucesso
SQLCODE = 100    nenhuma linha encontrada
SQLCODE = -811   mais de uma linha retornada
SQLCODE = -904   recurso indisponível
SQLCODE = -911   deadlock ou timeout com rollback
SQLCODE = -913   deadlock ou timeout
SQLCODE = -805   package não encontrado
SQLCODE = -818   timestamp inconsistente

Um programa sério deve testar o SQLCODE após cada operação relevante.

Exemplo:

       EXEC SQL
           SELECT NOME_CLIENTE
             INTO :WS-NOME
             FROM APP.CLIENTE
            WHERE ID_CLIENTE = :WS-ID
       END-EXEC.

       EVALUATE SQLCODE
           WHEN 0
               DISPLAY 'CLIENTE ENCONTRADO: ' WS-NOME
           WHEN 100
               DISPLAY 'CLIENTE NAO ENCONTRADO'
           WHEN OTHER
               DISPLAY 'ERRO SQLCODE: ' SQLCODE
       END-EVALUATE.

Ignorar o SQLCODE é como pilotar uma nave sem olhar o painel.

Talvez ela continue voando.

Talvez o motor já esteja em chamas.


9. Opção 5 — BIND, REBIND e FREE

A opção 5 é uma das mais importantes do menu:

5 BIND/REBIND/FREE

Esses três comandos controlam packages e plans.


10. O que é BIND?

O BIND pega o DBRM e cria uma estrutura executável pelo Db2, geralmente um package.

Durante o BIND, o Db2:

  • valida as instruções SQL;

  • verifica objetos referenciados;

  • avalia autorizações;

  • analisa estatísticas;

  • escolhe caminhos de acesso;

  • registra dependências;

  • cria o package;

  • armazena informações no catálogo.

O otimizador decide como acessar os dados.

Ele pode escolher:

  • table space scan;

  • index scan;

  • index-only access;

  • nested loop join;

  • merge scan join;

  • hybrid join;

  • acesso por particionamento;

  • paralelismo.

Duas instruções SQL textualmente iguais podem receber caminhos de acesso diferentes dependendo de:

  • índices;

  • cardinalidade;

  • distribuição de dados;

  • estatísticas;

  • parâmetros de BIND;

  • versão do Db2;

  • nível de função;

  • configuração do subsistema.


10.1 Package e plan

Um package contém a forma preparada das instruções SQL de um programa ou unidade lógica.

Um plan organiza a execução e pode referenciar collections e packages.

No modelo moderno, é comum trabalhar principalmente com packages.

Fluxo simplificado:

Programa COBOL
      |
      v
Package
      |
      v
Collection
      |
      v
Plan
      |
      v
Db2

Nem todas as empresas usam exatamente a mesma convenção, mas o conceito geral permanece.


11. O que é REBIND?

O REBIND recria o package ou plan sem precisar gerar um novo DBRM.

Ele é útil quando:

  • estatísticas foram atualizadas;

  • índices foram criados;

  • índices foram removidos;

  • o volume de dados mudou;

  • houve alteração de parâmetros;

  • o Db2 foi atualizado;

  • deseja-se obter um novo access path.

Exemplo clássico:

RUNSTATS
   |
   v
Novas estatísticas
   |
   v
REBIND
   |
   v
Novo caminho de acesso

O programa COBOL pode permanecer o mesmo.

O executável pode permanecer o mesmo.

Mas o Db2 pode escolher uma estratégia diferente para acessar os dados.

Esse desacoplamento é uma das maiores forças da arquitetura Db2.


12. O que é FREE?

FREE remove packages ou plans do catálogo.

É uma operação poderosa e potencialmente perigosa.

Se você remover um package necessário, o programa poderá falhar com erro semelhante ao:

SQLCODE -805

Esse erro normalmente indica que o package esperado não foi encontrado, não está disponível na collection correta ou não corresponde ao que o programa está tentando usar.

Nunca execute FREE por curiosidade em ambiente corporativo.

Curiosidade é excelente para estudar.

Em produção, curiosidade sem mudança aprovada pode virar RCA.


13. Opção 6 — RUN

A opção 6 permite executar um programa SQL.

Dependendo da instalação, o painel solicita:

  • nome do programa;

  • plan;

  • parâmetros;

  • bibliotecas de carga;

  • datasets;

  • ambiente;

  • opções de execução.

Essa função é bastante útil para testes.

Em ambientes reais, programas batch normalmente são executados por JCL.

Um exemplo conceitual:

//RUNDB2   JOB ...
//STEP01   EXEC PGM=IKJEFT01
//STEPLIB  DD DISP=SHR,DSN=APP.LOADLIB
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTSIN  DD *
  DSN SYSTEM(DB9G)
  RUN PROGRAM(PGMCAD01) PLAN(PLANAPP) -
      LIB('APP.LOADLIB')
  END
/*

O exemplo exato varia conforme o ambiente.

O programa pode também ser executado em:

  • CICS;

  • IMS;

  • stored procedure;

  • WLM;

  • batch;

  • TSO;

  • z/OS Unix;

  • aplicações distribuídas.


14. Opção 7 — Db2 Commands

A opção 7 permite emitir comandos administrativos do Db2.

Exemplos:

-DISPLAY DATABASE
-DISPLAY THREAD
-DISPLAY UTILITY
-DISPLAY BUFFERPOOL
-START DATABASE
-STOP DATABASE
-RECOVER INDOUBT

Esses comandos não são SQL.

Eles são comandos do subsistema Db2.

Por exemplo:

-DISPLAY DATABASE(APPDB)

Pode mostrar o estado dos objetos relacionados ao banco.

Outro exemplo:

-DISPLAY THREAD(*)

Pode exibir threads conectadas.

Essas funções geralmente são controladas por autorização.

Um programador comum talvez possa executar alguns comandos de consulta, mas não terá autoridade para iniciar, parar ou alterar recursos críticos.

E isso é saudável.

Segurança não é um obstáculo.

É o cinto de segurança da operação.


15. Opção 8 — Utilities

Os utilitários do Db2 são responsáveis por diversas tarefas essenciais de manutenção.

Entre os principais:

LOAD
UNLOAD
REORG
RUNSTATS
COPY
RECOVER
CHECK DATA
CHECK INDEX
REBUILD INDEX
QUIESCE
MODIFY RECOVERY

15.1 RUNSTATS

Coleta estatísticas sobre:

  • quantidade de linhas;

  • cardinalidade;

  • distribuição;

  • frequência;

  • índices;

  • colunas;

  • partições.

O otimizador usa essas informações para escolher access paths.

Estatística desatualizada pode levar a decisões ruins.

É como usar um mapa de uma cidade de 1995 para dirigir em 2026.

Algumas ruas ainda existem.

Outras viraram avenidas, túneis, condomínios e rotatórias criadas por alguém que parecia gostar muito de rotatórias.


15.2 REORG

Reorganiza os dados fisicamente.

Pode ajudar a:

  • reduzir fragmentação;

  • recuperar espaço;

  • melhorar clustering;

  • restaurar organização física;

  • tratar estados pendentes;

  • melhorar acesso.


15.3 COPY

Cria cópias de imagem para recuperação.

Sem cópias adequadas, uma falha pode se tornar uma tragédia operacional.


15.4 RECOVER

Restaura objetos após falhas ou perda de dados.

Pode utilizar:

  • image copies;

  • logs;

  • pontos de recuperação;

  • informações do catálogo.


15.5 LOAD

Carrega grandes volumes de dados com eficiência.

É muito mais apropriado para cargas massivas do que executar milhões de INSERTs individuais.


16. Opção D — DB2I Defaults

A opção D permite configurar padrões utilizados pelo DB2I.

Podem existir parâmetros para:

  • nomes de datasets;

  • classes de job;

  • opções de saída;

  • SQL terminator;

  • parâmetros de execução;

  • bibliotecas;

  • identificadores;

  • formato dos resultados.

Esses defaults economizam tempo.

Em vez de digitar os mesmos valores em todos os painéis, o usuário configura uma vez e reaproveita.

Porém, sempre revise os parâmetros antes de executar.

Um default antigo pode apontar para:

  • SSID incorreto;

  • biblioteca obsoleta;

  • plan antigo;

  • collection inadequada;

  • dataset inexistente.

Automação ajuda.

Automação desatualizada ajuda a errar mais rápido.


17. Passo a passo completo: criando um programa COBOL com Db2

Agora vamos juntar tudo.

Imagine um programa que consulta o nome de um cliente.


Passo 1 — Criar o DCLGEN

Use a opção 2.

Informe:

TABLE OWNER: APP
TABLE NAME: CLIENTE

Defina o dataset de saída:

VAGNER.COBOL.COPYLIB(DCLCLI)

O DCLGEN será gerado.


Passo 2 — Escrever o programa COBOL

Exemplo simplificado:

       IDENTIFICATION DIVISION.
       PROGRAM-ID. PGCLI001.

       DATA DIVISION.
       WORKING-STORAGE SECTION.

       EXEC SQL
           INCLUDE SQLCA
       END-EXEC.

       EXEC SQL
           INCLUDE DCLCLI
       END-EXEC.

       01  WS-ID-CLIENTE      PIC S9(9) COMP VALUE 100.
       01  WS-NOME-CLIENTE    PIC X(80).

       PROCEDURE DIVISION.

           EXEC SQL
               SELECT NOME_CLIENTE
                 INTO :WS-NOME-CLIENTE
                 FROM APP.CLIENTE
                WHERE ID_CLIENTE = :WS-ID-CLIENTE
           END-EXEC

           EVALUATE SQLCODE
               WHEN 0
                   DISPLAY 'CLIENTE: ' WS-NOME-CLIENTE
               WHEN 100
                   DISPLAY 'CLIENTE NAO ENCONTRADO'
               WHEN OTHER
                   DISPLAY 'ERRO SQL: ' SQLCODE
           END-EVALUATE

           GOBACK.

Passo 3 — Precompile

Use a opção 4 ou Program Preparation.

Entradas:

Fonte COBOL
DBRM library
Copy library
Parâmetros SQL

Saídas:

Fonte COBOL modificado
DBRM
Listing
Mensagens

Verifique erros de sintaxe SQL.


Passo 4 — Compilar

O fonte modificado segue para o Enterprise COBOL.

O compilador gera:

Object deck
Compiler listing
Mensagens

Corrija qualquer erro COBOL.


Passo 5 — Link-edit

O objeto é transformado em load module ou program object.

Ele será armazenado em uma biblioteca de carga.

Exemplo:

VAGNER.APP.LOADLIB

Passo 6 — BIND PACKAGE

Use a opção 5.

Informe:

DBRM: PGCLI001
COLLECTION: APPDEV
PACKAGE: PGCLI001
OWNER: VAGNER
QUALIFIER: APP

Parâmetros comuns podem incluir:

ACTION(REPLACE)
ISOLATION(CS)
VALIDATE(BIND)
RELEASE(COMMIT)
CURRENTDATA(NO)

Os parâmetros exatos dependem dos padrões da empresa.


Passo 7 — BIND PLAN

Caso o ambiente utilize plan explícito para a execução, associe a package list ou collection.

Exemplo conceitual:

PLAN: PLANAPP
PKLIST: APPDEV.*

Passo 8 — Executar

Use a opção 6 ou submeta o JCL.

Observe:

  • retorno do job;

  • SQLCODE;

  • mensagens;

  • dumps;

  • saídas;

  • tempo de CPU;

  • quantidade de linhas.


18. Erros clássicos do padawan

SQLCODE -805

Package não encontrado.

Possíveis causas:

  • BIND não executado;

  • collection errada;

  • plan incorreto;

  • package removido;

  • versão incompatível.


SQLCODE -818

Incompatibilidade de timestamp entre programa e package.

Pode acontecer quando o programa foi recompilado, mas o package não foi gerado de forma correspondente.

A solução geralmente envolve sincronizar:

Precompile
Compile
Link-edit
Bind

SQLCODE -811

Um SELECT INTO retornou mais de uma linha.

Exemplo perigoso:

SELECT NOME_CLIENTE
INTO :WS-NOME
FROM APP.CLIENTE
WHERE STATUS = 'A';

Se existem mil clientes ativos, o Db2 não sabe qual retornar.

Use chave única, agregação ou cursor.


SQLCODE +100

Nenhuma linha encontrada.

Não é necessariamente erro.

Pode ser uma condição normal de negócio.


SQLCODE -911

Deadlock ou timeout com rollback.

O programa perdeu uma disputa por recurso e a unidade de trabalho foi desfeita.

É necessário avaliar:

  • ordem de acesso;

  • tempo entre commits;

  • índices;

  • isolamento;

  • concorrência;

  • volume de processamento.


19. Curiosidades históricas

O DB2I carrega a filosofia de uma época em que memória, largura de banda e espaço de tela eram recursos valiosos.

Por isso, seus painéis são diretos.

Não existem animações.

Não existem botões brilhantes.

Não existem notificações perguntando se você gostaria de conhecer cinco novidades.

Existe uma linha de comando, campos objetivos e uma tecla Enter.

Essa simplicidade ajudou o ambiente a permanecer produtivo por décadas.

Outra curiosidade é que muitos profissionais que começaram no Db2 em versões antigas ainda reconhecem imediatamente o menu.

Os detalhes evoluíram.

O banco ganhou novos tipos, novos níveis de função, novas capacidades e otimizações.

Mas a lógica fundamental continua familiar.

Isso é compatibilidade cultural.

Não apenas compatibilidade técnica.


20. Easter egg Bellacosa Mainframe

Vamos transformar a jornada em uma aventura galáctica.

O programa COBOL é um jovem Jedi.

O DCLGEN entrega o mapa da estrutura do planeta-tabela.

O precompiler é C-3PO, traduzindo SQL para uma linguagem compreendida pela infraestrutura.

O DBRM é o pergaminho contendo todas as missões de acesso ao banco.

O compilador COBOL treina o guerreiro.

O link-editor entrega o sabre de luz.

O BIND apresenta a missão ao Conselho Jedi.

O otimizador decide a rota: índice, scan, join, paralelismo.

O package é a autorização oficial.

O plan é o plano de batalha.

O SQLCA é o comunicador preso ao cinto.

E o SQLCODE informa se a missão foi cumprida ou se o grupo acabou preso em um compactador de lixo da Estrela da Morte.

O mais importante é compreender que nenhuma etapa existe por acaso.

O mainframe não gosta de improviso.

Ele gosta de processos repetíveis, auditáveis e previsíveis.

Essa disciplina é uma das razões pelas quais sistemas IBM Z sustentam bancos, governos, seguradoras, companhias aéreas, indústrias e cadeias globais de negócios.


Conclusão

A tela do DB2I pode parecer modesta, mas ela concentra uma quantidade impressionante de conhecimento.

Por trás de suas opções existem:

  • linguagens;

  • compiladores;

  • catálogos;

  • packages;

  • plans;

  • access paths;

  • estatísticas;

  • segurança;

  • recuperação;

  • concorrência;

  • utilitários;

  • JCL;

  • datasets;

  • décadas de engenharia.

Dominar o DB2I não significa apenas aprender a navegar em um menu.

Significa compreender o ciclo de vida de uma aplicação Db2 no z/OS.

O programador COBOL padawan que aprende apenas a escrever SELECT conhece a superfície.

O profissional que compreende precompile, DBRM, BIND, package, plan, SQLCA, utilitários e access path começa a enxergar o sistema inteiro.

E é nesse momento que a velha tela preta deixa de parecer antiga.

Ela passa a parecer aquilo que realmente é:

Um painel de controle compacto para uma das plataformas de dados mais robustas já construídas pela indústria da computação.

Portanto, na próxima vez que você entrar no DB2I e enxergar suas opções em ciano, não veja apenas números.

Veja uma linha de produção.

Veja o SQL sendo extraído.

Veja o DBRM sendo criado.

Veja o compilador trabalhando.

Veja o otimizador avaliando caminhos.

Veja o package sendo autorizado.

Veja o programa entrando em execução.

Porque, no IBM Z, quase sempre existe muito mais acontecendo por trás da tela do que o terminal permite enxergar.

E essa, jovem padawan, é parte da beleza do mainframe.


quarta-feira, 22 de junho de 2022

De Rust ao COBOL no IBM Z : Você Não Está Abandonando a Programação Moderna. Está Descobrindo Onde a Engenharia de Software Aprendeu a Nunca Falhar.

 

Bellacosa Mainframe do rust ao cobol no zos

☕ Um Café no Bellacosa Mainframe

De Rust ao COBOL no IBM Z

Você Não Está Abandonando a Programação Moderna. Está Descobrindo Onde a Engenharia de Software Aprendeu a Nunca Falhar.

"Rust ensina você a escrever programas seguros. O IBM Z ensina você a manter um país funcionando às três da manhã de uma segunda-feira."

Existe uma pergunta que aparece com frequência quando um desenvolvedor Rust descobre o universo IBM Z:

"Faz sentido aprender COBOL em pleno século XXI?"

Minha resposta costuma ser outra pergunta.

Você quer aprender apenas uma linguagem ou quer aprender como funcionam alguns dos sistemas mais confiáveis do planeta?

Porque existe uma enorme diferença entre essas duas coisas.

Quem programa em Rust normalmente já possui uma mentalidade extremamente valorizada no mundo Mainframe.

Você já aprendeu a respeitar memória.

Já aprendeu que performance importa.

Já aprendeu que concorrência não é brincadeira.

Já aprendeu que estabilidade vale mais que "funcionou na minha máquina".

Na verdade...

Você está muito mais preparado para aprender COBOL do que imagina.

Só precisa trocar algumas lentes.


O maior erro

Muita gente tenta comparar:

Rust × COBOL

Essa comparação é injusta.

Seria como comparar:

  • um bisturi

  • uma usina hidrelétrica

Os dois resolvem problemas.

Mas vivem em mundos completamente diferentes.

Rust nasceu para produzir software extremamente seguro.

COBOL nasceu para processar negócios.

O IBM Z nasceu para garantir que esses negócios nunca parem.

Quando entendemos isso, tudo muda.


O pensamento do desenvolvedor Rust

Quem vive em Rust normalmente pensa em:

  • ownership

  • borrowing

  • lifetimes

  • Result

  • Option

  • Traits

  • Enums

  • Pattern Matching

  • Zero Cost Abstractions

  • Async

  • Tokio

  • Cargo

  • Crates

  • módulos

  • performance

  • segurança

É uma linguagem construída para impedir erros antes mesmo da compilação.

Isso muda completamente a forma de desenvolver.


Bellacosa Mainframe rust versus cobol no zos

O pensamento do desenvolvedor COBOL

Já o programador COBOL pensa em coisas diferentes.

Ele pensa em:

  • regras de negócio

  • consistência

  • auditoria

  • precisão decimal

  • processamento em lote

  • processamento online

  • disponibilidade

  • rastreabilidade

  • recuperação

  • confiabilidade

Observe uma curiosidade.

Rust protege memória.

COBOL protege dinheiro.

Ambos protegem algo extremamente importante.


O choque inicial

O primeiro contato costuma causar estranheza.

O desenvolvedor Rust abre um programa COBOL e pensa:

"Cadê as funções?"

"Cadê os módulos?"

"Cadê os generics?"

"Cadê os traits?"

"Cadê o Cargo?"

É normal.

Porque COBOL foi criado em outra época.

Mas existe um detalhe interessante.

As versões modernas do Enterprise COBOL evoluíram bastante.

Hoje encontramos:

  • variáveis locais

  • recursão

  • XML

  • JSON

  • UTF-8

  • chamadas para Java

  • interoperabilidade com C

  • otimizações sofisticadas

  • integração com APIs REST através do ecossistema IBM Z

Não é o COBOL dos anos 70.


O que você precisa desaprender

Talvez a mudança mais importante seja esta.

No mundo Rust pensamos muito em estruturas de dados.

No mundo Mainframe pensamos primeiro em processos de negócio.

A pergunta deixa de ser:

"Como armazeno isso?"

e passa a ser:

"Como um banco liquida milhões de operações sem perder um centavo?"

É outro tipo de engenharia.


O que continua igual

Mais do que muita gente imagina.

Organização

Rust organiza código.

COBOL também.

Você terá:

  • programas

  • subprogramas

  • copybooks

  • bibliotecas

  • interfaces

A ideia continua sendo dividir responsabilidades.


Legibilidade

Rust valoriza código limpo.

COBOL também.

Aliás...

COBOL talvez seja uma das linguagens mais próximas da linguagem humana.

IF SALDO > LIMITE
    PERFORM BLOQUEAR-CONTA
END-IF

Mesmo quem nunca programou consegue entender.


Modularização

Rust:

mod

COBOL:

CALL

Em ambos os casos você evita duplicação.


Testes

Rust possui uma cultura fantástica de testes.

Leve isso para o Mainframe.

Hoje existem ferramentas como:

  • zUnit

  • COBOL Unit Test

  • COBOL Check

  • integração com Jenkins

  • GitHub Actions

  • GitLab CI

  • Azure DevOps

Você pode continuar praticando TDD.


Performance

Rust busca eficiência.

IBM Z vive disso.

Só que existe uma diferença.

Rust normalmente otimiza microssegundos.

IBM Z otimiza milhões de transações simultâneas.

É outra escala.


O que muda completamente

Agora começam as novidades.


Você deixa de pensar apenas em programas

No Mainframe, um programa nunca vive sozinho.

Ele conversa com um enorme ecossistema.

Você conhecerá:

  • JCL

  • JES2

  • TSO

  • ISPF

  • SDSF

  • RACF

  • CICS

  • Db2

  • VSAM

  • MQ

  • z/OS

Tudo faz parte do mesmo universo.


O sistema operacional é diferente

Windows e Linux nasceram para computadores relativamente independentes.

O z/OS nasceu para um computador compartilhado por milhares de pessoas ao mesmo tempo.

Cada detalhe foi pensado para isso.

É um paradigma completamente diferente.


Batch não é coisa antiga

Essa talvez seja a maior surpresa.

Muitos imaginam que Batch significa tecnologia ultrapassada.

Na verdade...

Batch significa processamento massivo.

Imagine:

  • fechar cartões de crédito

  • calcular juros

  • atualizar milhões de contas

  • gerar extratos

  • enviar PIX agendados

  • consolidar posições financeiras

Tudo isso continua acontecendo diariamente.

E continua extremamente eficiente.


CICS muda sua visão

Depois você conhecerá CICS.

E entenderá que um terminal 3270 pode responder milhares de usuários com latência impressionante.

Sem navegador.

Sem JavaScript.

Sem frameworks gigantescos.

Apenas engenharia.


O que estudar primeiro

Aqui vejo muitos alunos errando.

Eles começam por CICS.

Ou Db2.

Ou IMS.

Não faça isso.

Existe uma ordem muito melhor.


Etapa 1 — Aprenda COBOL puro

Domine:

  • IDENTIFICATION DIVISION

  • ENVIRONMENT DIVISION

  • DATA DIVISION

  • PROCEDURE DIVISION

Depois pratique:

  • IF

  • EVALUATE

  • PERFORM

  • SEARCH

  • OCCURS

  • INDEX

  • tabelas

  • arquivos sequenciais

Escreva muitos programas pequenos.


Etapa 2 — Entenda dados

Rust trabalha muito com estruturas.

No Mainframe você precisa dominar layouts.

Aprenda:

  • PIC

  • COMP

  • COMP-3

  • DISPLAY

  • REDEFINES

  • OCCURS

  • COPYBOOKS

Essa é uma das partes mais importantes.


Etapa 3 — Aprenda JCL

Não existe desenvolvimento Mainframe sem JCL.

Aprenda:

  • JOB

  • EXEC

  • DD

  • PROC

  • COND

  • IF/THEN

  • SORT

  • IDCAMS

  • IEBGENER

Pense no JCL como um orquestrador.


Etapa 4 — TSO e ISPF

Domine o ambiente.

Aprenda:

  • editar

  • compilar

  • navegar datasets

  • membros

  • utilitários

  • SDSF

Isso aumenta muito sua produtividade.


Etapa 5 — Arquivos

Estude:

  • Sequential

  • VSAM KSDS

  • ESDS

  • RRDS

Entenda quando usar cada um.


Etapa 6 — Db2

Agora sim.

Aprenda:

  • SQL

  • Embedded SQL

  • Cursor

  • Commit

  • Rollback

Quem conhece Rust provavelmente já trabalhou com bancos relacionais.

A adaptação será tranquila.


Etapa 7 — CICS

Somente depois.

Aprenda:

  • COMMAREA

  • Channels

  • Containers

  • BMS

  • Transações

  • Program Control


Etapa 8 — Segurança

Conheça RACF.

Entenda:

  • usuários

  • grupos

  • permissões

  • datasets

  • recursos

Segurança faz parte da arquitetura.


Etapa 9 — Observabilidade

Aprenda:

  • SDSF

  • mensagens

  • ABENDs

  • dumps

  • logs

  • SMF

Aqui você começa a pensar como um engenheiro de produção.


O que praticar diariamente

Uma hora por dia já produz resultados impressionantes.

Minha sugestão é:

Segunda

  • resolver exercícios COBOL

Terça

  • ler JCL

Quarta

  • manipular arquivos

Quinta

  • SQL no Db2

Sexta

  • estudar arquitetura IBM Z

Sábado

  • criar pequenos projetos

Domingo

  • revisar tudo

Consistência vale mais que intensidade.


Habilidades que você já possui

Como desenvolvedor Rust você provavelmente já domina:

  • Git

  • GitHub

  • VS Code

  • terminal

  • debugging

  • documentação

  • leitura de RFCs

  • APIs

  • JSON

  • testes automatizados

Continue usando tudo isso.

Hoje é perfeitamente possível editar programas COBOL no VS Code utilizando extensões modernas, Git e pipelines de integração contínua. O desenvolvimento Mainframe está cada vez mais próximo das práticas que você já conhece no ecossistema open source.


O que você deve desenvolver

Além da linguagem, treine a forma de pensar.

Aprenda a fazer perguntas como:

  • O que acontece se este programa falhar às 2h da manhã?

  • Como recuperar uma execução interrompida?

  • Como garantir que nenhuma transação seja perdida?

  • Como auditar cada alteração?

  • Como processar bilhões de registros mantendo integridade?

  • Como manter compatibilidade com programas escritos há décadas?

Essas perguntas definem um engenheiro de software para sistemas críticos.


A maior mudança de mentalidade

No universo Rust, muitas vezes o foco está em construir algo novo.

No universo IBM Z, o foco é evoluir algo que já funciona, sem interromper um serviço essencial.

É uma disciplina diferente. Você aprende a respeitar contratos, compatibilidade, governança e continuidade operacional. Descobre que inovação também significa modernizar com segurança, integrar APIs, automatizar deploys, usar Git, DevOps e observabilidade, sem colocar em risco aplicações que movimentam bilhões de reais todos os dias.


A recompensa

Depois de alguns meses, você perceberá algo curioso.

COBOL deixará de parecer uma linguagem antiga.

Você começará a enxergar padrões de engenharia extremamente maduros.

Verá programas que processam volumes gigantescos há décadas, passando por inúmeras evoluções sem perder estabilidade. Entenderá por que bancos, seguradoras, companhias aéreas e governos continuam confiando no IBM Z para suas operações mais críticas.

E, nesse momento, você descobrirá que aprender Mainframe nunca foi apenas aprender COBOL.

Foi aprender uma maneira diferente de construir software: uma maneira em que disponibilidade, integridade, desempenho, segurança e continuidade têm prioridade absoluta.

Rust continuará sendo uma excelente linguagem para escrever software moderno, rápido e seguro.

COBOL continuará sendo uma excelente linguagem para expressar regras de negócio de forma clara e confiável.

O IBM Z continuará sendo uma das plataformas mais sofisticadas já criadas para executar essas regras em escala global.

Você não está trocando um mundo pelo outro.

Está unindo dois dos maiores exemplos de engenharia de software já produzidos.

E quando um desenvolvedor Rust aprende a pensar como um engenheiro de Mainframe, ele não se torna apenas um programador mais versátil.

Ele passa a compreender como a tecnologia que mantém o mundo funcionando foi construída — e por que continua relevante, décadas depois.

Esse é o verdadeiro objetivo da jornada.

terça-feira, 21 de junho de 2022

☕🔥 “IMMORAL GUILD” — O ANIME ONDE UM CAÇADOR ESGOTADO DESCOBRIU QUE GERENCIAR UMA PARTY É PIOR QUE ADMINISTRAR UM MAINFRAME EM PRODUÇÃO 💀🖥️

 

Bellacosa Mainframe e immoral guild um anime doidao

☕🔥 “IMMORAL GUILD” — O ANIME ONDE UM CAÇADOR ESGOTADO DESCOBRIU QUE GERENCIAR UMA PARTY É PIOR QUE ADMINISTRAR UM MAINFRAME EM PRODUÇÃO 💀🖥️

📜 Dados da Obra

ItemInformação
Título OriginalFutoku no Guild (不徳のギルド)
Título InternacionalImmoral Guild
AutorTaichi Kawazoe
EstúdioTNK
DireçãoTakuya Asaoka
EstreiaOutubro de 2022
Episódios12 episódios
GêneroFantasia, Ecchi, Comédia, Aventura, Paródia
Classificação+16 / +18 dependendo da versão
OrigemMangá serializado na Monthly Shonen Gangan

☕💀 O QUE É “IMMORAL GUILD”?

À primeira vista…

Muita gente olha para Immoral Guild e pensa:

“Ah… é só mais um anime ecchi cheio de fanservice.”

Mas aí está o erro.

Porque por trás do caos absoluto…
das garotas desastradas…
dos monstros tarados…
e das situações absurdas…

existe uma sátira extremamente inteligente sobre:

  • burnout profissional,

  • responsabilidade excessiva,

  • incompetência operacional,

  • exploração do trabalhador eficiente,

  • e o colapso psicológico de quem carrega sistemas inteiros sozinho.

Sim.

Esse anime é praticamente:

“Um analista sênior de produção tentando sobreviver em um ambiente corporativo sem documentação.”


🖥️ O VERDADEIRO PROTAGONISTA: O SYSADMIN ESGOTADO DA FANTASIA

⚔️ Kikuru Madan

Kikuru é um caçador extremamente competente.

O problema?

ELE É BOM DEMAIS.

E isso destruiu sua vida.

Enquanto todos ao redor:

  • falham,

  • causam incidentes,

  • geram problemas,

  • tomam decisões ruins,

ele precisa:

  • apagar incêndios,

  • salvar operações,

  • corrigir erros,

  • impedir catástrofes.

Ou seja…

Kikuru virou o equivalente fantasy de:

“O único analista que realmente entende o sistema legado.”


☕🔥 A GRANDE PIADA DO ANIME

A genialidade de Immoral Guild está no fato de que:

o ecchi NÃO É o objetivo principal.

O ecchi é o MECANISMO DE CAOS.

Cada personagem representa:

  • um tipo de falha operacional,

  • um bug humano,

  • ou um desastre administrativo ambulante.


🧠 AS PERSONAGENS COMO PROCESSOS QUEBRADOS DE UM MAINFRAME

🟢 Hitamu Kyan — O JOB QUE SEMPRE ABENDA

A famosa “desastrada suprema”.

Ela:

  • tropeça,

  • falha,

  • ativa armadilhas,

  • cai em emboscadas,

  • destrói qualquer operação.

Ela é literalmente:

“o batch crítico que sempre dá ABEND às 3h da manhã.”

Mas existe um detalhe importante:

Apesar da incompetência…
ela tenta.

E isso torna a personagem estranhamente humana.


🟣 Maidena Angers — O SISTEMA QUE EXECUTA SEM TESTE

Maidena possui enorme poder mágico.

Porém…

não controla direito o que faz.

Ela lembra:

  • deploy em produção sem homologação,

  • script executado sem rollback,

  • automação sem monitoramento.

Resultado:
catástrofe inevitável.


⚪ Toxico Dannar — O PROCESSO LEGADO INSTÁVEL

Ela parece calma…
mas qualquer pequena alteração gera efeitos absurdos.

É o clássico:

“ninguém sabe como funciona, mas se mexer derruba tudo.”


☕🧩 O ECCHI COMO PARÓDIA DE RPGS

Aqui está algo importante:

Immoral Guild NÃO tenta esconder o absurdo.

Pelo contrário.

O anime exagera tanto as situações que vira uma crítica aos próprios clichês de fantasia.

Ele satiriza:

  • MMORPGs,

  • parties incompetentes,

  • protagonistas sobrecarregados,

  • monstros genéricos,

  • sistemas de guilda,

  • fanservice exagerado,

  • e o “aventureiro perfeito” preso em equipes inúteis.


💀 O VERDADEIRO TEMA: BURNOUT

Esse anime fala MUITO sobre burnout.

Kikuru:

  • perdeu juventude,

  • vive cansado,

  • trabalha sem parar,

  • não consegue descansar,

  • e sente que nunca poderá abandonar o sistema.

Isso é extremamente moderno.

Muita gente assistiu pelo ecchi…
e ficou pela identificação emocional.


☕📉 A MENSAGEM OCULTA MAIS PESADA

Existe uma frase silenciosa no anime inteiro:

“Se você for competente demais… o sistema nunca deixará você ir embora.”

Isso é brutal.

Kikuru queria:

  • viver,

  • aproveitar juventude,

  • ter paz,

  • descansar.

Mas ele se tornou indispensável.

E todo profissional experiente já sentiu isso em algum momento.

Especialmente:

  • analistas,

  • operadores,

  • devs,

  • DBAs,

  • suporte,

  • administradores de infraestrutura.


🧠 O DIFERENCIAL DE “IMMORAL GUILD”

O que torna o anime diferente é o equilíbrio absurdo entre:

  • humor escrachado,

  • crítica social,

  • ecchi exagerado,

  • e comentário psicológico.

Ele consegue ser:

  • ridículo,

  • inteligente,

  • desconfortavelmente real,

  • e estranhamente melancólico.


🎨 O ESTÚDIO TNK E O ESTILO VISUAL

O estúdio TNK é conhecido por animes ecchi clássicos.

Eles entendem:

  • timing cômico,

  • exagero visual,

  • expressões caricatas,

  • e “fanservice absurdo”.

Mas em Immoral Guild existe um diferencial:

a animação da comédia física é excelente.

As cenas:

  • aceleram,

  • explodem visualmente,

  • exageram reações,

  • e transformam acidentes em puro caos cartunesco.

O anime praticamente opera como:

“um servidor entrando em pane ao vivo.”


⚔️ AS AVENTURAS

Cada missão funciona como:

um incidente operacional.

O padrão é:

  1. missão começa normal,

  2. alguém faz besteira,

  3. tudo colapsa,

  4. Kikuru tenta salvar,

  5. monstros aparecem,

  6. caos absoluto,

  7. trauma psicológico novo desbloqueado.

É quase um:

“plantão de TI em ambiente sem governança.”


☕👁️ AS CAMADAS ESCONDIDAS

🔥 Crítica à meritocracia

Quem é eficiente…
recebe MAIS trabalho.


🔥 Crítica ao heroísmo

O herói não é feliz.

Ele está exausto.


🔥 Crítica à romantização do trabalho

Kikuru não ama sua rotina.

Ele está preso nela.


🔥 Crítica aos RPGs modernos

O anime ridiculariza:

  • grind,

  • classes inúteis,

  • parties desbalanceadas,

  • e sistemas absurdos.


🌍 IMPACTO CULTURAL

Mesmo sendo nichado pelo ecchi…

Immoral Guild virou cult entre:

  • fãs de fantasia,

  • fãs de comédia nonsense,

  • e trabalhadores adultos identificados com burnout.

Muita gente percebeu:

“esse anime é muito mais inteligente do que parece.”

Ele também se tornou famoso por:

  • memes,

  • cenas absurdas,

  • gifs,

  • compilados de caos,

  • e comparações com ambientes corporativos reais.


☕💾 O VEREDITO BELLACOSA MAINFRAME

“IMMORAL GUILD” NÃO É SOBRE TARADICE.

É SOBRE:

  • um operador esgotado,

  • tentando manter um sistema defeituoso funcionando,

  • enquanto usuários incompetentes geram incidentes infinitos.

É praticamente:

“ITIL em modo fantasia ecchi.”

E talvez seja exatamente isso que tornou o anime tão memorável.

Porque no fundo…

todo profissional de TI já foi o Kikuru pelo menos uma vez.

segunda-feira, 20 de junho de 2022

📸 Luz, Química e Memória — O Retratista e o Filho

 




📸 Luz, Química e Memória — O Retratista e o Filho

Meu amor pela fotografia começou muito antes de eu segurar uma câmera.
Nasci em meio a lentes, flashes, negativos e o cheiro doce e metálico dos químicos de revelação.
Meu pai era fotógrafo profissional — ou, como se dizia na época, um retratis­ta.
Aquele que não apenas tirava fotos, mas capturava a alma das pessoas no instante em que o tempo piscava.



Cresci entre máquinas Yashica, Pentax, Zenit, Minolta, rolos de filme Kodak e Fujifilm, flashes com baterias que pareciam instrumentos de ficção científica, e bobinas de 35mm, 40mm e monoclinhos.
Meu playground era o laboratório — um espaço entre o real e o mágico.




Acompanhava meu pai aos eventos de todos os tipos:
casamentos, batizados, aniversários, velórios, festas de rua, times de futebol e retratos de família.
Cada clique era uma cápsula de tempo, cada flash uma explosão de memória condensada.

Enquanto outras crianças brincavam com carrinhos, eu brincava com monóculos, olhando os negativos contra a luz.
Lembro dos rolos de filme pendurados para secar no varal, das fotos em preto e branco emergindo lentamente na bandeja de revelação, como se o papel respirasse o milagre da imagem.
Era pura alquimia — a magia de transformar prata e luz em lembrança.



Nos livros do meu pai encontrei o outro lado da arte:
a fotografia técnica, a fotografia artística, o passo a passo para construir um laboratório doméstico, os segredos de exposição, enquadramento, foco e narrativa visual.
E ele me ensinava tudo isso com paciência e brilho no olhar, como um sensei das sombras e da luz.

Mas a profissão, naquela época, era de extremos.
Fotógrafos viviam entre vacas gordas e vacas magras, oscilando conforme os calendários de festas e as fases da economia.
Era um ofício de glamour e aperto, luxo e cansaço, arte e sobrevivência.
Um retratista não trabalhava com pixels — trabalhava com expectativas humanas.

Hoje, décadas depois, o digital substituiu o químico,
o sensor ocupou o lugar do filme,
e o laboratório virou um software.
Mas no meu coração ainda vibra aquele som do obturador mecânico, seco e sincero, como um pulso da alma.



Carrego comigo o legado: o prazer de documentar o mundo.
Já tive dezenas de câmeras — e um acervo com mais de 50 mil fotos.
Cada uma delas é um fragmento do que vivi, do que vi e das pessoas que cruzaram meu caminho.

A fotografia me ensinou algo que vale para tudo:
não basta olhar — é preciso ver.
Ver o instante, a emoção, o erro, o reflexo.
Ver o invisível antes que o tempo apague.

E, talvez por isso, sigo clicando.
Não para congelar o passado — mas para manter o presente vivo.
Porque, no fundo, cada foto é uma linha de código da alma:
um registro persistente no mainframe da memória humana.

sexta-feira, 17 de junho de 2022

🔥 CICS Transaction Server for z/OS 6.1 — O CICS que virou plataforma corporativa robusta e moderna

Bellacosa Mainframe anuncia o CICS 6.1

🔥 CICS Transaction Server for z/OS 6.1 — O CICS que virou plataforma corporativa robusta e moderna



☕ Midnight Lunch em junho de 2022 — o CICS que fala Java moderno, segurança forte e gestão por código

Estamos em meados de 2022. O mundo corporativo z/OS já esperava um CICS que fosse além de JSON/REST, Node.js e DevOps — ele precisava oferecer maior segurança, configuração por código, melhores ferramentas e suporte a linguagens e frameworks modernos. Eis que surge CICS Transaction Server for z/OS 6.1, um release maduro para a era sustentável e híbrida.


📅 Datas importantes

📌 Data de Lançamento (GA): 17 de junho de 2022 — quando CICS TS 6.1 entrou oficialmente em produção.
📌 Status de Suporte: Ainda em suporte ativo, com continuous delivery de recursos e melhorias até pelo menos 2024/2025.
📌 Fim de Vida (EOS): Ainda não oficialmente anunciado, mas seguirá o ciclo de versões 6.x com suporte pleno por vários anos.

💬 Bellacosa comenta:

“6.1 não foi refresco — foi fundação da próxima década de CICS.”


CICS 6.1

🆕 As maiores novidades (o que realmente importa)

🧵 1) Suporte moderno de linguagens e frameworks

Java 11 completo, Jakarta EE 9.1 e Eclipse MicroProfile 5 para desenvolver e rodar aplicações robustas no Liberty JVM server dentro de CICS.
✔ Isso significa trabalhar com APIs modernas, frameworks e padrões que equipes corporativas conhecem hoje.

💬 Bellacosa:

“Quando um cliente me disse que compilou Spring + Jakarta no mainframe sem reboot, eu sorri — isso era pura evolução.”


🔐 2) Segurança de nível corporativo

TLS 1.3 — maior segurança nas conexões de dados.
Support for key rings owned by other CICS users — confiança compartilhada entre regiões, menos duplicação de certificados.
Multi-factor authentication (MFA) em regiões CICS — agora obrigatório nas políticas corporativas mais rígidas.

💡 Bellacosa tip:

“Segurança não é opcional. Se não existir TLS 1.3 e MFA no seu CICS, os times de compliance vão te visitar.”


⚙️ 3) Configuração como código / DevOps friendly

CICS TS resource builder — permite definir recursos CICS como código (YAML/JSON) e versionar junto com a aplicação.
✔ Integração natural com pipelines CI/CD e ferramentas modernas de build (Maven, Gradle).

📌 Bellacosa insight:

“Não é só deploy. É deploy que você pode auditar e reproduzir sem surpresa.”


🔍 4) Saúde do sistema e automação de detecção

Health Checks para IBM Health Checker for z/OS — agora CICS pode avisar pro time cinco minutos antes da produção sentir.
Proteção contra execução de código em memória de dados apenas — aumento da resiliência contra ataque/erro clássico.

💬 Midnight Lunch whisper:

“Quando o sistema começa a se auto diagnosticar… você dorme melhor.”


🔁 5) Configuração avançada e overrides

Resource definition overrides — definir variações de configuração por ambiente (Dev/QC/Prod) sem múltiplos recursos duplicados.
✔ Melhor temporary storage expiry processing — menos vazamentos de storage e menos ABENDs de falta de espaço.


🧰 6) Ferramentas que simplificam o dia a dia

Funções avançadas no CICS Explorer — visualização de recursos, operações e estatísticas numa interface moderna.
Instalação via z/OSMF Software Management — instalação orientada por fluxo, não só via JCL*.

💡 Bellacosa comenta:

“Explorer não é luxo. É trabalho sem dor.”


🧪 Eastereggs & Curiosidades Bellacosa

🍺 Mainframe + Java sério — 6.1 consolidou o uso de Java corporativo moderno em CICS com suporte oficial a features padrão que equipes Java esperam.

🍺 O development experience de CICS nunca foi tão amigável — falamos de toolkits, resource builder e Health Checks integrados.

🍺 MFA e TLS 1.3 no mainframe corporativo eram sonhos da galera de segurança há anos… e finalmente chegaram com impacto real.


🧠 Dicas Bellacosa para quem encara 6.1

🔹 Explore Java 11 + MicroProfile — CICS agora é servidor de aplicações com músculo.
🔹 Use resource builder como base do seu DevOps — não repita recursos em V1/V2… versiona!
🔹 Implemente Health Checks — peça ajuda ao time de infra para integrar com z/OSMF e Health Checker.
🔹 Atualize a política de segurança — com MFA e TLS 1.3 seu compliance sobe.


🧠 História com Exemplo (Bellacosa Feel)

Imagine você em 2023, equipe distribuiu:

📍 Um serviço REST moderno feito em Jakarta EE 9.1 rodando em CICS
📍 Uma política de MFA que impede ataques automáticos
📍 Health checks avisando de tempo de resposta lento
📍 Deploy automatizado com resource builder + CI pipeline

Resultado?
✔ APIs modernas com baixa latência
✔ Menos erros de configuração
✔ Operações noturnas tranquilas
✔ Dev, Ops e Security trabalhando como um só time

💬 Bellacosa diz:

“6.1 colocou o CICS no nível de plataforma corporativa completa — não só transação, mas serviço, agilidade e segurança.”


🎯 Conclusão Bellacosa

CICS TS 6.1 é onde o CICS se transforma de “plataforma OLTP incrível” para “plataforma de serviços moderna corporativa”:

✔ Linguagens modernas (Java, MicroProfile)
✔ Segurança robusta (MFA, TLS 1.3)
✔ Configuração como código
✔ Health checks e resiliência
✔ Ferramentas modernas para desenvolvedores

🔥 6.1 é aquele ponto de virada de legado para moderno — sem sacrificar estabilidade.

quinta-feira, 16 de junho de 2022

☕💥 A Jornada do Sysprog Padawan – ACEE – O Crachá Mágico do Reino IBM Z Parte I

 

Bellacosa Mainframe apresenta o ACEE Parte I

☕💥 A Jornada do Sysprog Padawan – Parte 1

ACEE – O Crachá Mágico do Reino IBM Z

O Control Block que quase ninguém conhece, mas que todos utilizam diariamente

"No Mainframe, existem estruturas que todo mundo usa, poucas pessoas enxergam e quase ninguém compreende completamente. O ACEE é uma delas."

Bellacosa Mainframe


Introdução

Todo Sysprog iniciante aprende rapidamente algumas siglas que parecem fazer parte de uma língua secreta:

  • PSA

  • CVT

  • TCB

  • ASCB

  • RB

  • CSA

  • SQA

  • RACF

  • SAF

Mas existe um pequeno personagem que vive escondido dentro da memória do z/OS e que participa de praticamente todas as decisões de segurança do sistema:

O ACEE

Accessor Environment Element

E aqui está algo curioso:

Você provavelmente utilizou milhares de ACEEs durante sua carreira sem nunca perceber.

Toda vez que alguém faz logon no TSO.

Toda vez que uma transação CICS é executada.

Toda vez que um usuário acessa USS via SSH.

Toda vez que um JOB é submetido.

Toda vez que DB2 verifica uma autorização.

Toda vez que MQ abre uma fila.

Existe uma boa chance de um ACEE estar envolvido.


O Reino IBM Z

No estilo Bellacosa Mainframe, imagine o z/OS como um reino medieval gigantesco.

O reino possui:

O Cartório Real

RACF


O Guarda do Portão

SAF


O Livro de Ocorrências

SMF


A Oficina dos Magos

ICSF


O Distrito Unix

USS


O Rei

Sysprog


E existe um objeto extremamente importante:

O crachá do visitante

Esse crachá é o ACEE.


Quando um visitante entra no castelo, ele recebe um documento dizendo:

Quem ele é.

A quais guildas pertence.

Quais áreas pode visitar.

Se possui privilégios especiais.

Qual certificado utiliza.

Seu UID UNIX.

Seu MFA.

Suas etiquetas de segurança.

Enquanto estiver dentro do castelo, ninguém precisa voltar ao cartório para perguntar novamente quem ele é.

Basta olhar o crachá.

Este crachá é exatamente o papel do ACEE.


O que significa ACEE?

Accessor Environment Element

Nome curioso.

Mas faz sentido.

Accessor

Quem acessa.

Environment

Seu contexto operacional.

Element

Estrutura residente.


Podemos traduzir informalmente como:

Contexto de Segurança do Usuário em Execução

Ou

Cartão de identidade vivo do z/OS


Por que a IBM criou o ACEE?

Precisamos voltar algumas décadas.


Década de 70

MVS começava a crescer.

TSO expandia.

CICS ganhava força.

DB2 ainda nem existia.


Imagine:

500 usuários simultâneos.

Cada READ.

Cada OPEN.

Cada EXEC CICS.

Precisasse consultar RACF.

Seria um desastre.


O custo seria:

CPU

I/O

ENQ

Contenção

Latência


Então a IBM criou uma ideia brilhante.

Após autenticar.

Copiar informações relevantes.

Colocar tudo em memória.

Consultar apenas memória.

Nascia o ACEE.


A primeira geração

MVS

RACF 1.x

Conceito simples.

Userid

Grupo

Authority


Poucos campos.

Pequena estrutura.


Segunda geração

MVS/XA

MVS/ESA

Mais atributos.

Mais flags.


Suporte:

CICS

IMS

VTAM


OS/390

A internet chegou.

SSL.

Certificados.


ACEE cresceu.

Passou a armazenar:

Digital Certificates

UID

GID


z/OS

USS.

LDAP.

Kerberos.


MFA.

Passphrase.

Tokens.

JWT integration.

Custom attributes.


z/OS 3.1

Uma das novidades interessantes.

Campos customizados.

Melhor integração.

Menor I/O.

Maior escalabilidade.


O ACEE não é um Dataset

Esse é um erro comum.


O ACEE não está armazenado em:

SYS1

SYSUSER

VSAM

DB2


Ele vive em memória.


É um Control Block

Assim como:

TCB

ASCB

CVT

PSA

RB


Sysprogs adoram control blocks.

E o ACEE é um dos mais importantes.


Onde ele fica?

Depende.


TSO

Associado ao usuário.


Batch

Associado ao JOB.


CICS

Associado à região.

Ou à transação.


IMS

Associado ao BMP.

MPP.

Transaction.


USS

Associado ao processo POSIX.


MQ

Associado ao requester.


DB2

Associado ao thread.


O nascimento do ACEE

Vamos acompanhar.


Etapa 1

Usuário

Digita:

LOGON VBELLACO

Etapa 2

SAF recebe.


Etapa 3

RACF consulta banco.


Verifica:

Senha

Passphrase

MFA

Certificado


Etapa 4

RACF monta ACEE


Carrega:

Userid

Groups

UID

Authorities

Flags

Tokens

Labels


Etapa 5

Entrega para sistema.


Etapa 6

Sessão ativa.


Fluxo simplificado

USER
 │
 ▼
TSO
 │
 ▼
SAF
 │
 ▼
RACF
 │
 ▼
CREATE ACEE
 │
 ▼
SESSION

O relacionamento com o RACF

Muitos acreditam:

RACF é consultado a todo instante.

Não exatamente.


Após criação do ACEE.

A maioria das verificações utiliza informações já carregadas.


Benefícios

Menos I/O

Menos CPU

Menos contenção

Melhor throughput


O relacionamento com SAF

SAF é o porteiro.


SAF recebe pergunta.


Consulta ACEE.


Caso necessário.

Consulta RACF.


Retorna resposta.


Exemplo

CICS
 │
 ▼
SAF
 │
 ▼
ACEE
 │
 ▼
ALLOW

O relacionamento com SMF

SMF gosta de registrar tudo.


Usuário conecta.

SMF grava.


Usuário desconecta.

SMF grava.


Troca senha.

SMF grava.


Falha MFA.

SMF grava.


Tentativa inválida.

SMF grava.


Auditores adoram isso.

Sysprogs nem sempre.


O relacionamento com APF

Outro conceito interessante.

Programas APF.

Podem manipular ACEE.

Criar.

Clonar.

Substituir.

Passar contexto.


Ferramentas IBM fazem isso.

CICS faz.

DB2 faz.

IMS faz.

MQ faz.


Mas isso exige muito cuidado.


O segredo que poucos sabem

ACEE é praticamente invisível.

Usuário comum nunca vê.

Desenvolvedor COBOL raramente vê.

Administrador DB2 raramente pensa nele.


Mas sem ele.

Segurança moderna do z/OS seria extremamente lenta.


Curiosidade Bellacosa ☕

Se o RACF fosse o cartório do reino.

O SAF fosse o guarda.

E o SMF fosse o cronista.

O ACEE seria:

O crachá encantado entregue ao visitante quando ele atravessa os portões do castelo.

Enquanto o visitante estiver no reino, ninguém precisa perguntar novamente quem ele é.

O crachá responde por ele.


Para guardar na memória

O RACF sabe quem você é.

O SAF pergunta se você pode entrar.

O SMF anota tudo o que aconteceu.

Mas é o ACEE que acompanha você por todo o reino IBM Z.


☕💥 Continua na Parte 2

Anatomia do ACEE

Campos internos, flags, segmentos OMVS, certificados, MFA, UID/GID, ACEE Tokens, estruturas relacionadas e as novidades escondidas do z/OS 3.1.

📚 Honzuki no Gekokujou 3ª Temporada : Quando um Upgrade de Biblioteca se Torna uma Migração de Datacenter — A Temporada em que Myne Descobre que Conhecimento Também Tem Privilégios de ROOT

 

Bellacosa Mainframe e a terceira temporada de honzuki no gekokujou

☕ Um Café no Bellacosa Mainframe

📚 Honzuki no Gekokujou 3ª Temporada (本好きの下剋上 第三部): Quando um Upgrade de Biblioteca se Torna uma Migração de Datacenter — A Temporada em que Myne Descobre que Conhecimento Também Tem Privilégios de ROOT

"Até aqui Myne acreditava que bastava produzir livros para mudar o mundo. A terceira temporada revela uma verdade conhecida por qualquer arquiteto de sistemas: tecnologia nunca caminha sozinha. Ela sempre encontra política, segurança, governança e disputas por poder."


Introdução

Se a primeira temporada mostrou a criação da infraestrutura e a segunda ensinou como sobreviver à burocracia, a terceira temporada apresenta aquilo que todo profissional de tecnologia acaba descobrindo cedo ou tarde:

quem controla a infraestrutura controla o futuro.

Até então Myne lutava para democratizar o conhecimento.

Agora ela precisa proteger esse conhecimento de pessoas capazes de usá-lo como arma política.

Sob a ótica do Bellacosa Mainframe, esta temporada representa a passagem definitiva de um projeto experimental para um ambiente corporativo crítico, onde qualquer erro pode comprometer toda a organização.

Não estamos mais falando apenas de livros.

Estamos falando de arquitetura institucional.


Ficha Técnica

Título original

本好きの下剋上 ~司書になるためには手段を選んでいられません~ 第三期

(Honzuki no Gekokujou: Shisho ni Naru Tame ni wa Shudan wo Erandeiraremasen – Dai San Ki)

Título internacional

Ascendance of a Bookworm – Season 3


Autor

Miya Kazuki


Ilustrações

You Shiina


Estúdio

Ajia-do Animation Works

O estúdio mantém sua filosofia.

Poucos efeitos extravagantes.

Pouca ação gratuita.

Muito diálogo.

Muito desenvolvimento de personagens.

Muito worldbuilding.

É praticamente uma aula sobre como contar histórias utilizando consistência ao invés de espetáculo.


Direção

Mitsuru Hongo

Sua direção demonstra enorme confiança no roteiro.

Não existe necessidade de acelerar acontecimentos.

As tensões crescem naturalmente.

O espectador percebe que algo enorme está para acontecer muito antes das explosões aparecerem.


Data de lançamento

12 de abril de 2022

Exibição encerrada em

14 de junho de 2022


Episódios

10 episódios

Embora seja a temporada mais curta, talvez seja a mais intensa.


Classificação

Fantasia

Isekai

Drama

Slice of Life

Política

Religião

Economia

Construção de Mundo

Magia


Faixa indicativa

12 anos

Apesar da ausência de violência gráfica intensa, aborda temas complexos:

  • conspiração

  • abuso de autoridade

  • diferenças sociais

  • exploração infantil

  • tráfico de pessoas

  • corrupção institucional

  • responsabilidade política


Sinopse

Após conquistar respeito dentro do Templo, Myne passa a chamar atenção da alta nobreza.

Seu enorme poder mágico, sua inteligência e suas invenções tornam-se ativos estratégicos.

Enquanto continua sonhando em espalhar livros pelo mundo, ela descobre que algumas pessoas pretendem utilizá-la como ferramenta política.

Pela primeira vez, não basta ser inteligente.

Será necessário sobreviver ao jogo do poder.


Resumo da História

Toda a temporada gira em torno de uma simples pergunta.

Quem terá o controle sobre Myne?

Ela deixa de ser apenas uma menina talentosa.

Agora representa:

capital

conhecimento

magia

prestígio

influência

futuro.

É exatamente assim que empresas tratam profissionais extremamente estratégicos.


Bellacosa Mainframe

Myne torna-se um Sistema Crítico

Na primeira temporada:

Era um software interessante.

Na segunda:

Virou uma aplicação importante.

Na terceira:

Transforma-se em missão crítica.

Não pode falhar.

Não pode desaparecer.

Não pode cair nas mãos erradas.


Ferdinand: o Arquiteto-Chefe

Nesta temporada Ferdinand revela toda sua capacidade estratégica.

Ele pensa vários movimentos à frente.

Não reage aos acontecimentos.

Planeja.

Mitiga riscos.

Controla danos.

Protege ativos.

Age exatamente como um arquiteto IBM Z responsável por um ambiente financeiro nacional.


A evolução de Myne

A protagonista amadurece enormemente.

Já não pensa apenas em livros.

Precisa considerar:

segurança

política

família

nobreza

responsabilidade

impacto social

Ela percebe que conhecimento também cria conflitos.


Os personagens

Myne

Agora assume papel de liderança.

Sua maturidade cresce de maneira impressionante.


Ferdinand

Provavelmente o personagem mais brilhante da temporada.

Cada decisão sua possui múltiplos objetivos.

É um verdadeiro estrategista.


Benno

Continua sendo o empresário visionário.

Entende rapidamente como proteger investimentos.


Lutz

Mesmo aparecendo menos, permanece símbolo da amizade verdadeira.

Representa o mundo simples do qual Myne veio.


Karstedt

Passa a ter importância crescente.

Mostra como a nobreza funciona internamente.


Sylvester

Inicialmente parece apenas um nobre excêntrico.

Pouco a pouco demonstra enorme inteligência política.

Cada conversa dele possui camadas escondidas.


Delia, Fran, Gil e Rosina

Todos evoluem.

A obra nunca abandona personagens.

Todos possuem função dentro da narrativa.


As aventuras

Ao contrário de uma aventura tradicional, os desafios são diplomáticos.

Descobrir conspirações.

Proteger órfãos.

Expandir a biblioteca.

Produzir livros.

Lidar com nobres.

Enfrentar sacerdotes corruptos.

Administrar crises.

Proteger aliados.

Negociar alianças.

Cada episódio parece uma partida de xadrez.


A verdadeira temática

A terceira temporada discute algo extremamente atual.

Conhecimento produz poder.

Mas também produz medo.

Quanto maior a inovação.

Maior a resistência.


O paralelo com IBM Mainframe

Imagine desenvolver uma solução revolucionária.

Ela reduz custos.

Aumenta produtividade.

Moderniza processos.

Logo aparecem pessoas tentando:

controlá-la

comprá-la

escondê-la

politizá-la

bloqueá-la.

É exatamente isso que acontece com Myne.


As mensagens ocultas

Tecnologia sem governança gera caos

Não basta criar.

É preciso administrar.


Poder nunca permanece vazio

Sempre haverá alguém tentando ocupá-lo.


Educação modifica estruturas sociais

Livros representam liberdade.

Quem aprende pensa.

Quem pensa questiona.

Quem questiona muda instituições.


A família continua sendo o maior ativo

Apesar da política.

Da magia.

Da nobreza.

Da riqueza.

Myne jamais esquece sua família.

Essa talvez seja a maior força da personagem.


Liderança exige sacrifício

Quanto mais influência Myne conquista.

Mais precisa abrir mão de sua vida anterior.

É uma metáfora sobre o preço da responsabilidade.


O que torna esta temporada diferente?

A escala muda completamente.

Primeira temporada.

Sobrevivência.

Segunda.

Integração institucional.

Terceira.

Estratégia.

O anime deixa definitivamente de ser um Slice of Life.

Transforma-se em um drama político.


O ritmo

Alguns espectadores estranham.

Há poucos combates.

Poucas explosões.

Muito diálogo.

Mas justamente esses diálogos movem toda a história.

É quase uma série política ambientada em fantasia medieval.


Qualidade da adaptação

A terceira temporada adapta uma parte muito densa das light novels e, por isso, foi a que mais condensou acontecimentos. Diversos eventos envolvendo a política da nobreza, os conflitos internos do Templo e o desenvolvimento de personagens secundários receberam menos tempo de tela do que no material original. Ainda assim, os principais momentos emocionais e as decisões que mudam o destino de Myne foram preservados, permitindo uma narrativa coesa e impactante.


Houve censura?

Não há registros de censura significativa na terceira temporada. O anime manteve temas delicados como corrupção, exploração de órfãos, disputas de poder e desigualdade social. Algumas cenas mais intensas foram suavizadas em comparação com as light novels, mas isso ocorreu principalmente por questões de ritmo e adequação ao formato televisivo, e não por intervenção censória.


Impacto Cultural

A terceira temporada consolidou Ascendance of a Bookworm como uma das franquias de fantasia mais respeitadas do Japão. A qualidade da construção de mundo e a evolução constante de Myne fizeram com que muitos críticos comparassem a série a grandes obras de fantasia política, destacando sua capacidade de abordar economia, religião, administração e relações de poder sem perder o foco nos personagens.

Também aumentou a expectativa pela adaptação da Parte 3 das light novels, considerada por muitos leitores como o ponto em que a história alcança uma escala ainda maior, envolvendo a alta nobreza e transformações profundas na sociedade.


Bellacosa Mainframe Score

ItemNota
História⭐⭐⭐⭐⭐ (10/10)
Construção de Mundo⭐⭐⭐⭐⭐ (10/10)
Política e Estratégia⭐⭐⭐⭐⭐ (10/10)
Desenvolvimento da Protagonista⭐⭐⭐⭐⭐ (10/10)
Personagens Secundários⭐⭐⭐⭐⭐ (9,8/10)
Trilha Sonora⭐⭐⭐⭐☆ (9,2/10)
Animação⭐⭐⭐⭐☆ (8,9/10)
Fidelidade à Essência da Obra⭐⭐⭐⭐⭐ (9,5/10)
Originalidade⭐⭐⭐⭐⭐ (10/10)
Valor Educacional⭐⭐⭐⭐⭐ (10/10)

Conclusão

A terceira temporada de Honzuki no Gekokujou representa a fase em que um projeto deixa de ser apenas uma inovação promissora e passa a influenciar toda a arquitetura de uma organização. Myne compreende que livros são apenas o início; o verdadeiro desafio é proteger o conhecimento, garantir sua continuidade e impedir que ele seja monopolizado por grupos de poder.

Na visão do Bellacosa Mainframe, essa temporada retrata a responsabilidade de quem administra um ambiente IBM Z crítico: não basta dominar a tecnologia. É preciso entender governança, segurança, relações humanas e estratégia. Afinal, sistemas podem ser atualizados com um deploy, mas transformar uma sociedade exige confiança, liderança e uma visão de longo prazo.

É por isso que a terceira temporada é considerada um divisor de águas. Ela mostra que a maior revolução não acontece quando se cria uma nova ferramenta, mas quando essa ferramenta começa a alterar a estrutura de poder de todo um mundo.


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
GitHub LinkedIn
Inicializando conteúdo...