Академический Документы
Профессиональный Документы
Культура Документы
1 DL/I Concepts
Objectives
- Student will
Be able to use DL/I terminology to describe a hierarchical data base Know how the COBOL structure for a data base segment is described
1 DL/I Concepts
IMS/VS
base management system that supports the application program while processing data bases in batch or on-line environments.
1 DL/I Concepts
Data
Base Advantages
Increased data independence by application programs Reduced data redundancy Improved data security
1 DL/I Concepts
The
Hierarchical Structure
PART NO
SUPPLIER
LOCATION
ASSEMBLY
SHIPMENT
PRICE
1 DL/I Concepts
DL/I
Terminology
PART NO
SUPPLIER
LOCATION
ASSEMBLY
SHIPMENT 2 1
PRICE 2 1 6
1 DL/I Concepts
The
05 05 05
COBOL Structure
PIC X(06). unique key PIC X(20). search PIC 9(06). search
01 SUPPLIER-SEGMENT. 05 05 05 SUPPLIER-NUMBER SUPPLIER-CONTACT-PHONE SUPPLIER-CONTACT-NAME PIC X(06). unique key PIC X(10). PIC X(30). search
01 SHIPMENT-SEGMENT. 05 05 05 SHIPMENT-BOM SHIPMENT-DATE SHIPMENT-DELIVERY-DATE PIC X(10). unique key PIC 9(06). search PIC 9(06). 7
1 DL/I Concepts
The
01 LOCATION-SEGMENT. 05 LOCATION-NUMBER. 10 LOCATION-LEVEL 10 LOCATION-BIN-NUMBER 05 LOCATION-QUANTITY 01 PRICE-SEGMENT. 05 PRICE-TYPE 05 PRICE-AMOUNT 05 PRICE-DATE 01 ASSEMBLY-SEGMENT. 05 ASSEMBLY-NUMBER 05 ASSEMBLY-NAME PIC X(06). unique key PIC X(20). search 8 PIC X(01). unique key PIC S9(04)V999. PIC 9(06).
- Student will
Be able to read a DBD Be able to code a PSB Understand how IMS uses the control blocks and JCL together Know where DL/I fits into the application program
11
13
Describes
the logical structure of one or more data bases to the application program Defines segment sensitivity for each data base Defines the processing options for the segments The PSB is made up of PCBs (program communication blocks)
14
15
16
17
18
19
20
PSB LIBRARY
21
EXEC
//STEPLIB DD // DD
//DFSRESLB DD //IMS // DD DD
//IEFRDER DD // //IMSMON DD
DATA BASE
DBD
PSB
APPLICATION PROGRAM
23
LINKAGE SECTION.
1 & Quiz 2
25
- Student will
Learn the structure of a DL/I call Learn where the IMS pieces fit into an application program Understand the structure of the SSA and the purpose of each part of the SSA Know the value of standard includes
26
Structure
IDENTIFICATION DIVISION. PROGRAM-ID. TEST001 ENVIRONMENT DIVISION. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. COPY PARTS. COPY PARTS-SSA. COPY FUNCODES. LINKAGE SECTION. COPY PARTS-PCB-MASK. PROCEDURE DIVISION USING PARTS-PCB-MASK. 7500-READ-PARTS. SET UP IMS CALL ISSUE IMS CALL CHECK STATUS CODE
27
Call Structure
USING FUNCTION PCB-MASK SEGMENT-IO-AREA SSA-1 . SSA-?
CBLTDLI
28
SEGMENT NAME COMMAND CODES OPEN PARENTHESIS ( SEGMENT FIELD NAME RELATIONAL OPERATOR COMPARATIVE VALUE CLOSE PARENTHESIS )
29
Segment Search Argument Segment Description Function Codes PCB Descriptions Status Codes IMS Operators
30
Assignment
draw a diagram of the test IMS databases using the DBD information provided
31
- Student will
Be able to code efficient retrieval calls Understand how each type of SSA functions Be introduced to the concepts of data base position and parentage
32
POLLAK LUCAS
33
POLLAK LUCAS
34
- Unqualified SSA
01 PARTNO-USSA PIC X(09) VALUE PARTNO. CALL CBLTDLI USING GU-FUNCTION PARTS-PCB-MASK PARTNO-SEGMENT
POLLAK LUCAS
PERFORM error-routine.
35
POLLAK LUCAS
36
- Missing SSAs
CALL CBLTDLI USING GU-FUNCTION PARTS-PCB-MASK SHIPMENT-SEGMENT SUPPLIER-USSA
POLLAK LUCAS
PERFORM error-routine.
37
- No SSAs
CALL CBLTDLI USING GU-FUNCTION PARTS-PCB-MASK PARTNO-SEGMENT IF PARTS-PCB-STATUS = bb
POLLAK LUCAS
38
POLLAK LUCAS
39
POLLAK LUCAS
40
- Unqualified SSA
CALL CBLTDLI USING GN-FUNCTION PARTS-PCB-MASK SHIPMENT-SEGMENT SHIPMENT-USSA
POLLAK LUCAS
41
POLLAK LUCAS
CONTINUE ELSE
PERFORM error-routine.
42
POLLAK LUCAS
CONTINUE ELSE
PERFORM error-routine.
43
- No SSAs
CALL CBLTDLI USING GN-FUNCTION PARTS-PCB-MASK GENERIC-IO-AREA
POLLAK LUCAS
44
POLLAK LUCAS
PERFORM error-routine
45
46
- Student will
Understand the purpose of the HOLD calls Learn more about how SSAs are used Be able to code the update calls
47
POLLAK LUCAS
48
POLLAK LUCAS
49
POLLAK LUCAS
50
POLLAK LUCAS
51
POLLAK LUCAS
CALL CBLTDLI USING REPL-FUNCTION PARTS-PCB-MASK SUPPLIER-SEGMENT IF PARTS-PCB-STATUS = bb CONTINUE ELSE PERFORM error-routine
52
POLLAK LUCAS
53
54
- Student will
Be able to describe the four organizations Know each organization types features and advantages
55
Segment Data
56
HISAM
SALES 1
KSDS
ESDS
ORDER 2 STOCK 1 STOCK 2
58
60
HDAM
ESDS
SALES 1
HIDAM
MODEL A ORDER 3 ORDER 2 ORDER 1 STOCK 2 STOCK 1 ESDS DEALER 1 MODEL A ORDER 1 ORDER 2 STOCK 1 STOCK 2 SALES 1 MODEL B ORDER 3 STOCK 3 SALES 3 DEALER 2 62 STOCK 3 SALES SALES 3 3
SALES 1
HDAM
A randomizing routine is used to store and locate a data base record. Segments within a record are found using pointers. Used for fast direct access of data base records.
A program will retrieve root segments in physical sequence unless the program suppliers the keys in the appropriate order.
Direct HIDAM A root segment is located by means of an index. Segments within a record are found through the use of pointers. Good when equal amounts of direct and sequential processing are required. 63 None.
- Student will
Learn what a Boolean SSA is and when it is useful Know how to process variable length segments Understand parallel processing using multiple PCBs
64
SSAs
PIC X(08) VALUE PARTNO. PIC X(03) VALUE *--. PIC X(01) VALUE (. PIC X(08) VALUE PARTNUM. PIC X(02) VALUE GT. PIC X(06) VALUE SPACES. PIC X(01) VALUE *. PIC X(08) VALUE PARTNUM. PIC X(02) VALUE LT. PIC X(06) VALUE SPACES. PIC X(01) VALUE ).
01 PARTNO-BSSA.
PARTNObb*--(PARTNUMbGTbbbbbb*PARTNUMbLTbbbbbb)
65
Indexing
In the PCB: In the Program:
GU PARTNOb(XNAMEbbb=SWITCHbbbbb)
LCHILD NAME=(SEC INDEX SEG,SEC INDEX DBD NAME) PROCSEQ=name XDFLD NAME=XNAME, SRCH=Field index is based on of secondary index DBD
66
Indexing cont
Secondary DBD
NAME=BOOKSSI,ACCESS=(INDEX,VSAM) DATASET DD1=BOOKSSI,OVFLW=BOOKSIOV,DEVICE=3380, BLOCK=(8,4),RECORD=(500,500) NAME=BKSISEG,PARENT=0,BYTES=35 NAME=(BKSISEG,SEQ,M),BYTES=35,START=1 NAME=(BKDATA,BOOKSDB),INDEX=BKXFLD,PTR=SYMB
Program
MOVE BKXFLD TO SEC-SSA-FIELD-NAME MOVE IMS CONCEPTS TO SEC- SSA-SEARCH-NAME MOVE EQ TO SEC-SSA-OPER CALL CBLTDLI USING GU PCB
PSB
TYPE=DB,DBDNAME=BOOKSDB,PROCOPT=A, KEYLEN=100,PROCSEQ=BOOKSSI SENSEG NAME=BKDATA,PARENT=0 SENSEG NAME=BLHDATA,PARENT=BKDATA PSBGEN LANG=COBOL,PSBNAME=TIMSB30Z END
67
Length Segments
is responsible for length
maintenance
68
Processing
GU, PCB-MASK1 GNP,PCB-MASK1
Multiple PCBs
PART NO (OLDPART)
SUPPLIER
LOCATION PRICE
ISRT,PCB-MASK2
SHIPMENT 69
Processing cont
PCB Masks
01 MEMBER1-PCB-MASK. 05 MEMBER1-DBD-NAME 05 MEMBER1-SEG-LEVEL 05 MEMBER1-STAT-CODE . . . . . . . . 05 MEMBER-PCB-KEY MEMBER2-PCB-MASK. 05 MEMBER2-DBD-NAME 05 MEMBER2-SEG-LEVEL 05 MEMBER2-STAT-CODE . . . . . . . . 05 MEMBER2-PCB-KEY PIC X(8) PIC X(2) PIC X(2) . . PIC X(100)
PSB Needed
TYPE=DB,DBDNAME=MEMBERDB, PROCOPT=AP, KEYLEN=100 NAME=MEDATA,PARENT=0 NAME=BLDATA,PARENT=MEDATA TYPE=DB,DBDNAME=MEMBERDB, PROCOPT=A,KEYLEN=100 NAME=MEDATA,PARENT=0 NAME=BLDATA,PARENT=MEDATA LANG=COBOL,PSBNAME=TIMSB40Z
01
70
71
8 Command Codes
Objectives
- Student will
Understand the most commonly used five Command Codes and how to they can be used efficiently
72
8 Command Codes
D
SUPPLIER
LOCATION
PRICE
ASSEMBLY
PARTNObb*D-(PARTNUMEQ002300) SHIPMENT IO AREA PARTNO DATA SUPPLIER DATA SHIPMENT DATA SUPPLIER*D-(SUPPNUMEQLUCAS) SHIPMENT*--(SHIPNUMEQ123456)
73
8 Command Codes
D
Working Storage
01 MEDATA-SSA. 05 FILLER 05 MESSA-FIELD 05 MESSA-OPER 05 MESSA-KEY 05 FILLER 01 BLDATA-SSA. 05 FILLER 05 BLSSA-FIELD 05 BLSSA-OPER 05 BLSSA-KEY 05 FILLER PIC X(12) PIC X(8) PIC X(02) PIC X(05) . PIC X
PIC X(12) VALUE BLDATAbb*--(. PIC X(8) VALUE BLBNObbb. PIC X(02) VALUE EQ. PIC X(06). PIC X VALUE ).
74
8 Command Codes
N
75
8 Command Codes
N
Working Storage
01 MEDATA-SSA. 05 FILLER 05 MESSA-CC 05 MESS-LPAREN 05 MESSA-FIELD 05 MESSA-OPER 05 MESSA-KEY 05 FILLER 01 BLDATA-SSA. 05 FILLER 05 BLSSA-CC 05 FILLER 05 BLSSA-FIELD 05 BLSSA-OPER 05 BLSSA-KEY 05 FILLER PIC X(09) PIC X(02) PIC X(01) PIC X(8) PIC X(02) PIC X(05) . PIC X
PIC X(09) PIC X(02) PIC X(01) PIC X(8) PIC X(02) PIC X(06). PIC X
VALUE BLDATAbb*. VALUE --. VALUE (. VALUE BLBNObbb. VALUE EQ. VALUE ).
76
8 Command Codes
L
77
8 Command Codes
L
Working Storage
01 MEDATA-SSA. 05 FILLER 05 FILLER 05 MESSA-FIELD 05 MESSA-OPER 05 MESSA-KEY 05 FILLER 01 BLDATA-USSA. 05 FILLER
PIC X(11)
VALUE BLDATAbb*L-.
01 MEMBER-SEGMENT PIC X(114). VALUE SPACES. 01 BLDATA-SEGMENT PIC X(44) VALUE SPACES..
78
8 Command Codes
F
79
8 Command Codes
F
Working Storage
01 MEDATA-SSA. 05 FILLER 05 FILLER 05 MESSA-FIELD 05 MESSA-OPER 05 MESSA-KEY 05 FILLER 01 BLDATA-USSA. 05 FILLER
PIC X(11)
VALUE BLDATAbb*Fb.
01 MEMBER-SEGMENT PIC X(114). VALUE SPACES. 01 BLDATA-SEGMENT PIC X(44) VALUE SPACES..
80
8 Command Codes
P
SUPPLIER
LOCATION
SHIPMENT
BIN
81
8 Command Codes
P
Working Storage
01 PART-USSA. 05 FILLER 01 SUPPLIER-SSA. 05 FILLER 05 FILLER 05 SUPSSA-FIELD 05 SUPSSA-OPER 05 SUPSSA-KEY 05 FILLER 01 LOCATION-SSA. 05 FILLER 05 FILLER 05 LOCSSA-FIELD 05 LOCSSA-OPER 05 LOCSSA-KEY 05 FILLER
PIC X(11) PIC X(01) PIC X(08) PIC X(02) PIC X(02) PIC X(01)
VALUE SUPPLIER*--. VALUE (. VALUE SUPSTATE. VALUE EQ. VALUE SPACES. VALUE ).
PIC X(11) PIC X(01) PIC X(08) PIC X(02) PIC X(04).. PIC X(01)
01 PART-SUPP-SEGMENTS. 05 PART-SEGMENT PIC X(100).. 05 SUPPLIER-SEGMENT PIC X(100). 01 LOCATION-SEGMENT PIC X(100)..
82
8 Command Codes
Exercise
83
- Student will
Understand the difference between the batch environment and the on-line environment as it applies to IMS Learn about I/O PCBs Know the difference between batch, BMPs and MPPs Learn about GSAMs and their value to IMS programming
84
Batch Environment
OPERATING SYSTEM IMS BATCH SUBSYSTEM Program A IMS BATCH SUBSYSTEM Program B
Buffers
Buffers
REGION
REGION 85
Transaction file
DL/I Modules
Report
86
On-Line Environment
OPERATING SYSTEM IMS/VS on-line SUBSYSTEM IMS/VS Control Program DL/I Code
Program A
Program B
DBDs Data Base 3 PSB Data Base 4 REGIONS: Control Buffers PCB DL/I Dependent PCB Dependent PSB
87
Output message
88
Terminology
89
90
Teleprocessing PCB
TYPE=TP,LTERM=LPRINT01 TYPE=TP,MODIFY=YES
PCB PCB
PSBGEN LANG=COBOL,PSBNAME=PROG001,CMPAT=YES
91
PIC S9(06)V9 COMP-3. PIC S9(05) PIC X(08). PIC X(08). COMP.
93
94
95
//GSAMINDB DD //GSAMOUDB DD
96
97
98
CALL CBLTDLI
IF GSAMIN-STATUS-CODE = BB-STATUS CONTINUE ELSE IF GSAMIN-STATUS-CODE = GB-STATUS PERFORM 9000-PROCESS-THE-END ELSE PERFORM ABEND-PARAGRAPH.
99
Convert program TIMSB005 to use GSAMs rather than sequential flat files
100
- Student will
Understand commit points and when they occur in IMS processing Be able to design and code checkpoints and restarts in IMS BMPs
101
102
103
IMS Log
CODE 1 RECORD Variable Length SEQ # 4 Binary halfword field containing the length of this IMS log record Binary halfword used by MVS One hexadecimal byte containing the IMS log record code
BB CODE
Scheduling Record Termination Record Open Data Base Record Checkpoint Record After Image Before Image 104
RECORD Contents depend on what type of IMS log record it is SEQ # Binary fullword containing a sequence number. IMS numbers every record on the IMS log file.
CHKP Call
PIC S9(8) COMP VALUE +200. PIC X(04) VALUE C100. PIC 9(040 VALUE ZERO. PIC S9(8) COMP VALUE +1000. PIC X(1000).
01 CHKP-LONGEST-SEGMENT 01 CHKP-ID. 05 CHKP-PROGRAM 05 CHKP-NUMBER 01 CHKP-AREA-LENGTH 01 CHKP-AREA ADD 1 CALL TO CHKP-NUMBER CBLTDLI USING
to Take a CHKP
to Save
Position
106
XRST Call
PIC S9(8) COMP VALUE +200. PIC X(12). PIC S9(8) COMP VALUE +1000. PIC X(1000). TO XRST-ID USING XRST-FUNCTION IO-PCB-MASK CHKP-LONGEST-SEGMENT XRST-ID CHKP-AREA-LENGTH CHKP-AREA
CBLTDLI
107
- JCL
//STEPLIB DD // DD
//DFSRESLB DD
//SYSUDUMP DD SYSOUT=A
108
109
110
111