Skip to content

IMS: scan PSB / DBD generation sources and resolve DL/I PCBs to databases #3477

Closed

Description

@squid-protocol

Problem

#3450 records every DL/I call and resolves each segment. But PSB and DBD generation sources (.psb, .dbd, .PSB, .DBD) aren't scanned at all: no language claims them. So a PCB can't be resolved to its database, and there's nothing to check a segment access against: whether it's SENSEG-sensitive in the PSB, or that PROCOPT permits the update.

Evidence

CardDemo app/app-authorization-ims-db2-mq/ims/: PSBPAUTB.psb, PSBPAUTL.psb, PAUTBUNL.PSB, DLIGSAMP.PSB, DBPAUTP0.dbd, DBPAUTX0.dbd, PASFLDBD.DBD, PADFLDBD.DBD. For example:

  • PAUTBPCB PCB TYPE=DB,DBDNAME=DBPAUTP0,PROCOPT=AP with SENSEG NAME=PAUTSUM0 / PAUTDTL1;
  • DBD NAME=DBPAUTP0,ACCESS=(HIDAM,VSAM) with SEGM / FIELD / LCHILD.

Proposal

  • Dialect: an IMS gen-macro dialect (use the add-language skill) extracting PSB PCBs (name, type, DBDNAME, PROCOPT, SENSEGs) and DBD segments / fields.
  • Joins:
    • the program → PSB link: EXEC DLI SCHD PSB, a JCL DLIBATCH PSB= parameter, or the program name;
    • the PCB position in ENTRY 'DLITCBL' USING / PROCEDURE DIVISION USING (Mainframe fact channel: batch CALL USING parameter contracts #3454) mapped to the Nth PCB of the PSB, giving the database;
    • a check that every accessed segment is a SENSEG of that PCB, with PROCOPT allowing the access.

Part of #3445. Follows #3450.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature, sensor, or structural signature

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions