Skip to content

bhargavg-amdocs/Mainframe-sample

Repository files navigation

Mainframe Sample Project

A comprehensive demonstration of IBM mainframe technologies including JCL, COBOL, DB2, CICS, IMS, VSAM, and more.

Project Structure

Mainframe-sample/
├── JCL/                    # Job Control Language
│   ├── MASTERJB.jcl       # Master batch job
│   ├── DB2BATCH.jcl       # DB2 batch processing
│   ├── CICSJOB.jcl        # CICS batch interface
│   ├── IMSJOB.jcl         # IMS DB/DC operations
│   ├── VSAMJOB.jcl        # VSAM operations
│   └── CTCFILES.jcl       # CTC file transfers
│
├── COBOL/                  # COBOL Programs
│   ├── CUSTEXTR.cbl       # Customer extraction (DB2/VSAM)
│   ├── CICSPROG.cbl       # CICS online program
│   └── IMSBATCH.cbl       # IMS batch program
│
├── COPYBOOK/               # COBOL Copybooks
│   ├── CUSTREC.cpy        # Customer record layout
│   ├── WSCOPY.cpy         # Working storage common
│   ├── SQLCOPY.cpy        # DB2 SQL common
│   ├── IMSCOPY.cpy        # IMS common
│   └── CUSTMAP.cpy        # CICS BMS map symbolic
│
├── PROC/                   # Cataloged Procedures
│   ├── LOGPROC.prc        # Logging procedure
│   ├── DSNCOBOL.prc       # DB2 COBOL execution
│   ├── VSAMPROC.prc       # VSAM processing
│   ├── IMSPROC.prc        # IMS execution
│   ├── SASPROC.prc        # SAS execution
│   ├── PLIPROC.prc        # PL/I execution
│   ├── FOCPROC.prc        # FOCUS execution
│   ├── CDPROC.prc         # Connect:Direct
│   ├── FTPPROC.prc        # FTP transfer
│   └── ABENDPRC.prc       # Abend handling
│
├── DB2/                    # DB2 Database Objects
│   ├── CUSTDCLG.sql       # Customer DCLGEN
│   ├── ACCTDCLG.sql       # Account DCLGEN
│   └── DB2PROCS.sql       # Stored procedures
│
├── VSAM/                   # VSAM Definitions
│   └── CUSTKSDS.ctl       # Customer KSDS definition
│
├── CICS/                   # CICS Components
│   └── CUSTMAP.bms        # BMS map definition
│
├── IMS/                    # IMS Components
│   ├── CUSTDBD.dbd        # IMS DBD definition
│   └── CUSTPSB.psb        # IMS PSB definition
│
├── ASSEMBLER/              # Assembler Programs
│   ├── ABENDHND.asm       # Abend handler
│   └── LOGWRITE.asm       # Log writer utility
│
├── REXX/                   # REXX Execs
│   ├── MAINEXEC.rexx      # Main processing exec
│   └── VSAMUTIL.rexx      # VSAM utility exec
│
├── CLIST/                  # TSO CLIST Scripts
│   └── CUSTINQ.clist      # Customer inquiry
│
├── SAS/                    # SAS Programs
│   └── CUSTRPT.sas        # Customer report
│
├── PLI/                    # PL/I Programs
│   └── DATATRAN.pli       # Data transformation
│
├── FOCUS/                  # FOCUS Reports
│   └── SALESRPT.fex       # Sales report
│
├── SUPRA/                  # SUPRA/DATACOM
│   └── SUPRADEF.sql       # SUPRA definitions
│
├── PANVALET/               # Panvalet Library
│   └── PANMAINT.pan       # Library maintenance
│
├── CONNECT-DIRECT/         # Connect:Direct
│   └── CUSTXMIT.cdp       # Transfer process
│
├── FTP/                    # FTP Scripts
│   ├── CUSTFTP.ftp        # FTP commands
│   └── SFTPSCPT.sftp      # SFTP script
│
├── SCHEDULER/              # Job Schedulers
│   ├── CTLJOB.ctl         # Control-M definition
│   └── TWSJOB.sch         # TWS/OPC definition
│
├── ISPF/                   # TSO/ISPF Components
│   ├── CUSTPNL.ispf       # ISPF panel
│   └── CUSTTABL.ispf      # ISPF table
│
├── ABEND-HANDLER/          # Abend Handling
│   └── ABNDCOPY.cpy       # Abend copybook
│
├── FILE-MANAGER/           # IBM File Manager
│   └── FMCOPY.fm          # File Manager utility
│
├── SDFS/                   # SDFS Definitions
│   └── SDFSDEF.sdf        # Data set services
│
├── UTILITIES/              # Utility Programs
│   ├── SN01UTIL.jcl       # External SN01* utilities
│   └── IEBUTIL.jcl        # IBM utilities
│
├── SCHEMA/                 # Schema Definitions
│   ├── DEPENDENCY_GRAPH.json  # Dependency graph schema
│   └── SAMPLE_DEPENDENCY.json # Sample dependency data
│
├── OUTPUT/                 # Sample Output
│   └── CUSTRPT.txt        # Sample report
│
└── LOGS/                   # Log Files
    └── SAMPLE_LOG.log     # Sample log output

Technologies Demonstrated

Core Processing

Technology Description Sample Files
JCL Job Control Language JCL/*.jcl
COBOL Business logic COBOL/*.cbl
Copybooks Reusable data structures COPYBOOK/*.cpy
Procedures Cataloged PROCs PROC/*.prc

Database Systems

Technology Description Sample Files
DB2 Relational database DB2/*.sql
IMS DB Hierarchical database IMS/CUSTDBD.dbd
VSAM Virtual Storage Access Method VSAM/*.ctl
SUPRA CA-DATACOM database SUPRA/SUPRADEF.sql
FOCUS DB FOCUS database/reporting FOCUS/SALESRPT.fex

Online Systems

Technology Description Sample Files
CICS Online transaction processing COBOL/CICSPROG.cbl, CICS/CUSTMAP.bms
IMS DC IMS Data Communications IMS/CUSTPSB.psb
TSO/ISPF Time Sharing Option ISPF/*.ispf

Languages & Tools

Technology Description Sample Files
Assembler System-level programming ASSEMBLER/*.asm
REXX Scripting language REXX/*.rexx
CLIST TSO command procedures CLIST/*.clist
SAS Statistical analysis SAS/*.sas
PL/I General purpose language PLI/*.pli

Data Transfer

Technology Description Sample Files
Connect:Direct Secure file transfer CONNECT-DIRECT/*.cdp
FTP File Transfer Protocol FTP/*.ftp
CTC Files Channel-to-channel JCL/CTCFILES.jcl

Operations

Technology Description Sample Files
Job Schedulers Workload automation SCHEDULER/*.ctl, SCHEDULER/*.sch
Abend Handlers Error recovery ABEND-HANDLER/*.cpy, ASSEMBLER/ABENDHND.asm
IBM File Manager Data utilities FILE-MANAGER/*.fm
Panvalet Source management PANVALET/*.pan
SDFS Data set services SDFS/*.sdf
IBM Utilities IEB*, IEH*, IDCAMS UTILITIES/IEBUTIL.jcl
External Utilities SN01* and others UTILITIES/SN01UTIL.jcl

Logging Capabilities

All programs include comprehensive logging:

  • COBOL Programs: Write to LOGDD DD with timestamp, level, and message
  • JCL Jobs: Use LOGPROC procedure for standardized logging
  • REXX Execs: WRITELOG function with timestamp and log level
  • PL/I Programs: Stream output to LOGFILE with formatted messages
  • Assembler: WTO and DCB-based logging

Log Format

2026-01-21 00:00:00.000000 | INFO  | Message text here
2026-01-21 00:00:01.000000 | WARN  | Warning message
2026-01-21 00:00:02.000000 | ERROR | Error description

Dependency Graph

The project includes a JSON schema for documenting application dependencies:

  • SCHEMA/DEPENDENCY_GRAPH.json - JSON Schema definition
  • SCHEMA/SAMPLE_DEPENDENCY.json - Sample dependency data

Node Types

  • JCL, COBOL, COPYBOOK, PROC
  • DB2_TABLE, DB2_PROC, VSAM_FILE
  • CICS_PROGRAM, CICS_TRANSACTION
  • IMS_DBD, IMS_PSB, IMS_SEGMENT
  • ASSEMBLER, REXX, CLIST, SAS_PROGRAM, PLI_PROGRAM
  • CONNECT_DIRECT, FTP_SCRIPT, SCHEDULER_JOB
  • EXTERNAL_SYSTEM, LOAD_MODULE

Relationship Types

  • CALLS, INCLUDES, READS, WRITES, UPDATES
  • EXECUTES, REFERENCES, DEPENDS_ON
  • TRIGGERS, TRANSFERS_TO, RECEIVES_FROM, SUBMITS

Usage

Running the Master Job

//SUBMIT   EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD DSN=PROD.MAINFRM.JCL(MASTERJB),DISP=SHR
//SYSUT2   DD SYSOUT=(A,INTRDR)
//SYSIN    DD DUMMY

Executing CICS Transaction

CUST CUST000001

Running REXX Exec

TSO EXEC 'PROD.MAINFRM.REXX.EXEC(MAINEXEC)' EXEC

Output Formats

The project generates various output formats:

  1. Sequential Files - Fixed/variable length records
  2. VSAM Files - KSDS, ESDS, RRDS
  3. Reports - Print files (FBA, RECFM=FBA,LRECL=133)
  4. Logs - Timestamped processing logs
  5. JSON - Dependency graphs
  6. CSV - Export data (SAS generated)

Author

Mainframe Demo Project

Version

1.0.0 - Initial Release

License

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors