☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

Mostrar mensagens com a etiqueta monitoramento. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta monitoramento. Mostrar todas as mensagens

quarta-feira, 26 de agosto de 2026

🚀 A Hidrelétrica Digital — Quando o Agente J Entrou na Sala de Controle do z/OS e Descobriu que Cem Alertas Não Eram Cem Problemas

 

Bellacosa Mainframe e a hidreletrica digital monitorando um mainframe

☕ Um Café no Bellacosa Mainframe

🚀 A Hidrelétrica Digital — Quando o Agente J Entrou na Sala de Controle do z/OS e Descobriu que Cem Alertas Não Eram Cem Problemas

Ou: o mainframe não precisava de mais pares de olhos diante de dashboards; precisava de sensores, contexto, bons procedimentos e alguém que não apertasse o botão vermelho só porque Igor disse que a luz estava piscando

O Agente J, recém-saído de mais uma manhã tentando explicar ao público que alienígenas não usavam cartão de ponto, entrou no centro de operações e parou diante de uma parede de telas. Havia gráficos verdes, amarelos, vermelhos, mapas de aplicações, filas, porcentagens de CPU, mensagens de console, tickets e, em um canto suspeito, um operador olhando para o JES como quem esperava que ele revelasse o futuro nas entranhas de um SYSOUT.

— Então é aqui que vocês protegem o banco? — perguntou J.

— Em tese — respondeu o Agente K. — Em prática, às vezes protegemos o banco de 97 alertas que são a mesma coisa usando fantasias diferentes.

O colega apontou para a tela. A CPU estava alta. Uma fila MQ crescia. O Db2 apresentava espera. Uma transação CICS ficava lenta. Um job batch ultrapassara o horário previsto. A API móvel exibia aumento de timeout.

— São seis incidentes? — J perguntou.

K colocou os óculos escuros, porque alguma instituição provavelmente ainda não havia inventado um protocolo para isso.

— Talvez seja um só. Esse é o problema.

É aí que começa a conversa sobre Mainframe Operations inteligente. Não se trata de substituir o operador L1, o analista L2, o DBA, o especialista CICS ou aquela pessoa que conhece uma regra de negócio tão antiga que parece ter sido entregue junto com o primeiro cartão perfurado. Trata-se de parar de usar profissionais experientes como sensores biológicos de dashboard.

O mainframe continua sendo uma das salas de máquinas mais confiáveis do mundo. Mas confiável não significa simples. Ele conversa com aplicações web, mobile, APIs, nuvens, filas, parceiros, cartões, pagamentos, batches, sistemas de fraude e uma coleção de integrações que, em alguns bancos, já possui mais dependências do que a árvore genealógica dos Targaryen. Observar tudo isso apenas olhando telas é como operar uma hidrelétrica com uma lanterna e um caderninho.


A hidrelétrica que, por acaso, processa pagamentos

A melhor analogia para entender AIOps no mainframe é uma hidrelétrica moderna.

Uma usina possui centenas ou milhares de sinais: nível da água, vazão, pressão, vibração, temperatura, rotação da turbina, posição de comportas, tensão, frequência e estado de equipamentos. Um sensor isolado raramente conta a história inteira. Uma vibração levemente maior pode ser normal. Vibração crescente junto com temperatura elevada, perda de eficiência e alteração de pressão é outra conversa: alguém precisa investigar antes que a conversa vire notícia.

O ambiente z/OS tem seus próprios sensores:

  • CPU, memória, dispatching e metas de serviço do WLM;

  • I/O, canais, volumes e espaço de DASD;

  • jobs, initiators, spool e mensagens do JES2;

  • tempos de resposta e regiões do CICS;

  • locks, waits, pools e SQL no Db2;

  • filas, canais e consumidores no MQ;

  • transações IMS e conectividade TCP/IP;

  • logs, traces, mensagens do console e registros SMF;

  • latência de APIs, erros de aplicativos e experiência do cliente.

O cliente, no entanto, não vê nenhum desses itens. Ele vê uma pergunta de cinco segundos: “o PIX foi?”, “o pagamento entrou?”, “consigo consultar meu saldo?”, “a folha fechou?”.

Por isso, operação madura não monitora apenas componentes. Ela monitora serviços de negócio e usa os componentes para explicar o que aconteceu com eles.

CPU alta numa LPAR pode ser apenas o processamento esperado do fechamento. CPU alta, fila MQ crescendo, transação CICS acima do SLO e timeout no app bancário é uma tempestade se formando. A diferença não está no gráfico; está no contexto.


Antes da IA: alerta, evento, incidente, problema e mudança

Em operações, algumas palavras são tratadas como sinônimos até o dia em que deixam de ser. Vale colocá-las em ordem antes de dar uma pistola neuralizadora ao dashboard.

Um evento é qualquer ocorrência observável: uma mensagem no console, um job terminando, uma conexão caindo, uma alteração de estado. Um alerta é um evento que cruza uma regra de atenção: a fila passou de determinado tamanho, o tempo de resposta ultrapassou um limite, um recurso ficou indisponível.

Um incidente é quando um serviço está interrompido ou degradado. “Clientes não conseguem pagar” é incidente. Já um problema é a causa persistente ou subjacente que pode produzir vários incidentes: um plano SQL ruim, uma parametrização incorreta, um vazamento de recurso, um processo batch concorrendo de modo inadequado.

E há a mudança: o deploy, ajuste de parâmetro, manutenção ou alteração de configuração que pode ser a solução, a causa ou uma coincidência muito suspeita.

O erro clássico do monitoramento tradicional é transformar cada alerta em um incidente. Assim, uma única regressão após um deploy gera tickets separados para API, CICS, Db2, MQ, rede e storage. Cada equipe recebe seu fragmento do elefante e conclui que a culpa está em outra sala.

O objetivo da correlação é fazer o caminho oposto: agrupar os sintomas e apresentar um incidente operacional coerente.

Incidente: Pagamentos digitais degradados.
Impacto: clientes com timeout acima de três segundos.
Serviços envolvidos: API Payments → CICS PAYM → Db2 DBPAY → MQ.
Início: logo após a mudança CHG004321.
Hipótese: aumento de chamadas e regressão de plano SQL.
Próximo passo: coletar evidências e executar runbook aprovado.

Note a palavra importante: hipótese. Uma plataforma inteligente deve apresentar causa provável e nível de confiança, não posar de oráculo. Correlação temporal é valiosa; não é prova definitiva de causalidade.



O que as ferramentas trazem para a sala de controle

Ferramentas como IBM OMEGAMON, BMC AMI Ops e Broadcom SYSVIEW dão visibilidade profunda de z/OS e seus subsistemas. Elas ajudam a enxergar o que realmente acontece na LPAR, no CICS, no Db2, no MQ, no IMS, no JES e nos recursos que sustentam a carga. São os instrumentos de engenharia da usina.

IBM Z System Automation, NetView e soluções como OPS/MVS entram mais diretamente na parte de automação orientada a eventos, disponibilidade e ações controladas. Elas podem detectar estados, aplicar políticas e disparar procedimentos conhecidos.

No outro extremo da jornada, plataformas de observabilidade como Instana, Dynatrace e AppDynamics ajudam a costurar a visão de ponta a ponta: o clique no aplicativo, a API, o middleware, a transação no mainframe e o retorno ao cliente. Splunk e Elastic podem centralizar logs, eventos e análises, desde que os dados tenham qualidade, horário confiável e acesso devidamente protegido. ServiceNow organiza o processo: ticket, mudança, aprovação, SLA, escalonamento, CMDB e workflow.

O detalhe que slides de marketing omitem é este: nenhuma dessas ferramentas, isoladamente, é AIOps. A inteligência aparece na integração.

Um monitor detecta a anomalia. A topologia informa as dependências. A CMDB identifica o serviço e seu dono. O histórico aponta o comportamento esperado. O motor de correlação reduz o ruído. O ServiceNow abre um incidente já enriquecido. A automação executa uma ação de baixo risco. E a observabilidade confirma se o serviço voltou a funcionar.

Sem esse encadeamento, temos várias telas bonitas. Com ele, temos uma sala de controle.


Threshold estático: o velho porteiro ainda tem emprego

“Alerta quando CPU ultrapassar 90%.” É uma regra simples, útil e incompleta.

Às duas da manhã, no processamento mensal, 90% pode ser esperado. Às duas da tarde, numa LPAR que normalmente opera a 45%, 65% pode ser a primeira pista de algo muito estranho. É aqui que entram baseline, sazonalidade e detecção de anomalia.

Uma boa análise pergunta:

  • este comportamento é normal para este horário e este dia?

  • houve alteração abrupta, mesmo abaixo do limite absoluto?

  • quais métricas se moveram juntas?

  • qual serviço de negócio foi afetado?

  • houve mudança, deploy ou manutenção recente?

  • o impacto é crescente ou estável?

Mas não se deve jogar fora os limites rígidos. Espaço de DASD quase esgotado, fila aproximando-se de limite físico, certificado prestes a expirar e recurso indisponível não precisam aguardar uma tese de machine learning. O ambiente maduro combina limites determinísticos para riscos claros e anomalias estatísticas para padrões sutis.

O Agente J resumiria assim: “Se o reservatório está transbordando, não vamos montar um comitê para saber se a água parece incomumente molhada.”



Do alerta ao incidente: um caso de banco digital

Imagine que, às 10h05, clientes começam a relatar lentidão ao efetuar pagamentos.

No modo antigo, L1 abre o dashboard da aplicação e vê timeout. Depois consulta CICS e identifica transações com maior tempo de resposta. Abre Db2 e encontra waits. Vai ao SDSF verificar jobs. Olha MQ. Procura mensagens. Cria ticket. Escala para L2, DBA, middleware, infraestrutura e, por segurança, para a equipe que fez o último deploy. Todos começam a investigar ângulos diferentes.

No modelo inteligente, as informações chegam correlacionadas. A plataforma observa que:

  • a jornada “pagamento digital” ultrapassou seu SLO;

  • a API Payments aumentou o volume de requisições;

  • a transação CICS PAYM ficou lenta;

  • o Db2 mostrou aumento de waits e uma consulta específica mudou de comportamento;

  • a fila MQ começou a acumular mensagens;

  • tudo teve início minutos após uma mudança registrada.

O L1 não recebe seis sirenes. Recebe um incidente com impacto, dependências, evidências, possíveis responsáveis e runbook.

Isso não elimina a investigação técnica. Elimina a caça ao tesouro inicial — aquela meia hora em que cada pessoa tenta descobrir se o incêndio é real, onde começou e quem tem a chave do armário de mangueira.

Para um programador COBOL iniciante, existe uma lição excelente aí: seu PROGRAM-ID quase nunca vive sozinho. Uma rotina aparentemente inocente pode chamar Db2, publicar em MQ, ser acionada por CICS, expor dados por API e participar de um fluxo que movimenta dinheiro. Aprender a observar o caminho da transação é tão importante quanto acertar o PERFORM.



Self-healing sem transformar Igor em DBA de produção

Automação de recuperação é maravilhosa até alguém programar uma rotina para derrubar uma região CICS crítica por causa de um alerta mal calibrado. Por isso, “self-healing” precisa ser dividido por risco.

Há ações ótimas para automação total:

  • coletar logs, mensagens, dumps e métricas quando surge uma anomalia;

  • abrir e enriquecer incidentes;

  • executar health checks;

  • reiniciar um processo isolado e conhecido;

  • elevar temporariamente o nível de monitoramento;

  • pausar uma cadeia batch antes que um erro se propague;

  • fazer a notificação e o escalonamento corretos.

Outras ações devem ser assistidas ou requerer aprovação:

  • cancelar batch crítico;

  • alterar WLM;

  • modificar parâmetro Db2;

  • derrubar ou reciclar região compartilhada;

  • fazer failover;

  • alterar RACF, certificados, conectividade ou regras de segurança;

  • realizar rollback de aplicação.

A regra de ouro é simples: quanto maior o raio de explosão, maior a necessidade de aprovação humana, trilha de auditoria e rollback.

Uma hidrelétrica não permite que um algoritmo abra todas as comportas porque um sensor piscou. Ela trabalha por níveis: automático para ajustes seguros e reversíveis; assistido para recomendações que o operador aprova; manual para decisões críticas. A operação de mainframe deveria seguir exatamente essa filosofia.

Igor, naturalmente, propôs colocar CANCEL JOB(*) dentro de um botão verde chamado “cura automática”. O Agente K confiscou o teclado. Segurança também é uma forma de carinho.



L1 e L2: menos mensageiros, mais operadores de exceção

A evolução não diminui o valor de L1 e L2; ela muda o tipo de valor entregue.

L1 deixa de ser a pessoa que copia mensagens de console para um ticket e pode se tornar operador de exceções: valida impacto, executa runbooks aprovados, confirma se a correção funcionou, faz comunicação operacional e escalona com evidências.

L2 ganha espaço para trabalho que diminui as próximas madrugadas ruins: análise de causa raiz, ajuste de alertas, automações, gestão de capacidade, revisão de arquitetura, melhoria de runbooks e eliminação de falhas recorrentes.

Isso é próximo da cultura de SRE: não basta apagar incêndio com eficiência; é preciso descobrir por que o prédio continua tendo incêndios na mesma tomada.



A parte chata que salva o projeto: dados, nomes e procedimentos

Antes de contratar uma IA com nome de nave espacial, arrume a base.

Se a aplicação é chamada de PAGTO no mainframe, “Pix” pelo negócio, “Payments Hub” na CMDB e APP-347 no dashboard, a ferramenta não ganhou contexto; ganhou quatro identidades secretas para o mesmo serviço. Nem o MIB tem orçamento para isso.

Os obstáculos reais costumam ser:

  • alertas duplicados ou sem dono;

  • topologia e CMDB desatualizadas;

  • logs sem correlação, timestamp confiável ou padronização;

  • mudanças sem registro operacional;

  • runbooks velhos, incompletos ou guardados na cabeça de uma única pessoa;

  • ausência de SLOs e indicadores de impacto de negócio;

  • automações sem teste, validação ou rollback;

  • permissões excessivas em contas técnicas.

Lembre-se: IA alimentada por telemetria ruim apenas produz conclusões ruins com uma confiança irritantemente bem redigida.



Um roteiro possível para começar

Não tente modernizar todos os alertas do universo numa única change. Comece pequeno, mensurável e dolorosamente real.

Primeiro: reduza ruído. Revise alertas. Cada alerta deve ter dono, severidade, ação esperada e justificativa. Se ninguém sabe o que fazer quando ele dispara, provavelmente não é alerta; é decoração sonora.

Segundo: escolha jornadas críticas. Pagamento, PIX, cartão, fechamento, folha, faturamento, autorização. Comece por aquilo cuja indisponibilidade o negócio percebe em minutos.

Terceiro: mapeie dependências. Desenhe API, middleware, CICS/IMS, Db2, MQ, batch, rede, storage e terceiros. A pergunta é: “se isto falhar, quem sente?”

Quarto: escreva runbooks utilizáveis. Não um PDF de 200 páginas enterrado no SharePoint. Um procedimento que diga sintomas, verificações, comandos autorizados, evidências, critérios de parada, escalonamento e rollback.

Quinto: automatize a coleta antes da correção. Fazer a máquina montar um ticket excelente e reunir evidências já reduz muito MTTR. Automação de remediação vem depois, em ações reversíveis e testadas.

Sexto: correlacione casos recorrentes. Se três incidentes por mês começam com a mesma combinação de sinais, essa é uma ótima primeira regra. A automação deve nascer de dor repetida, não de entusiasmo em reunião.

Sétimo: valide o resultado. Uma ação só é recuperação se o serviço voltou ao SLO. Reiniciar uma tarefa e fechar o ticket porque o alerta sumiu é como desligar o alarme de incêndio e declarar que a fumaça foi embora.



O que medir para saber se a inteligência existe

Não conte telas, licenças ou gráficos com inteligência artificial desenhada no canto. Meça resultado:

  • quantidade de alertas por incidente real;

  • redução de ruído;

  • MTTA, o tempo até reconhecer o incidente;

  • MTTR, o tempo até restaurar o serviço;

  • percentual de incidentes detectados antes do cliente;

  • taxa de sucesso e falha das automações;

  • reincidência dos principais problemas;

  • percentual de tickets enriquecidos automaticamente;

  • cobertura de serviços críticos com SLO e dependências mapeadas.

O indicador mais honesto é simples: o operador passa menos tempo caçando pistas e mais tempo prevenindo a próxima falha?



Epílogo — Não é Skynet; é uma usina bem operada

Mainframe Operations inteligente não é dar autonomia ilimitada a um modelo e esperar que ele descubra o significado de IEC161I enquanto a produção queima. É criar uma operação que coleta sinais, entende dependências, relaciona tecnologia com negócio, aplica procedimentos seguros e mantém pessoas experientes no circuito.

O futuro não é “menos humanos”. É menos trabalho mecânico, menos escalonamento cego, menos alertas inúteis e mais inteligência aplicada ao que realmente importa.

Quando o Agente J saiu da sala, perguntou se poderia usar o neuralyzer para apagar da memória dos operadores todos os alertas duplicados.

K balançou a cabeça.

— Não. Primeiro precisamos corrigir a regra que os gera.

E aquele, para quem já enfrentou uma madrugada de console cheio e café frio, foi o momento mais sensato de toda a operação.

Easter egg para quem viveu o mainframe: se um dashboard declarar tudo verde enquanto o usuário reclama que nada funciona, desconfie. Talvez não seja uma invasão alienígena. Talvez alguém esteja monitorando o recurso certo… para o serviço errado.

quarta-feira, 10 de junho de 2026

☕💣🚨 LABORATÓRIO IMS PARA SYSPROGS E SYSADMINS

 

Bellacosa Mainframe e um laboratorio pratico IMS DB

☕💣🚨 LABORATÓRIO IMS PARA SYSPROGS E SYSADMINS

10 Incidentes Reais de Monitoramento e Troubleshooting no IMS Mainframe

Este laboratório foi projetado para colocar o aluno em situações próximas das encontradas em bancos, seguradoras e ambientes corporativos que utilizam IMS TM e IMS DB.

Objetivo:

  • Desenvolver raciocínio de troubleshooting

  • Interpretar sintomas

  • Utilizar monitoramento

  • Identificar causa raiz

  • Aplicar correções


LAB 1 — Filas OTMA Crescendo Sem Parar

Cenário

Usuários reclamam que operações via aplicativo móvel estão lentas.

Monitoramento:

OMEGAMON IMS

OTMA Queue Depth

08:00 -> 100
08:05 -> 500
08:10 -> 1500
08:15 -> 3500

O que investigar

Verificar:

/DIS TMEMBER
/DIS TRAN

Analisar:

  • IMS Connect

  • OTMA

  • MPPs disponíveis


Diagnóstico

As mensagens chegam.

Os programas não conseguem consumi-las.


Causa Raiz

Todas as MPPs estão ocupadas.


Solução

Aumentar MPPs:

/START REGION TYPE(MPP)

ou corrigir programa que está monopolizando processamento.


LAB 2 — IMS Connect Respondendo Lentamente

Cenário

Aplicativo mobile demora 15 segundos.

Terminal IMS continua rápido.


Monitoramento

PING OK

IMS TM OK

IMS Connect Response
15 segundos

Investigação

Verificar:

NETSTAT
AT-TLS
TCPIP

Diagnóstico

Handshake TLS excessivamente lento.


Causa

Certificado expirado gerando renegociações.


Solução

Atualizar certificados RACF.

Reiniciar componentes TLS.


LAB 3 — Região MPP Consumindo CPU Excessiva

Cenário

CPU dispara para 95%.


Monitoramento

RMF

IMSMPR01

CPU = 92%

Investigação

Verificar:

/DIS REGION

Analisar dumps.


Diagnóstico

Loop lógico no programa COBOL.


Causa

GN executado sem condição de parada.


Solução

Corrigir programa.

Recompilar.

Reimplantar.


LAB 4 — Banco IMS Não Abre

Cenário

Após IPL:

/START DB

Falha.


Mensagem

DATABASE NOT AVAILABLE

Investigação

Consultar:

DBRC
RECON

Diagnóstico

Image Copy inconsistente.


Causa

Backup interrompido.


Solução

Executar Recovery.

Gerar nova Image Copy.


LAB 5 — Shared Queue Congestionada

Cenário

IMSplex apresenta lentidão.


Monitoramento

CQS Queue Depth

Normal: 300

Atual: 25.000

Investigação

Verificar:

CQS
CF
Shared Queues

Diagnóstico

Estrutura da Coupling Facility saturada.


Solução

Expandir estrutura.

Redistribuir carga.


LAB 6 — Falha de Comunicação Mobile → IMS

Cenário

Aplicativo recebe:

HTTP 503

Investigação

Fluxo:

Mobile
 |
API
 |
z/OS Connect
 |
IMS Connect

Diagnóstico

IMS Connect indisponível.


Verificação

D A,L

Solução

Reiniciar:

S HWS

LAB 7 — Crescimento Anormal de Storage

Cenário

IMS termina com:

S878

Monitoramento

Region Storage

31-bit exhausted

Investigação

Analisar:

Buffers
Pools
Storage reports

Diagnóstico

Buffer pool configurado incorretamente.


Solução

Redimensionar buffers.

Migrar estruturas para 64 bits.


LAB 8 — Tempo de Resposta Intermitente

Cenário

Usuário reclama:

Às vezes rápido.
Às vezes lento.

Monitoramento

RMF

I/O Peaks

Investigação

Verificar:

  • DASD

  • Storage Controller

  • Canal FICON


Diagnóstico

Contenção de I/O.


Solução

Redistribuir datasets.

Balancear volumes.


LAB 9 — Falha de Recovery

Cenário

Recovery falha.


Mensagem

LOG RECORD MISSING

Investigação

Analisar:

RECON
Archive Logs
DBRC

Diagnóstico

Log arquivado ausente.


Solução

Restaurar log perdido.

Reexecutar recovery.


LAB 10 — O Incidente das 2 da Manhã

Cenário

Todos os sintomas aparecem ao mesmo tempo.

Filas crescendo
CPU alta
Usuários reclamando
Mobile lento

Monitoramento

OMEGAMON
RMF
IMS
TCPIP

Investigação

Passo 1

CPU

Passo 2

Storage

Passo 3

IMS Connect

Passo 4

MPP

Passo 5

OTMA

Diagnóstico

Uma única MPP travada.

Todas as filas aguardando.


Solução

Cancelar região problemática.

/CANCEL REGION

Iniciar nova região.

/START REGION TYPE(MPP)

Filas normalizam.

Sistema volta ao normal.


Resultado Esperado do Laboratório

Ao concluir os 10 incidentes o aluno terá contato com:

✅ IMS TM

✅ IMS Connect

✅ OTMA

✅ MPP

✅ BMP

✅ Shared Queues

✅ CQS

✅ IMSplex

✅ DBRC

✅ Recovery

✅ Storage

✅ Performance

✅ OMEGAMON

✅ RMF

✅ RACF

✅ TCP/IP

E principalmente aprenderá a pensar como um Sysprog ou Sysadmin experiente:

"Não procurar apenas o erro, mas entender o fluxo completo da transação do usuário até o IMS Database."

☕💣🚀 Regra de ouro do laboratório: em ambientes IMS, o sintoma raramente está no mesmo lugar da causa raiz. O trabalho do Sysprog e do Sysadmin é seguir a trilha da transação até encontrar o verdadeiro culpado.


domingo, 7 de junho de 2026

IMS DB: A Vida de um SysAdmin no Mundo do Gigante Invisível do Mainframe

 

Bellacosa Mainframe e o IMS DB sob a visão de um SysAdmin

☕💣🚨 OPERADOR, O ALERTA ACABOU DE DISPARAR... E O IMS ESTÁ NO MEIO DA HISTÓRIA!

A Vida de um Sysadmin no Mundo do Gigante Invisível do Mainframe

São 02h17 da manhã.

O telefone toca.

Nenhuma notícia boa chega nesse horário.

O Sysadmin abre os olhos, pega o celular e encontra uma mensagem curta, objetiva e preocupante:

"Aplicação crítica com lentidão. Filas crescendo. Possível incidente IMS."

Pronto.

O sono acabou.

O café ainda nem começou.

Mas a investigação já está em andamento.

Enquanto milhões de pessoas dormem tranquilamente, existe um exército invisível de profissionais garantindo que bancos, seguradoras, operadoras de cartão, sistemas de saúde e órgãos governamentais continuem funcionando.

Entre eles está o Sysadmin.

E muitas vezes, sem perceber, ele acaba entrando no fascinante universo do IMS.


O Grande Equívoco

Existe uma ideia muito comum entre profissionais iniciantes.

Quando escutam a palavra IMS, imaginam imediatamente:

"Ah, isso é coisa de DBA."

Ou:

"Isso é assunto para programador COBOL."

Ou ainda:

"Isso é responsabilidade do time de aplicações."

E então surge a primeira surpresa.

O Sysadmin interage com o IMS muito mais do que imagina.

Talvez não criando DBDs.

Talvez não escrevendo chamadas DL/I.

Mas certamente monitorando, operando, automatizando, diagnosticando e sustentando o ambiente.


O Que o Usuário Não Vê

Quando alguém faz um PIX pelo celular, a experiência parece simples.

Alguns toques na tela.

Uma confirmação.

Dinheiro transferido.

Fim da história.

Mas por trás daquele gesto existe uma cadeia impressionante:

Aplicativo.

API.

Middleware.

IMS Connect.

IMS TM.

COBOL.

IMS DB.

Mainframe.

Storage.

Rede.

Segurança.

E se qualquer elo dessa corrente apresentar problemas, o primeiro profissional acionado muitas vezes será justamente o Sysadmin.


O Centro de Comando

Imagine uma sala de operações.

Monitores por todos os lados.

Dashboards.

Alertas.

Métricas.

Logs.

Gráficos.

O Sysadmin observa constantemente:

  • Utilização de CPU

  • Consumo de memória

  • Filas

  • Jobs

  • Transações

  • Regiões ativas

  • Recursos críticos

Durante anos ele aprendeu a monitorar:

  • JES2

  • CICS

  • DB2

  • TCP/IP

Mas então surge o IMS.

E ele descobre um novo universo.


O Primeiro Contato

Quase sempre o primeiro contato acontece através de um alerta.

Talvez:

"Fila crescendo."

Ou:

"Tempo de resposta degradado."

Ou:

"Transações aguardando processamento."

Nesse momento o Sysadmin percebe que existe algo além da aplicação.

Existe um componente que recebe mensagens.

Distribui trabalho.

Controla filas.

Executa programas.

Gerencia transações.

Esse componente é o IMS TM.


O Maestro Invisível

Muitos profissionais enxergam o IMS apenas como banco de dados.

Mas o Sysadmin rapidamente descobre que existe um segundo protagonista.

O Transaction Manager.

O famoso IMS TM.

Ele funciona como um maestro.

Recebe solicitações.

Coordena programas.

Controla mensagens.

Distribui carga.

Organiza o fluxo de processamento.

Quando algo desacelera, frequentemente é ali que começam as investigações.


O Terror das Filas Crescentes

Existe uma imagem capaz de acelerar os batimentos cardíacos de qualquer Sysadmin.

Filas crescendo continuamente.

A tela mostra números aumentando.

Mais mensagens.

Mais solicitações.

Mais trabalho aguardando execução.

O usuário ainda não percebe.

A aplicação ainda responde.

Mas o profissional de operação sabe:

algo está errado.

A missão começa.


Seguindo os Rastros

A investigação costuma seguir um caminho lógico.

Primeira pergunta:

O Mainframe está saudável?

CPU?

Memória?

Storage?

Coupling Facility?

Tudo normal.

Segunda pergunta:

A rede está funcionando?

TCP/IP?

Conectividade?

TLS?

Tudo normal.

Terceira pergunta:

As regiões IMS estão processando normalmente?

E é nesse momento que o Sysadmin mergulha mais fundo no ecossistema IMS.


As Regiões Misteriosas

O Sysadmin encontra nomes que antes pareciam enigmáticos.

MPP.

BMP.

IFP.

JMP.

Control Region.

Inicialmente parecem apenas siglas.

Depois tornam-se peças fundamentais do quebra-cabeça.

Cada uma possui uma função.

Cada uma possui métricas.

Cada uma pode se transformar na origem de um incidente.

Com o tempo ele aprende a reconhecê-las quase como velhos conhecidos.


O Poder do Monitoramento

Ferramentas modernas oferecem uma visão detalhada do ambiente.

OMEGAMON.

NetView.

Automation.

Painéis customizados.

Alertas inteligentes.

O Sysadmin acompanha:

  • Taxa de transações

  • Utilização das regiões

  • Filas OTMA

  • Consumo de recursos

  • Disponibilidade dos componentes

Ele não precisa conhecer cada detalhe interno do banco.

Mas precisa identificar quando algo foge do comportamento esperado.


O Dia em Que o Recovery Chega

Todo ambiente crítico possui um momento inevitável.

A falha.

Talvez seja um erro humano.

Talvez seja uma pane de hardware.

Talvez seja uma corrupção lógica.

Quando isso acontece, uma palavra domina a reunião:

Recovery.

É nesse instante que entram em cena:

  • Logs

  • Checkpoints

  • Image Copies

  • DBRC

O Sysadmin participa garantindo que os procedimentos ocorram corretamente.

A pressão é enorme.

Porque ninguém pergunta quanto trabalho foi necessário para recuperar o sistema.

Todos querem apenas uma resposta:

"Já voltou?"


A Arte da Automação

Os melhores Sysadmins possuem uma característica em comum.

Eles odeiam repetir trabalho manual.

Por isso automatizam tudo o que podem.

No universo IMS isso significa:

  • Monitoramento automático

  • Reinício controlado

  • Abertura de chamados

  • Geração de alertas

  • Coleta de evidências

  • Verificação de disponibilidade

Muitas vezes um incidente é detectado por scripts antes mesmo que um usuário perceba o problema.


O Encontro com o IMS Connect

O mundo mudou.

As aplicações modernas não acessam diretamente um terminal verde.

Elas utilizam:

  • APIs REST

  • Aplicativos móveis

  • Portais web

  • Serviços distribuídos

A ponte entre esses mundos frequentemente é o IMS Connect.

E isso coloca o Sysadmin novamente no centro da ação.

Porque agora entram em cena:

  • Portas TCP/IP

  • Certificados digitais

  • TLS

  • RACF

  • Balanceamento

  • Firewall

Nem sempre o problema está no IMS.

Mas quase sempre o Sysadmin precisa provar isso.


O Fantasma das Madrugadas

Existe uma cena clássica.

Tudo funciona perfeitamente durante o dia.

Usuários felizes.

Aplicações rápidas.

Monitoramento tranquilo.

Então chega a madrugada.

Processamentos.

Integrações.

Batchs.

Janelas de manutenção.

E algo inesperado acontece.

O Sysadmin aprende rapidamente que a estabilidade de um ambiente não se mede pelos melhores momentos.

Mas pela forma como ele reage aos piores.


O Gigante Que Nunca Parou

Uma das maiores surpresas para quem conhece o IMS é descobrir sua idade.

O produto nasceu em 1966.

Sim.

Antes da chegada do homem à Lua.

Antes da internet.

Antes do computador pessoal.

Antes do smartphone.

Mesmo assim continua presente em ambientes modernos.

Mais impressionante ainda:

continua evoluindo.

Novas versões.

Novas integrações.

Novas capacidades.

Novas ferramentas.

Poucas tecnologias podem contar uma história semelhante.


Por Que o Sysadmin Deve Aprender IMS?

Porque ele está presente.

Porque ele continua crítico.

Porque ele aparece nos incidentes mais importantes.

Porque ele faz parte da infraestrutura.

Porque entender o fluxo das transações reduz drasticamente o tempo de diagnóstico.

E principalmente porque conhecer IMS transforma um operador de ferramentas em um profissional capaz de compreender o negócio por trás da tecnologia.


O Dia em Que Tudo Faz Sentido

Depois de algum tempo convivendo com o ambiente, algo interessante acontece.

O Sysadmin deixa de enxergar apenas componentes isolados.

Ele passa a enxergar o sistema como um organismo vivo.

As filas.

As transações.

As mensagens.

As aplicações.

As integrações.

Tudo conectado.

Tudo dependente.

Tudo trabalhando em conjunto.

E no centro dessa engrenagem gigantesca continua existindo o mesmo software criado para ajudar a NASA a organizar milhões de componentes do Saturn V.


Conclusão

☕💣🚨

Operador...

Enquanto o mundo discute inteligência artificial, computação quântica e novas linguagens de programação, existe um gigante silencioso que continua trabalhando sem descanso.

Ele processa transações.

Controla filas.

Move dinheiro.

Transporta informações.

Conecta gerações de tecnologia.

E frequentemente aparece nos momentos mais críticos da operação.

Quando o alerta toca às duas da manhã, o Sysadmin descobre que o IMS não é apenas um produto.

É uma parte fundamental da infraestrutura que sustenta o mundo digital moderno.

E quanto mais cedo ele compreender esse gigante invisível, mais preparado estará para enfrentar os desafios que realmente importam dentro de um ambiente Mainframe.


quarta-feira, 29 de abril de 2026

🚀💥 CICS: O “CONTROLADOR DE TRÁFEGO” DO MAINFRAME — ONDE TASKS NASCEM, EXECUTAM… E ÀS VEZES PRECISAM SER ELIMINADAS 💥🚀

 

Bellacosa Mainframe CICS para Sysprogs

🚀💥 CICS: O “CONTROLADOR DE TRÁFEGO” DO MAINFRAME — ONDE TASKS NASCEM, EXECUTAM… E ÀS VEZES PRECISAM SER ELIMINADAS 💥🚀

Se você é SysProg raiz, sabe: o IBM CICS não é só um subsistema — é um organismo vivo.
Milhares de transações pulsando por segundo, usuários conectados, filas, locks, DB2, MQ… e no meio disso tudo: você, com a responsabilidade de manter tudo fluindo.

Aqui vai um guia no estilo “mão na massa + café forte” pra dominar o gerenciamento do CICS no dia a dia.


🧠🔥 VISÃO MENTAL DO CICS (ANTES DE OPERAR)

Pense no CICS como:

  • Dispatcher → controla quem executa
  • Tasks (TCA) → unidades de trabalho
  • Terminal/User → origem da transação
  • Programs → lógica (COBOL, PL/I…)
  • Resources → VSAM, DB2, MQ

👉 Cada ENTER do usuário vira uma task
👉 Cada task consome CPU, storage e locks
👉 E sim… algumas tasks travam tudo 😄


🕵️‍♂️🔍 1. VENDO LOGS COMO UM DETETIVE

No CICS, erro nunca vem sozinho. Ele deixa rastro.

📌 Principais logs:

  • CSMT → mensagens gerais
  • CSM1 → log auxiliar
  • Transient Data Queue (TDQ) → logs customizados
  • SMF 110 → performance e auditoria

🔎 Exemplo clássico:

DFHAC2001 TRANSACTION ABCD ABENDED WITH CODE ASRA

👉 Tradução Bellacosa:

“Alguém fez besteira no programa — provavelmente S0C4 disfarçado” 😄


👤🆔 2. IDENTIFICANDO USER E TASK EM TEMPO REAL

Aqui começa o jogo de verdade.

📌 Transação chave:

CEMT I TASK

Isso mostra:

  • Task Number
  • Transaction ID
  • UserID
  • Status (RUNNING, WAITING…)
  • CPU Time

🔥 Exemplo:

Tas(000123) Tra(ABCD) Use(USER01) Sta(RUN)

👉 Você já sabe:

  • Quem → USER01
  • O quê → ABCD
  • Qual → Task 123

💡 Dica de ouro:

CEMT I TASK USE(USER01)

👉 Filtra direto no usuário (perfeito pra incidentes)


☠️💣 3. DERRUBANDO TASK (QUANDO O CAOS CHEGA)

Quando uma task trava:

  • segura recurso
  • explode CPU
  • trava fila inteira

👉 Você entra com autoridade:

💥 Comando:

CEMT SET TASK(123) PURGE

⚠️ Versão nuclear:

CEMT SET TASK(123) FORCEPURGE

👉 Diferença:

  • PURGE → educado
  • FORCEPURGE → “sai ou eu te mato” 😄

💡 Cuidado:

  • Pode deixar dados inconsistentes
  • Use quando não há alternativa

📊⚡ 4. MONITORANDO PERFORMANCE E CONSUMO

Aqui mora o SysProg de elite.

📌 Transações importantes:

  • CEMT I SYS → visão geral
  • CEMT I TASK → consumo por task
  • CEMT I TRAN → estatísticas de transação

🔎 Indicadores críticos:

  • CPU time alto
  • Tasks WAITING (lock?)
  • Storage crescente
  • Response time degradando

🧠 Dica avançada (nível hard):

Use SMF 110 + ferramentas como:

  • IBM OMEGAMON
  • IBM RMF

👉 Isso revela:

  • Top consumidores
  • Gargalos invisíveis
  • Tendência de carga

🛠️📋 5. CHECKLIST DE SOBREVIVÊNCIA DO SYSPROG CICS

Quando der problema, siga isso:

✅ Passo a passo real:

  1. Ver logs (CSMT)
  2. Identificar erro (abend?)
  3. Listar tasks

    CEMT I TASK
  4. Filtrar usuário/transação
  5. Ver consumo
  6. Decidir ação
    • aguardar
    • PURGE
    • FORCEPURGE
  7. Validar impacto
  8. Registrar ocorrência

🧩💡 EASTER EGGS DE QUEM VIVE CICS

👉 😄 “Toda ASRA tem uma história triste por trás”
👉 😄 “Se precisa dar FORCEPURGE… alguém fez deploy na sexta”
👉 😄 “Task WAITING sem motivo = lock escondido no DB2”


🏛️📜 CURIOSIDADES QUE POUCA GENTE SABE

  • O IBM CICS nasceu nos anos 60 (!!)
  • Ainda hoje processa bilhões de transações/dia
  • Grande parte dos caixas eletrônicos do mundo passam por ele
  • Ele é um dos sistemas mais resilientes já criados

🎯💬 COMENTÁRIO FINAL (NA VEIA)

Gerenciar CICS não é rodar comando.

É:

  • entender comportamento
  • prever problema
  • agir rápido
  • e às vezes… tomar decisões duras

👉 Porque no fim do dia:

“CICS parado não é sistema fora — é empresa parada.”

 

sexta-feira, 17 de abril de 2026

💥 Operador de CICS Não Aperta Botão: Ele Evita Caos em Milhões de Transações (E Quase Ninguém Percebe)

 

Bellacosa Mainframe descreve as atividade de um operador mainframe em CICS

💥 Operador de CICS Não Aperta Botão: Ele Evita Caos em Milhões de Transações (E Quase Ninguém Percebe)

Se você acha que o operador de mainframe só “fica olhando tela verde”… cuidado.
No universo do CICS, ele é o guardião silencioso que impede filas travadas, regiões colapsando e clientes reclamando no app do banco.

Hoje vamos abrir essa caixa-preta no estilo Bellacosa Mainframe: direto, provocativo e com aquele tempero de quem já viu CICS pegando fogo às 3 da manhã. ☕


🧠 O Papel REAL do Operador de CICS

O operador não programa… mas mantém o sistema RESPIRANDO.

Ele atua em três frentes:

🔹 1. Monitoramento contínuo

  • Região CICS ativa?
  • Transações fluindo?
  • CPU explodindo?
  • Tasks presas?

🔹 2. Intervenção rápida

  • Mata transação travada
  • Habilita/desabilita recursos
  • Responde incidentes antes do usuário perceber

🔹 3. Comunicação

  • Aciona suporte (sysprog, dev, DBA)
  • Documenta incidentes
  • Traduz problema técnico em impacto real

👉 Em resumo:
O operador não resolve tudo — mas sabe exatamente quando algo está errado.


⚙️ Comandos CICS que TODO operador deve dominar

Dentro do CICS (via terminal ou console), esses são os clássicos:

🔥 CEMT — O CANIVETE SUÍÇO

O mais importante. Se o operador souber só um… que seja esse.

Exemplos:

CEMT I TASK

→ Lista tasks ativas

CEMT I TRANS

→ Mostra transações

CEMT SET TRANS(xxxx) DISABLED

→ Desabilita transação problemática

CEMT SET FILE(nome) CLOSED

→ Fecha arquivo (VSAM/DB2 ligado)

CEMT SET TASK(xxxx) PURGE

→ Mata task travada

💡 Dica Bellacosa:
Se você usou PURGE mais de 3x no dia… tem problema estrutural.


🔥 CEDA — Definições (nível mais avançado)

CEDA I TRANS(xxxx)

→ Ver definição da transação

👉 Operador usa menos, mas precisa reconhecer.


🔥 CECS / CECI — Testes

Mais usados por dev, mas operador esperto sabe identificar uso indevido.


🖥️ Onde o SDSF entra no jogo?

Aqui começa o poder real.

O SDSF é o radar do operador.


🔍 Telas que ele MAIS usa:

🔹 ST (Status)

  • Ver address space do CICS
  • CPU, memória, status

👉 Identificar se o CICS está:

  • Loopando
  • Travado
  • Consumindo CPU absurda

🔹 DA (Display Active)

  • Tasks no z/OS
  • Ver impacto fora do CICS

🔹 LOG

  • Mensagens do sistema

👉 Aqui mora o OURO.

Exemplo:

  • AICA abends
  • DFHxxxx mensagens
  • Falhas de recurso

💡 Easter egg:
Se aparecer DFHAC2001 com frequência…
👉 Pode apostar: alguém esqueceu commit ou está em loop.


🔹 SP (Spool)

  • Logs de jobs
  • Dumps

🚨 Quando o CICS está “aberto” — o que se espera do operador?

CICS aberto = ambiente em produção, usuários ativos.

O operador precisa:

✅ 1. Garantir disponibilidade

  • Região UP
  • Transações habilitadas

✅ 2. Detectar anomalias

  • Lentidão
  • Travamentos
  • Picos

✅ 3. Agir ANTES do caos

  • Kill de tasks
  • Disable de transação problemática

✅ 4. Seguir procedimento

  • Nada de “inventar moda”
  • Produção NÃO é laboratório

🧨 Situações clássicas (vida real)

💣 Caso 1 — Loop infinito

Sintoma:

  • CPU 100%
  • Usuários travados

Ação:

CEMT I TASK
CEMT SET TASK(xxxx) PURGE

💣 Caso 2 — Arquivo travado

Sintoma:

  • Transações não respondem

Ação:

CEMT SET FILE(nome) CLOSED
CEMT SET FILE(nome) OPEN

💣 Caso 3 — Transação problemática

CEMT SET TRANS(xxxx) DISABLED

🕵️ Curiosidade raiz (história real de datacenter)

Um operador notou que o CICS estava “normal”…
Mas usuários reclamavam.

Ele fez algo simples:

CEMT I TASK

Percebeu centenas de tasks iguais.

👉 Era um bug em produção gerando loop silencioso.

Ele matou UMA task… e o problema sumiu.

💡 Moral:
Nem sempre o problema é barulhento.


🎯 Dicas nível Bellacosa (ouro puro)

🔥 Nunca saia dando PURGE sem entender
🔥 Sempre olhe o SDSF antes de agir
🔥 Aprenda a reconhecer padrões (isso separa operador de operador)
🔥 Documente TUDO
🔥 Conheça mensagens DFH (isso é superpoder)


🧩 Easter Egg técnico

Se você digitar:

CEMT I SYSTEM

Vai ver:

  • Status geral
  • Recursos
  • Saúde do CICS

👉 Pouca gente usa… mas deveria.


🚀 Conclusão

O operador de CICS não é figurante.
Ele é o primeiro firewall humano entre o sistema e o caos.

Enquanto desenvolvedores escrevem código…
👉 Ele garante que o sistema NÃO PARE.

E quando tudo está funcionando perfeitamente…










👉 Foi porque ele fez o trabalho certo — e ninguém percebeu.


terça-feira, 27 de janeiro de 2026

💥 🧠 CHECKLIST PROFISSIONAL — SAMPLING PERFORMANCE TUNING

 

Bellacosa Mainframe apresenta um checklist para analisar a performance e tuning em Mainframe

💥 🧠 CHECKLIST PROFISSIONAL — SAMPLING PERFORMANCE TUNING


🎯 1. IDENTIFICAÇÃO DO PROBLEMA

Antes de sair rodando ferramenta:

✔ CPU alto?
✔ Elapsed alto?
✔ Batch lento?
✔ CICS lento?


💡 Pergunta chave

“É CPU ou WAIT?”


⚙️ 2. DEFINIÇÃO DO ALVO (TARGET)

Escolha corretamente:

  • Job batch
  • Região CICS
  • Address space DB2

🔥 Regra de ouro

✔ Comece amplo (job)
✔ Refinar depois (step / programa)


🔬 3. DEFINIR O NÍVEL DE ANÁLISE

🔹 Macro (primeiro passo)

  • Job inteiro

🔸 Micro (diagnóstico)

  • Step específico
  • Programa específico

💣 Erro comum

❌ Ir direto para detalhe sem contexto


⏱️ 4. CONFIGURAR DURAÇÃO

✔ 15–30 minutos padrão
✔ Batch curto → ajustar


💡 Regra

Duração suficiente para capturar comportamento real


🔢 5. CONFIGURAR SAMPLES

✔ 1000–1500 samples/min


📊 Referência

Samples/minQualidade
< 500ruim
1000bom
1500+excelente

💣 Erro crítico

❌ Poucos samples → diagnóstico errado
❌ Muitos → overhead desnecessário


🔁 6. ATIVAR “MEASURE TO STEP END”

✔ Sempre que possível


💡 Use quando:

  • Batch imprevisível
  • Jobs longos
  • Problema intermitente

🔗 7. ATIVAR COLETORES CORRETOS

✔ DB2 → se houver SQL
✔ CICS → se for transação
✔ IMS → se aplicável


💣 Regra

Ative só o necessário


⚠️ Erro comum

❌ Ativar tudo → overhead alto


🚀 8. EXECUTAR A SESSÃO

✔ Monitorar status
✔ Aguardar finalizar
✔ Verificar número de samples


💣 Nunca faça

❌ Analisar sessão ativa
❌ Analisar com poucos samples


📊 9. VALIDAR QUALIDADE DO RELATÓRIO

Antes de confiar:

✔ Samples suficientes?
✔ Margem de erro baixa (<5%)?
✔ Duração adequada?


💡 Se não:

👉 Refaça a coleta


🔍 10. ANÁLISE PRINCIPAL (CPU vs WAIT)

📊 Interpretação

SituaçãoDiagnóstico
CPU altoproblema de código
WAIT altoproblema externo

🔥 11. IDENTIFICAR HOTSPOTS

Procurar:

  • Módulo
  • Offset
  • Função

💡 Pergunta chave

“Quem está consumindo CPU de verdade?”


🧱 12. CLASSIFICAR O PROBLEMA

🔥 CPU-bound

  • Loop
  • Cálculo
  • Algoritmo

🐢 WAIT-bound

  • VSAM I/O
  • DB2
  • ENQ / lock
  • MQ

🔬 13. DRILL-DOWN (INVESTIGAÇÃO)

Se CPU:

👉 Ir para código (COBOL / PL/I)

Se WAIT:

👉 Ir para:

  • DB2 → SQL
  • VSAM → dataset
  • Sistema → ENQ

🛠️ 14. AÇÃO DE TUNING

🔥 CPU

✔ Reduzir loops
✔ Evitar processamento redundante
✔ Melhorar algoritmos


🐢 I/O

✔ Melhorar acesso VSAM
✔ Ajustar buffers
✔ Indexar DB2


🔐 LOCK

✔ Reduzir contenção
✔ Ajustar commit


🔁 15. VALIDAR RESULTADO

👉 Rodar nova sessão

Comparar:

  • CPU antes/depois
  • Tempo antes/depois

💣 Regra

Sem validação = tuning incompleto


📈 16. DOCUMENTAR

✔ Problema
✔ Diagnóstico
✔ Solução
✔ Ganho


💡 Isso vira:

  • Base de conhecimento
  • Aceleração futura

🔥 CHECKLIST RÁPIDO (versão bolso)

1. CPU ou WAIT?
2. Definir target
3. Configurar samples (1000/min)
4. Ativar step end
5. Executar sessão
6. Validar samples
7. Analisar CPU vs WAIT
8. Encontrar hotspot
9. Corrigir
10. Validar resultado

💣 ERROS QUE MATAM PERFORMANCE (e sua carreira 😅)

❌ Analisar sem dados suficientes
❌ Culpar DB2 sem prova
❌ Ignorar WAIT
❌ Não validar margem de erro
❌ Ajustar “no chute”


🧠 FRASE FINAL (nível arquiteto)

“Performance não se melhora com opinião.
Se melhora com evidência.”

 

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...