Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works
Anything · Lazarus or Delphi
Random projectRandom project

Mainframe-Allocation_Calculator

Ferramenta para automatizar cálculos de alocação utilizados em ambientes Mainframe, eliminando a necessidade de cálculos manuais envolvendo Tracks, Cylinders, Bytes, Block Size e comandos SPACE utilizados em JCL.

View on GitHub

Member rating

No ratings yet.

Sign in to rate this project.

README

☁️ Allocation Calculator

Ferramenta para cálculo automático de alocação física em ambientes Mainframe.


📌 Sobre

O Allocation Calculator foi desenvolvido para automatizar cálculos de alocação utilizados em ambientes Mainframe.

A ferramenta elimina a necessidade de cálculos manuais envolvendo Tracks, Cylinders, Bytes, Block Size e comandos SPACE utilizados em JCL.

Com poucos dados informados pelo usuário, o aplicativo calcula automaticamente toda a estrutura física necessária para criação e dimensionamento de datasets.


⚙️ O que ele faz

Durante o processamento, o aplicativo:

  • Calcula tamanho total em Bytes
  • Converte automaticamente para KB, MB, GB e TB
  • Calcula quantidade de Tracks
  • Calcula quantidade de Cylinders
  • Gera parâmetros SPACE prontos para JCL
  • Calcula alocação primária e secundária
  • Calcula Block Size otimizado
  • Valida entradas inválidas automaticamente

Tudo isso acontece automaticamente em uma única execução.


🧠 Regras de cálculo

A ferramenta utiliza regras clássicas de alocação física em Mainframe:

  • 1 Track: 48.000 bytes
  • 1 Cylinder: 15 Tracks
  • 1 Cylinder: 720.000 bytes

Os cálculos são realizados automaticamente utilizando:

  • Total de registros
  • Tamanho lógico do registro
  • Block Size selecionado

📦 Cálculo de Block Size

O sistema possui cálculo automático de BLKSIZE baseado nos limites físicos mais utilizados em ambientes Mainframe:

  • 27990 bytes
  • 32760 bytes

O cálculo utiliza truncamento matemático para encontrar o maior múltiplo válido do tamanho lógico do registro.

Isso ajuda a maximizar aproveitamento físico do dataset e reduzir desperdício de espaço.


📊 Conversões automáticas

O aplicativo converte automaticamente:

  • Bytes → KB
  • KB → MB
  • MB → GB
  • GB → TB

Todos os valores são exibidos formatados automaticamente na interface.


📋 Geração automática de SPACE

O sistema gera automaticamente comandos prontos para utilização em JCL:

Exemplo:

SPACE=(TRK,(150,1),RLSE)
SPACE=(CYL,(10,1),RLSE)

Também gera versões para expansão secundária automática:

SPACE=(TRK,(150,150),RLSE)
SPACE=(CYL,(10,10),RLSE)

📊 Exemplo de processamento

Entrada:

Quantidade de registros: 100000
Tamanho lógico: 300

Saída:

Bytes: 30.000.000
Tracks: 625
Cylinders: 42

SPACE=(TRK,(625,1),RLSE)
SPACE=(CYL,(42,1),RLSE)

🚀 Como usar

  1. Informe a quantidade de registros
  2. Informe o tamanho lógico do registro
  3. Selecione o modo de Block Size
  4. Clique em Calculate
  5. Veja os resultados automaticamente
  6. Copie os parâmetros SPACE gerados

🎯 O que isso resolve

  • Evita cálculos manuais de alocação
  • Reduz erros em parâmetros SPACE
  • Facilita dimensionamento de datasets
  • Agiliza criação de JCLs
  • Melhora cálculo de Block Size
  • Ajuda em capacity planning

⚠️ Validações

O sistema possui validações automáticas para evitar erros:

  • Bloqueio de letras
  • Bloqueio de caracteres especiais
  • Validação de campos vazios
  • Controle de execução incompleta

O cálculo só pode ser executado quando os campos obrigatórios forem preenchidos corretamente.


🖥️ Interface

  • Entrada para quantidade de registros
  • Entrada para tamanho lógico
  • Seleção de Block Size
  • Resultado formatado automaticamente
  • Geração instantânea de comandos SPACE
  • Área de saída para JCL
  • Status operacional

🛠️ Tecnologias

  • Delphi 7
  • VCL (Visual Component Library)
  • Windows API
  • WinSkinData

📸 Preview

image


Ferramenta criada para eliminar cálculos manuais de allocation em ambientes Mainframe. ☁️