Upload
kiran-kvs
View
144
Download
7
Tags:
Embed Size (px)
Citation preview
1
IMS Data Base Programming (IMS/DB)
2
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
3
1 DL/I Concepts
IMS/VS– Information Management System /
Virtual Storage Data base management system that
supports the application program while processing data bases in batch or on-line environments.
4
1 DL/I Concepts
Data Base Advantages– Increased data independence by
application programs– Reduced data redundancy– Improved data security
5
1 DL/I Concepts
The Hierarchical StructurePART NO
SUPPLIER ASSEMBLY
PRICE
LOCATION
SHIPMENT
6
1 DL/I Concepts
DL/I TerminologyPART NO
SUPPLIER ASSEMBLY
PRICE
LOCATION
SHIPMENT 2
1
2
1
7
1 DL/I Concepts
The COBOL Structure01 PARTNO-SEGMENT.
05 PART-NUMBER PIC X(06). unique key
05 PART-NAME PIC X(20).search
05 PART-DATE PIC 9(06).search
01 SUPPLIER-SEGMENT.
05 SUPPLIER-NUMBER PIC X(06).unique key
05 SUPPLIER-CONTACT-PHONE PIC X(10).
05 SUPPLIER-CONTACT-NAME PIC X(30). search
01 SHIPMENT-SEGMENT.
05 SHIPMENT-BOM PIC X(10). unique key
05 SHIPMENT-DATE PIC 9(06). search
05 SHIPMENT-DELIVERY-DATE PIC 9(06).
8
1 DL/I Concepts
The COBOL Structure (continued)01 LOCATION-SEGMENT.
05 LOCATION-NUMBER. unique key
10 LOCATION-LEVEL PIC 9(02).
10 LOCATION-BIN-NUMBER PIC 9(03)
05 LOCATION-QUANTITY PIC 9(04). search
01 PRICE-SEGMENT.
05 PRICE-TYPE PIC X(01). unique key
05 PRICE-AMOUNT PIC S9(04)V999.
05 PRICE-DATE PIC 9(06).
01 ASSEMBLY-SEGMENT.
05 ASSEMBLY-NUMBER PIC X(06). unique key
05 ASSEMBLY-NAME PIC X(20). search
9
2 IMS Control Blocks
Objectives - 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
10
2 IMS Control Blocks
DBD - Data Base Definition - Function– Defines the physical storage organization– Defines the data set information– Defines the hierarchical structure– Defines the segment relationships– Defines the segment layouts– Defines the key and search field within the
segments– Defines any logical relationships– Defines any secondary indices– Describes the information needed to create a data
base
11
2 IMS Control Blocks
DBD - Data Base Definition - Macros– DBD– DATASET– SEGM– LCHILD– FIELD– XDFLD
12
2 IMS Control Blocks
The Hierarchical Structure with Keys PARTNO
SUPPLIER ASSEMBLY
PRICE
LOCATION
SHIPMENT
Key = PARTNUM
LTH = 6
22
32
46 09
15
26
Key = SUPNUM
LTH = 6Key = LOCNUM
LTH = 5
Key = PRICETYP
LTH = 1
Key = ASYNUM
LTH = 6
Key = SHIPBOM
LTH = 10
13
2 IMS Control Blocks DBD - Data Base Definition
DBD NAME=PARTNODB,ACCESS=(HISAM,VSAM)
DATASET DD1=PARTNODB,OVFLW= PARTOV,DEVICE=3380,BLOCK=6000
SEGM NAME=PARTNO,BYTES=32,PARENT=0
FIELD NAME=(PARTNUM,SEQ,U),BYTES=6,START=1,TYPE=C
FIELD NAME=PARTNAME,BYTES=20,START=7
FIELD NAME=PARTDATE,BYTES=6,START=27
SEGM NAME=SUPPLIER,BYTES=46,PARENT=PARTNO
FIELD NAME=(SUPNUM,SEQ,U),BYTES=6,START=1
FIELD NAME=SUPCONT,BYTES=30,START=17
SEGM NAME=SHIPMENT,BYTES=22,PARENT=SUPPLIER
FIELD NAME=(SHIPBOM,SEQ,U),BYTES=10,START=1
FIELD NAME=SHIPDATE,BYTES=6,START=11
SEGM NAME=PRICE,BYTES=14,PARENT=SUPPLIER
FIELD NAME=(PRICETYP,SEQ,U),BYTES=1,START=1
SEGM NAME=LOCATION,BYTES=9,PARENT=PARTNO
FIELD NAME=(LOCNUM,SEQ,U),BYTES=5,START=1
FIELD NAME=LOCQTY,BYTES=4,START=6
SEGM NAME=ASSEMBLY,BYTES=26,PARENT=PARTNO
FIELD NAME=(ASYNUM,SEQ,U),BYTES=6,START=1
FIELD NAME=ASYNAME,BYTES=20,START=2
DBDGEN
FINISH
END
14
2 IMS Control Blocks
PSB - Program Specification Block 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 PCB’s (program communication blocks)
15
2 IMS Control Blocks
PSB - Program Specification Block - Macros– PCB– SENSEG– SENFLD– PSBGEN
16
2 IMS Control Blocks
PSB - Program Specification Block - PCB Macro
PCB TYPE=DB,
DBDNAME=PARTNODB,
PROCOPT=A,
KEYLEN=6
17
2 IMS Control Blocks
PSB - Program Specification Block - SENSEG Macro
SENSEG NAME=PARTNO,
PARENT=0,
PROCOPT=G
18
2 IMS Control Blocks
PSB - Program Specification Block - SENFLD Macro
SENSEG NAME=LOCATION,PARENT=PARTNO
SENFLD NAME=LOCQTY,START=6, REPLACE=NO
19
2 IMS Control Blocks
PSB - Program Specification Block - PSBGEN Macro
PSBGEN LANG=COBOL,PSBNAME=TESTPSB1
20
2 IMS Control Blocks
PSB - Program Specification Block - Example
PCB TYPE=DB,NAME=PARTS,KEYLEN=100,PROCOPT=GO
SENSEG NAME=PARTNO,PARENT=0,PROCOPT=O
SENSEG NAME=SUPPLIER,PARENT=PARTNO
SENSEG NAME=SHIPMENT,PARENT=SUPPLIER,PROCOPT=A
PSBGEN LANG=COBOL,PSBNAME=PARTS001
END
21
2 IMS Control Blocks
ACB - Application Control Block
DBD LIBRARY
PSB LIBRARY
ACB LIBRARY
22
2 IMS Control Blocks
How the Control Blocks Work Together//STEP1 EXEC PGM=DFSRRC00,PARM=‘DLI,PGMNAME,PSBNAME,BUF,,,,,MON’
//STEPLIB DD DSN=IMSVS.RESLIB,DISP=SHR
// DD DSN=IMSVS.PGMLIB,DISP=SHR
//DFSRESLB DD DSN=IMSVS.RESLIB,DISP=SHR
//IMS DD DSN=IMSVS.PSBLIB,DISP=SHR
// DD DSN=IMSVS.DBDLIB,DISP=SHR
//IEFRDER DD DSN=IMSVS.PROGRM1.IMSLOG,
// UNIT=TAPE,DISP=(NEW,CATLG,CATLG)
//IMSMON DD DUMMY,DCB=(LRECL=2044,BLKSIZE=2048)
//SYSUDUMP DD SYSOUT=A
//DFSVSAMP DD DSN=IMVS.DFSVSAMP(PROGRAM1),DISP=SHR
//PARTS DD DSN=IMS.VSAM.PARTS,DISP=OLD
//PARTSOV DD DSN=IMS.VSAM.PARTSOV,DISP=OLD
23
2 IMS Control Blocks
DL/I and the Application Program
DATA BASE
OPERATING SYSTEM
DL/I
DBD PSB
APPLICATION PROGRAM
Your Address Space or Region
24
2 IMS Control Blocks
DL/I and the Application ProgramLINKAGE SECTION.
01 PCB-MASK.
05 DBDNAME PIC X(08).
05 LEVEL-NUMBER PIC XX.
05 STATUS-CODE PIC XX.
05 PROC-OPTIONS PICX(04).
05 JCB-ADDRESS PIC X(04).
05 SEGMENT-NAME PIC X(08).
05 KEY-LENGTH PIC S9(5) COMP.
05 NO-SEGMENTS PIC S9(5) COMP.
05 KEY-FEEDBACK PIC X(50).
PROCEDURE DIVISION USING PCB-MASK.
25
2 IMS Control Blocks
Quiz 1 & Quiz 2
26
3 The IMS/DB COBOL Program
Objectives - 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
27
3 The IMS/DB COBOL Program Program 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
28
3 The IMS/DB COBOL Program
DL/I Call StructureCALL ‘CBLTDLI’ USING FUNCTION
PCB-MASK
SEGMENT-IO-AREA
SSA-1
.
SSA-?
29
3 The IMS/DB COBOL Program
SSA - Segment Search ArgumentSEGMENT NAME 8 bytes
COMMAND CODES 3
OPEN PARENTHESIS ( 1
SEGMENT FIELD NAME 8
RELATIONAL OPERATOR 2
COMPARATIVE VALUE 1 - 255
CLOSE PARENTHESIS ) 1
30
3 The IMS/DB COBOL Program
Copy Books or Standard Includes– Segment Search Argument– Segment Description– Function Codes– PCB Descriptions– Status Codes– IMS Operators
31
3 The IMS/DB COBOL Program
Homework Assignment– draw a diagram of the test IMS
databases using the DBD information provided
32
4 IMS Retrieval Calls
Objectives - 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
33
4 IMS Retrieval Calls
GU - Get Unique - Fully Qualified SSA004444
002130001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
01 PARTNO-QSSA.
05 F PIC X(19) VALUE ‘PARTNO *--(PARTNUM’.
05 PARTNO-OPER PIC X(02) VALUE ‘EQ’.
05 PARTNO-KEY PIC X(06) VALUE ZERO.
05 F PIC X(01) VALUE ‘)’.
MOVE ‘002130’ TO PARTNO-KEY
MOVE ‘EQ’ TO PARTNO-OPER
CALL ‘CBLTDLI’ USING GU-FUNCTION
PARTS-PCB-MASK
PARTNO-SEGMENT
PARTNO-QSSA
IF PARTS-PCB-STATUS = ‘bb’
CONTINUE
ELSE
PERFORM error-routine.
34
4 IMS Retrieval Calls
GU - Multiple Fully Qualified SSAs004444
002130001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
MOVE ‘002130’ TO PARTNO-KEY
MOVE ‘EQ’ TO PARTNO-OPER
MOVE ‘LUCAS’ TO SUPPLIER-KEY
MOVE ‘EQ’ TO SUPPLIER-OPER
CALL ‘CBLTDLI’ USING GU-FUNCTION
PARTS-PCB-MASK
SUPPLIER-SEGMENT
PARTNO-QSSA
SUPPLIER-QSSA
IF PARTS-PCB-STATUS = ‘bb’
CONTINUE
ELSE
PERFORM error-routine.
35
4 IMS Retrieval Calls
GU - Unqualified SSA004444
002130001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
01 PARTNO-USSA PIC X(09) VALUE ‘PARTNO’.
CALL ‘CBLTDLI’ USING GU-FUNCTION
PARTS-PCB-MASK
PARTNO-SEGMENT
PARTNO-USSA
IF PARTS-PCB-STATUS = ‘bb’
CONTINUE
ELSE
PERFORM error-routine.
36
4 IMS Retrieval Calls
GU - Multiple Unqualified SSAs004444
002130001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
01 PARTNO-USSA PIC X(09) VALUE ‘PARTNO’.
01 SUPPLIER-USSA PIC X(09) VALUE ‘SUPPLIER’.
01 SHIPMENT-USSA PIC X(09) VALUE ‘SHIPMENT’.
CALL ‘CBLTDLI’ USING GU-FUNCTION
PARTS-PCB-MASK
SHIPMENT-SEGMENT
PARTNO-USSA
SUPPLIER-USSA
SHIPMENT-USSA
IF PARTS-PCB-STATUS = ‘bb’
CONTINUE
ELSE
PERFORM error-routine.
37
4 IMS Retrieval Calls
GU - Missing SSAs004444
002130001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
CALL ‘CBLTDLI’ USING GU-FUNCTION
PARTS-PCB-MASK
SHIPMENT-SEGMENT
SUPPLIER-USSA
SHIPMENT-USSA
IF PARTS-PCB-STATUS = ‘bb’
CONTINUE
ELSE
PERFORM error-routine.
38
4 IMS Retrieval Calls
GU - No SSAs004444
002130001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
CALL ‘CBLTDLI’ USING GU-FUNCTION
PARTS-PCB-MASK
PARTNO-SEGMENT
IF PARTS-PCB-STATUS = ‘bb’
CONTINUE
ELSE
PERFORM error-routine.
39
4 IMS Retrieval Calls
GN- Get Next - Fully Qualified SSA004444
002130001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
01 PARTNO-QSSA.
05 F PIC X(19) VALUE ‘PARTNO *--(PARTNUM’.
05 PARTNO-OPER PIC X(02) VALUE ‘EQ’.
05 PARTNO-KEY PIC X(06) VALUE ZERO.
05 F PIC X(01) VALUE ‘)’.
MOVE ‘004444’ TO PARTNO-KEY
MOVE ‘EQ’ TO PARTNO-OPER
CALL ‘CBLTDLI’ USING GN-FUNCTION
PARTS-PCB-MASK
PARTNO-SEGMENT
PARTNO-QSSA
IF PARTS-PCB-STATUS = ‘bb’
CONTINUE
ELSE
PERFORM error-routine.
40
4 IMS Retrieval Calls
GN - Multiple Fully Qualified SSAs
004444002130
001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
MOVE ‘002130’ TO PARTNO-KEY
MOVE ‘EQ’ TO PARTNO-OPER
MOVE ‘LUCAS’ TO SUPPLIER-KEY
MOVE ‘EQ’ TO SUPPLIER-OPER
MOVE ‘GE’ TO SHIPMENT-OPER
MOVE ‘1996/03/31’ TO SHIPMENT-KEY
CALL ‘CBLTDLI’ USING GN-FUNCTION
PARTS-PCB-MASK
SHIPMENT-SEGMENT
PARTNO-QSSA
SUPPLIER-QSSA
SHIPMENT-QSSA
IF PARTS-PCB-STATUS = ‘bb’
CONTINUE
ELSE
PERFORM error-routine.
41
4 IMS Retrieval Calls
GN - Unqualified SSA004444
002130001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
CALL ‘CBLTDLI’ USING GN-FUNCTION
PARTS-PCB-MASK
SHIPMENT-SEGMENT
SHIPMENT-USSA
IF PARTS-PCB-STATUS = ‘bb’
CONTINUE
ELSE
PERFORM error-routine.
42
4 IMS Retrieval Calls
GN - Multiple Unqualified SSAs004444
002130001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
CALL ‘CBLTDLI’ USING GN-FUNCTION
PARTS-PCB-MASK
SHIPMENT-SEGMENT
PARTNO-USSA
SUPPLIER-USSA
SHIPMENT-USSA
IF PARTS-PCB-STATUS = ‘bb’
CONTINUE
ELSE
PERFORM error-routine.
43
4 IMS Retrieval Calls
GN - A Combination of SSA Types004444
002130001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
CALL ‘CBLTDLI’ USING GN-FUNCTION
PARTS-PCB-MASK
SHIPMENT-SEGMENT
PARTNO-QSSA
SUPPLIER-QSSA
SHIPMENT-USSA
IF PARTS-PCB-STATUS = ‘bb’
CONTINUE
ELSE
PERFORM error-routine.
44
4 IMS Retrieval Calls
GN - No SSAs004444
002130001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
CALL ‘CBLTDLI’ USING GN-FUNCTION
PARTS-PCB-MASK
GENERIC-IO-AREA
IF PARTS-PCB-STATUS = ‘bb’ OR ‘GA’ OR ‘GK’
CONTINUE
ELSE
IF PARTS-PCB-STATUS = ‘GB’
PERFORM 9000-END-OF-DATABASE
ELSE
PERFORM error-routine.
45
4 IMS Retrieval Calls
GNP - Get Next in Parent
004444002130
001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
CALL ‘CBLTDLI’ USING GU-FUNCTION
PARTS-PCB-MASK
PARTNO-SEGMENT
PARTNO-QSSA
IF PARTS-PCB-STATUS = ‘bb’
PERFORM 2000-GNP-SUPPLIER
UNTIL PARTS-PCB-STATUS = ‘GE’
ELSE PERFORM error-routine.
2000-GNP-SUPPLIER.
CALL ‘CBLTDLI” USING GNP-FUNCTION
PARTS-PCB-MASK
SUPPLIER-SEGMENT
SUPPLIER-USSA
IF PARTS-PCB-STATUS = ‘bb’ OR ‘GE’
CONTINUE
ELSE PERFORM error-routine
46
4 IMS Retrieval Calls
Exercise 1
47
5 IMS Update Calls
Objectives - Student will– Understand the purpose of the HOLD
calls– Learn more about how SSAs are used– Be able to code the update calls
48
5 IMS Update Calls
GHU - Get Hold Unique004444
002130001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
CALL ‘CBLTDLI’ USING GHU-FUNCTION
PARTS-PCB-MASK
PARTNO-SEGMENT
PARTNO-QSSA
IF PARTS-PCB-STATUS = ‘bb’
PERFORM 2000-DLET-SUPPLIER
ELSE PERFORM error-routine.
2000-DLET-SUPPLIER.
CALL ‘CBLTDLI” USING DLET-FUNCTION
PARTS-PCB-MASK
PARTNO-SEGMENT
IF PARTS-PCB-STATUS = ‘bb’
CONTINUE
ELSE PERFORM error-routine
49
5 IMS Update Calls
GHN - Get Hold Next004444
002130001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
CALL ‘CBLTDLI’ USING GHN-FUNCTION
PARTS-PCB-MASK
PARTNO-SEGMENT
PARTNO-QSSA
IF PARTS-PCB-STATUS = ‘bb’
PERFORM 2000-DLET-SUPPLIER
ELSE PERFORM error-routine.
2000-DLET-SUPPLIER.
CALL ‘CBLTDLI” USING DLET-FUNCTION
PARTS-PCB-MASK
PARTNO-SEGMENT
IF PARTS-PCB-STATUS = ‘bb’
CONTINUE
ELSE PERFORM error-routine
50
5 IMS Update Calls
GHNP004444
002130001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
CALL ‘CBLTDLI’ USING GHNP-FUNCTION
PARTS-PCB-MASK
SUPPLIER-SEGMENT
SUPPLIER-QSSA
IF PARTS-PCB-STATUS = ‘bb’
PERFORM 2000-REPL-SUPPLIER
ELSE PERFORM error-routine.
2000-REPL-SUPPLIER.
CALL ‘CBLTDLI” USING REPL-FUNCTION
PARTS-PCB-MASK
SUPPLIER-SEGMENT
IF PARTS-PCB-STATUS = ‘bb’
CONTINUE
ELSE PERFORM error-routine
51
5 IMS Update Calls
ISRT004444
002130001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
CALL ‘CBLTDLI’ USING ISRT-FUNCTION
PARTS-PCB-MASK
PARTNO-SEGMENT
PARTNO-USSA
IF PARTS-PCB-STATUS = ‘bb’
CONTINUE
ELSE IF PARTS-PCB-STATUS = ‘II’
PERFORM duplicate-segment-error
ELSE PERFORM error routine.
52
5 IMS Update Calls
REPL004444
002130001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
CALL ‘CBLTDLI’ USING GHNP-FUNCTION
PARTS-PCB-MASK
SUPPLIER-SEGMENT
SUPPLIER-QSSA
IF PARTS-PCB-STATUS = ‘bb’
PERFORM 2000-REPL-SUPPLIER
ELSE PERFORM error-routine.
2000-REPL-SUPPLIER.
move changed data to supplier-segment
CALL ‘CBLTDLI” USING REPL-FUNCTION
PARTS-PCB-MASK
SUPPLIER-SEGMENT
IF PARTS-PCB-STATUS = ‘bb’
CONTINUE
ELSE PERFORM error-routine
53
5 IMS Update Calls
DLET004444
002130001100
POLLAKLUCAS
1996/04/301996/01/15
1995/09/01
CALL ‘CBLTDLI’ USING GHU-FUNCTION
PARTS-PCB-MASK
PARTNO-SEGMENT
PARTNO-QSSA
IF PARTS-PCB-STATUS = ‘bb’
PERFORM 2000-DLET-PARTNO
ELSE PERFORM error-routine.
2000-DLET-PARTNO.
CALL ‘CBLTDLI” USING DLET-FUNCTION
PARTS-PCB-MASK
PARNO-SEGMENT
IF PARTS-PCB-STATUS = ‘bb’
CONTINUE
ELSE PERFORM error-routine
54
5 IMS Update Calls
Exercise 2
55
6 Physical Organization of Data Base
Objectives - Student will– Be able to describe the four
organizations– Know each organization type’s
features and advantages
56
6 Physical Organization of Data Base
Hierarchical Sequential Organization - Segment Layout
s d e e g l - e I t D e
Segment Data
1 2 3
57
6 Physical Organization of Data Base
HSAM
ORDER 1
DEALER 1
MODEL AMODEL B
ORDER 3
STOCK 3
SALES 3
SALES 1
STOCK 2STOCK
1
ORDER 2
DEALER 1 MODEL A ORDER 1
ORDER 2 STOCK 1 STOCK 2 0 0
SALES 1 MODEL B ORDER 3 0 0
STOCK 3 SALES 3Next data base record starts
here.
ORDER 1
Unused Space
58
6 Physical Organization of Data Base
HISAM
DEALER 1
MODEL AMODEL B
ORDER 3
STOCK 3
SALES 3
SALES 1
STOCK 2STOCK
1
ORDER 2ORDER
1
Next data base record starts
here.
DEALER 1 MODEL A ORDER 1
KSDS
ORDER 2 STOCK 1 STOCK 2
SALES 1 MODEL B ORDER 3
STOCK 3 SALES 3 0
ESDS
59
6 Physical Organization of Data Base Characteristics
Type of Access Organization Major Features and AdvantagesRestrictions
HSAM All roots and dependent segments are Cannot add, delete, or
stored in physical hierarchic sequence. update segments.
Good for sequential retrieval only. Another data base must
be created for update
purposes.
Sequential
HISAM A root segment is found through an None.
index look-up. A dependent segment is
found by its sequential position within the
record. Good for directly accessing records
so that the segments in the record may be
processed sequentially.
60
6 Physical Organization of Data Base
Hierarchical Direct Access Methods - Segment Layouts d
e e
g l
e
I t D e
Pointers Segment Data
61
6 Physical Organization of Data Base
HDAM
ORDER 2 STOCK 1 STOCK 2
SALES 3
DEALER 1
MODEL AMODEL B
ORDER 3
STOCK 3
SALES 1
STOCK 2STOCK
1
ORDER 2ORDER
1
SALES 3
ESDS
DEALER 1 MODEL A ORDER 1
Root Addressable Area
Overflow AreaSTOCK 3 SALES 3
SALES 1 MODEL B ORDER 3
Free Space
62
6 Physical Organization of Data Base
HIDAMSALES
3
DEALER 1
MODEL AMODEL B
ORDER 3
STOCK 3
SALES 1
STOCK 2STOCK
1
ORDER 2ORDER
1
SALES 3
ESDS
ORDER 2 STOCK 1 STOCK 2
DEALER 1 MODEL A ORDER 1
STOCK 3 SALES 3 DEALER 2
SALES 1 MODEL B ORDER 3
KSDS
DEALER 1 DEALER 2 DEALER 3
63
6 Physical Organization of Data Base Characteristics
Type of Access Organization Major Features and AdvantagesRestrictions
HDAM A randomizing routine is used to store and A program will retrieve root
locate a data base record. Segments within segments in physical
a record are found using pointers. Used for sequence unless the program
fast direct access of data base records. suppliers the keys in the
appropriate order.
Direct
HIDAM A root segment is located by means of an None.
index. Segments within a record are found
through the use of pointers. Good when
equal amounts of direct and sequential
processing are required.
64
7 Advanced IMS/DB Concepts
Objectives - 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
65
7 Advanced IMS/DB Concepts
01 PARTNO-BSSA.
05 F PIC X(08) VALUE ‘PARTNO’.
05 PARTNO-BSSA-CC PIC X(03) VALUE ‘*--’.
05 PARTNO-BSSA-PAREN PIC X(01) VALUE ‘(‘.
05 PARTNO-BSSA-KEY1 PIC X(08) VALUE ‘PARTNUM’.
05 PARTNO-BSSA-OPER1 PIC X(02) VALUE ‘GT’.
05 PARTNO-BSSA-VALUE1 PIC X(06) VALUE SPACES.
05 PARTNO-BSSA-BOPER1 PIC X(01) VALUE ‘*’.
05 PARTNO-BSSA-KEY2 PIC X(08) VALUE ‘PARTNUM’.
05 PARTNO-BSSA-OPER2 PIC X(02) VALUE ‘LT’.
05 PARTNO-BSSA-VALUE2 PIC X(06) VALUE SPACES.
05 F PIC X(01) VALUE ‘)’.
PARTNObb*--(PARTNUMbGTbbbbbb*PARTNUMbLTbbbbbb)
Boolean SSA’s
66
7 Advanced IMS/DB Concepts
In the DBD: In the PCB: In the Program:
LCHILD NAME=(SEC INDEX SEG,SEC INDEX DBD NAME) PROCSEQ=name GU PARTNOb(XNAMEbbb=SWITCHbbbbb)
XDFLD NAME=XNAME, of secondary index
SRCH=Field index is based on DBD
In Secondary Index DBDACCESS=(INDEX,VSAM)
LCHILD=(SEG NAME OF SEGMENT INDEX is being defined on, Main DBD name)
INDEX=Index Name defined on XDFLD in main DBD
Secondary Indexing
67
7 Advanced IMS/DB Concepts
Secondary Indexing con’t
DBD NAME=BOOKSDB,ACCESS=(HISAM,VSAM)
DATASET DD1=BOOKSDB,OVFLW=BOOKSOV,DEVICE=3380,
BLOCK=(8,4),RECORD=(500,500)
SEGM NAME=BKDATA,BYTES=114,PARENT=0
FIELD NAME=(BKKEY,SEQ,U),BYTES=6,START=1
FIELD NAME=BKNAME,BYTES=35,START=7
LCHILD NAME=(BKSISEG,BOOKSSI),POINTER=SYMB
XDFLD NAME=BKXFLD,SRCH=BKNAME,NULLVAL=X’40’
DBDGEN
FINISH
END
DBD NAME=BOOKSSI,ACCESS=(INDEX,VSAM)
DATASET DD1=BOOKSSI,OVFLW=BOOKSIOV,DEVICE=3380,
BLOCK=(8,4),RECORD=(500,500)
SEGM NAME=BKSISEG,PARENT=0,BYTES=35
FIELD NAME=(BKSISEG,SEQ,M),BYTES=35,START=1
LCHILD NAME=(BKDATA,BOOKSDB),INDEX=BKXFLD,PTR=SYMB
DBDGEN
FINISH
END
Main DBD Secondary DBD
PSB PCB 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
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 ‘
SECINDEX-PCB-MASK
INPUT-SEGMENT
SEC-SSA
Program
68
7 Advanced IMS/DB Concepts
Variable Length Segments– Two byte binary length field
Programmer is responsible for length maintenance
– Minimum and maximum lengths specified by DBA in the DBD
L L Segment Data
69
7 Advanced IMS/DB Concepts
Parallel Processing– Multiple PCBs
ASSEMBLY
PART NO
(OLDPART)
SUPPLIER PRICELOCATION
SHIPMENT
ASSEMBLY
PART NO (NEWPART)
SUPPLIER PRICELOCATION
SHIPMENT
GU, PCB-MASK1
GNP,PCB-MASK1
ISRT,PCB-MASK2
70
7 Advanced IMS/DB Concepts
Parallel Processing con’tPSB Needed
PCB TYPE=DB,DBDNAME=MEMBERDB,PROCOPT=AP,
KEYLEN=100SENSEG NAME=MEDATA,PARENT=0SENSEG NAME=BLDATA,PARENT=MEDATAPCB TYPE=DB,DBDNAME=MEMBERDB,
PROCOPT=A,KEYLEN=100SENSEG NAME=MEDATA,PARENT=0SENSEG NAME=BLDATA,PARENT=MEDATAPSBGEN LANG=COBOL,PSBNAME=TIMSB40ZEND
PCB Masks
01 MEMBER1-PCB-MASK. 05 MEMBER1-DBD-NAME PIC X(8) 05 MEMBER1-SEG-LEVEL PIC X(2) 05 MEMBER1-STAT-CODE PIC X(2) . . . . . . . . . . 05 MEMBER-PCB-KEY PIC X(100)
01 MEMBER2-PCB-MASK. 05 MEMBER2-DBD-NAME PIC X(8) 05 MEMBER2-SEG-LEVEL PIC X(2) 05 MEMBER2-STAT-CODE PIC X(2) . . . . . . . . . . 05 MEMBER2-PCB-KEY PIC X(100)
Program Entry Statement
PROCEDURE DIVISION USINGMEMBER1-PCB-MASKMEMBER2-PCB-MASK.
71
7 Advanced IMS/DB Concepts
Exercise 3
72
8 Command Codes
Objectives - Student will– Understand the most commonly used
five Command Codes and how to they can be used efficiently
73
8 Command Codes
D - Path Call Command CodePART NO
SUPPLIER PRICELOCATION
SHIPMENT
ASSEMBLY
PARTNObb*D-(PARTNUMEQ002300)
SUPPLIER*D-(SUPPNUMEQLUCAS)
SHIPMENT*--(SHIPNUMEQ123456)
PARTNO DATA SUPPLIER DATA SHIPMENT DATA
IO AREA
74
8 Command Codes
D - Path Call Command Code con’t
01 MEDATA-SSA. 05 FILLER PIC X(12) VALUE ‘MEDATAbb*D-(‘. 05 MESSA-FIELD PIC X(8) VALUE ‘MEKEYbbb’. 05 MESSA-OPER PIC X(02) VALUE ‘EQ’. 05 MESSA-KEY PIC X(05) . 05 FILLER PIC X VALUE ‘)’.
01 BLDATA-SSA. 05 FILLER PIC X(12) VALUE ‘BLDATAbb*--(‘. 05 BLSSA-FIELD PIC X(8) VALUE ‘BLBNObbb’. 05 BLSSA-OPER PIC X(02) VALUE ‘EQ’. 05 BLSSA-KEY PIC X(06). 05 FILLER PIC X VALUE ‘)’.
01 PATH-CALL-IO-AREA. 05 MEMBER-SEGMENT PIC X(114). 05 BLDATA-SEGMENT PIC X(44).
Working Storage Procedure Division
MOVE ‘00001’ TO MESSA-KEY.MOVE ‘00004’ TO BLSSA-KEY.
CALL ‘CBLTDLI’ USING GU-FUNCTION MEMBERDB-PCB-MASK PATH-CALL-IO-AREA MEDATA-SSA BLDATA-SSA.
75
8 Command Codes
N - Do Not Replace This Segment
PARTNObb*N- PARTNUMEQ002300)
SUPPLIER*N- SUPPNUMEQLUCAS)
SHIPMENT*-- SHIPNUMEQ123456)
CALL ‘CBLTDLI’ USING REPL-FUNCTION
PARTS-PCB-MASK
SHIPMENT-SEGMENT
PARTNO-QSSA
SUPPLIER-QSSA
76
8 Command Codes
N - Path Call Command Code con’t
01 MEDATA-SSA. 05 FILLER PIC X(09) VALUE ‘MEDATAbb*’. 05 MESSA-CC PIC X(02) VALUE ‘--’. 05 MESS-LPAREN PIC X(01) VALUE ‘ (‘. 05 MESSA-FIELD PIC X(8) VALUE ‘MEKEYbbb’. 05 MESSA-OPER PIC X(02) VALUE ‘EQ’. 05 MESSA-KEY PIC X(05) . 05 FILLER PIC X VALUE ‘)’.
01 BLDATA-SSA. 05 FILLER PIC X(09) VALUE ‘BLDATAbb*‘. 05 BLSSA-CC PIC X(02) VALUE ‘--’. 05 FILLER PIC X(01) VALUE ‘ (‘. 05 BLSSA-FIELD PIC X(8) VALUE ‘BLBNObbb’. 05 BLSSA-OPER PIC X(02) VALUE ‘EQ’. 05 BLSSA-KEY PIC X(06). 05 FILLER PIC X VALUE ‘)’.
01 PATH-CALL-IO-AREA. 05 MEMBER-SEGMENT PIC X(114). 05 BLDATA-SEGMENT PIC X(44).
Working Storage Procedure Division
MOVE ‘D-’ TO MESSA-CC.MOVE ‘00001’ TO MESSA-KEY.MOVE ‘00004’ TO BLSSA-KEY.
CALL ‘CBLTDLI’ USING GU-FUNCTION MEMBERDB-PCB-MASK PATH-CALL-IO-AREA MEDATA-SSA BLDATA-SSA.
** MAKE CHANGES TO BLDATA SEGMENT DATA ***
MOVE ‘N-’ TO MESSA-CC.MOVE SPACE TO MESS-LPAREN.
CALL ‘CBLTDLI’ USING REPL-FUNCTION MEMBERDB-PCB-MASK BLDATA-SEGMENT MEDATA-SSA.
77
8 Command Codes
L - Retrieve Last Occurrence
PARTNO
123456
SUPPLIER
LUCAS
SHIPMENT
AAA
CCCBBB
CCCZZZ
78
8 Command Codes
L - Command Code con’t
01 MEDATA-SSA. 05 FILLER PIC X(11) VALUE ‘MEDATAbb*--’. 05 FILLER PIC X(01) VALUE ‘(’. 05 MESSA-FIELD PIC X(08) VALUE ‘MEKEYbbb’. 05 MESSA-OPER PIC X(02) VALUE ‘EQ’. 05 MESSA-KEY PIC X(05).. 05 FILLER PIC X(01) VALUE ‘)’. 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..
Working Storage Procedure Division
MOVE ‘00004’ TO MESSA-KEY.
CALL ‘CBLTDLI’ USING GU-FUNCTION MEMBERDB-PCB-MASK BLDATA-SEGMENT MEDATA-SSA BLDATA-USSA..
79
8 Command Codes
F - Retrieve First Occurrence
PARTNO
123456
SUPPLIER
LUCAS
SHIPMENT
AAA
CCCBBB
CCCZZZ
80
8 Command Codes
F - Command Code con’t
01 MEDATA-SSA. 05 FILLER PIC X(11) VALUE ‘MEDATAbb*--’. 05 FILLER PIC X(01) VALUE ‘(’. 05 MESSA-FIELD PIC X(08) VALUE ‘MEKEYbbb’. 05 MESSA-OPER PIC X(02) VALUE ‘EQ’. 05 MESSA-KEY PIC X(05).. 05 FILLER PIC X(01) VALUE ‘)’. 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..
Working Storage Procedure Division
MOVE ‘00004’ TO MESSA-KEY.
CALL ‘CBLTDLI’ USING GU-FUNCTION MEMBERDB-PCB-MASK BLDATA-SEGMENT MEDATA-SSA
BLDATA-USSA.
81
8 Command Codes
P - Set Parentage at this Segment
PARTNO
SUPPLIER
SHIPMENT
LOCATION
BIN
82
8 Command Codes
P - Command Code con’t
01 PART-USSA. 05 FILLER PIC X(11) VALUE ‘PARTNObb*PD’. 01 SUPPLIER-SSA. 05 FILLER PIC X(11) VALUE ‘SUPPLIER*--‘. 05 FILLER PIC X(01) VALUE ‘(‘. 05 SUPSSA-FIELD PIC X(08) VALUE ‘SUPSTATE’. 05 SUPSSA-OPER PIC X(02) VALUE ‘EQ’. 05 SUPSSA-KEY PIC X(02) VALUE SPACES. 05 FILLER PIC X(01) VALUE ‘)’.
01 LOCATION-SSA. 05 FILLER PIC X(11) VALUE ‘LOCATION*--’. 05 FILLER PIC X(01) VALUE ‘(’. 05 LOCSSA-FIELD PIC X(08) VALUE ‘LOCKEYbb’. 05 LOCSSA-OPER PIC X(02) VALUE ‘EQ’. 05 LOCSSA-KEY PIC X(04).. 05 FILLER PIC X(01) VALUE ‘)’. 01 PART-SUPP-SEGMENTS. 05 PART-SEGMENT PIC X(100).. 05 SUPPLIER-SEGMENT PIC X(100).
01 LOCATION-SEGMENT PIC X(100)..
Working Storage Procedure Division
MOVE ‘SDCA’ TO LOCSSA-KEY. MOVE ‘CA’ TO SUPSSA-KEY. PERFORM 2100-GN-PARTNO UNTIL PART-STATUS-CODE = ‘GB’.
CALL ‘CBLTDLI’ USING GN-FUNCTION PARTDB-PCB-MASK PART-SUPP-SEGMENTS PART-USSA.
SUPPLIER-SSA.
PERFORM 2200-GET-LOCATION UNTIL PARTS-STATUS-CODE = ‘GE’.
2200-GET-LOCATION.
CALL ‘CBLTDLI’ USING GNP-FUNCTION PARTDB-PCB-MASK LOCATION-SEGMENT LOCATION-SSA.
83
8 Command Codes
Exercise 4
84
9 IMS Batch / On-Line Overview
Objectives - 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
85
9 IMS Batch / On-Line Overview The Batch Environment
DATA BASE 1
OPERATING SYSTEM
REGION REGION
IMS BATCH SUBSYSTEM
DATA BASE 2
IMS BATCH SUBSYSTEM
Program A Program B
DL/I DL/I
Control Blocks
Control Blocks
Buffers Buffers
86
9 IMS Batch / On-Line Overview
Report
DL/I data
bases
DL/I batch applicationprogram
Transaction file
DL/I Modules
Input Records
Data Base processing
The Batch Program Relationship
87
9 IMS Batch / On-Line Overview The On-Line Environment
Data Base 4
Data Base 3
OPERATING SYSTEM
IMS/VS on-line SUBSYSTEM
IMS/VS Control Program
DL/I Code
DBDs
Buffers
Program A
Program B
PSB PSB
PCB PCB
Control DL/I Dependent Dependent
REGIONS:
88
9 IMS Batch / On-Line Overview
The On-Line Program Relationship
IMS DC application program
DL/I data
bases
DL/I Modules
Input message
Output message
Data Communications component
Data Base processing
89
9 IMS Batch / On-Line Overview
On-Line Terminology– LTERM– Message– Transaction– I/O PCB– Alternate I/O PCB
90
9 IMS Batch / On-Line Overview
The Types of on-line Programs– MPP– Message-Driven Program– Batch-Oriented BMP– Transaction-Oriented BMP
91
9 IMS Batch / On-Line Overview
The Teleprocessing PCB
PCB TYPE=TP,LTERM=LPRINT01
PCB TYPE=TP,MODIFY=YES
PSBGEN LANG=COBOL,PSBNAME=PROG001,CMPAT=YES
92
9 IMS Batch / On-Line Overview
The IO and Alternate IO PCB Masks01 IO-PCB-MASK.
05 IO-PCB-LTERM PIC X(08).
05 F PIC XX.
05 IO-PCB-STATUS-CODE PIC XX.
05 IO-PCB-DATE PIC S9(07) COMP-3.
05 IO-PCB-TIME PIC S9(06)V9 COMP-3.
05 IO-PCB-MSG-NBR PIC S9(05) COMP.
05 IO-PCB-MODNAME PIC X(08).
05 IO-PCB-USERID PIC X(08).
01 ALTERNATE-IO-PCB-MASK.
*
*
93
9 IMS Batch / On-Line Overview
The Entry Statement for On-Line Programs
PROCEDURE DIVISION USING IO-PCB-MASK
ALTERNATE-IO-PCB-MASK
DB1-PCB-MASK
DB2-PCB-MASK
94
9 IMS Batch / On-Line Overview
GSAM - Generalized Sequential Access Method– The DBD
DBD NAME=GSAMDBD,ACCESS=(GSAM,VSAM)
DATASET DD1=GSAMINDB,DD2=GSAMOUDB,RECFM=F,RECORD=(133,80)
DBDGEN
FINISH
END
95
9 IMS Batch / On-Line Overview
GSAM - Generalized Sequential Access Method– The PSB
PCB TYPE=TP,MODIFY=YES
PCB TYPE=DB..............
PCB TYPE=DB.............
PCB TYPE=GSAM,DBDNAME=GSAMDBD,PROCOPT=G
PCB TYPE=GSAM,DBDNAME=GSAMDBD,PROCOPT=L
96
9 IMS Batch / On-Line Overview
GSAM - Generalized Sequential Access Method– The JCL
//TIMSB50A JOB ,’TEST GSAM’, CLASS=A,MSGCLASS=A
//STEP01 EXEC PGM=DFSRRC00,PARM=(BMP,TIMSB50Z,TIMSB50Z,,,,)
//GSAMINDB DD DSN=TRAIN01.COBOL.INFILE,DISP=OLD
//GSAMOUDB DD DSN=TRAIN01.COBOL.REPORT,DISP=OLD
97
9 IMS Batch / On-Line Overview GSAM - Generalized Sequential
Access Method– The PCB-MASK
01 GSAMIN-PCB-MASK.
05 GSAMIN-DBDNAME PIC X(08).
05 FILLER PIC XX.
05 GSAMIN-STATUS-CODE PIC XX.
05 GSAMIN-PROC-OPT PIC X(04).
05 GSAMIN-JCB-ADDRESS PIC S9(8) COMP.
05 GSAMIN-RECORD-NAME PIC X(08).
98
9 IMS Batch / On-Line Overview
GSAM - Generalized Sequential Access Method– The Entry Statement
PROCEDURE DIVISION USING IO-PCB-MASK
ALTERNATE-IO-PCB-MASK
DB1-PCB-MASK
DB2-PCB-MASK
GSAMIN-PCB-MASK
GSAMOUT-PCB-MASK
99
9 IMS Batch / On-Line Overview
GSAM - Generalized Sequential Access Method– Accessing the GSAM
CALL ‘CBLTDLI’ USING GN-FUNCTION
GSAMIN-PCB-MASK
INPUT-RECORD
IF GSAMIN-STATUS-CODE = BB-STATUS
CONTINUE
ELSE
IF GSAMIN-STATUS-CODE = GB-STATUS
PERFORM 9000-PROCESS-THE-END
ELSE
PERFORM ABEND-PARAGRAPH.
CALL ‘CBLTDLI’ USING ISRT-FUNCTION
GSAMOUT-PCB-MASK
OUTPUT-RECORD
IF GSAMOUT-STATUS-CODE = BB-STATUS
CONTINUE
ELSE
PERFORM ABEND-PARAGRAPH.
100
9 IMS Batch / On-Line Overview
Exercise 5– Convert program TIMSB005 to use
GSAMs rather than sequential flat files
101
10 Data Base Integrity and Security
Objectives - Student will– Understand commit points and when
they occur in IMS processing– Be able to design and code
checkpoints and restarts in IMS BMPs
102
10 Data Base Integrity and Security
How IMS/VS Protects Data Integrity– Commit Points– When Commit Points Occur
Normal Termination Checkpoint Call When a New Message is Retrieved
103
10 Data Base Integrity and Security
The Symbolic Checkpoint Why Checkpoints are Important
104
10 Data Base Integrity and Security
The IMS LogLL BB CODE RECORD SEQ #
2 2 1 Variable Length 4LL Binary halfword field
containing the length of this IMS log record
BB Binary halfword used by MVS
CODE One hexadecimal byte containing the IMS
log record code
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.
IMS LOG RECORD CODES
X’08’ Scheduling Record
X’09’ Termination Record
X’2F’ Open Data Base Record
X’41’ Checkpoint Record
X’50’ After Image
X’51’ Before Image
105
10 Data Base Integrity and Security
The CHKP Call 01 CHKP-LONGEST-SEGMENT PIC S9(8) COMP VALUE +200.
01 CHKP-ID.
05 CHKP-PROGRAM PIC X(04) VALUE ‘C100’.
05 CHKP-NUMBER PIC 9(040 VALUE ZERO.
01 CHKP-AREA-LENGTH PIC S9(8) COMP VALUE +1000.
01 CHKP-AREA PIC X(1000).
ADD 1 TO CHKP-NUMBER
CALL ‘CBLTDLI’ USING CHKP-FUNCTION
IO-PCB-MASK
CHKP-LONGEST-SEGMENT
CHKP-ID
CHKP-AREA-LENGTH
CHKP-AREA
106
10 Data Base Integrity and Security When to Take a CHKP
– At the top of the processing loop Just before a GU Before a GN to a GSAM driver file
What to Save– Keys– Counters– Accumulators
Reestablish Position
107
10 Data Base Integrity and Security
The XRST Call01 CHKP-LONGEST-SEGMENT PIC S9(8) COMP VALUE +200.
01 XRST-ID PIC X(12).
01 CHKP-AREA-LENGTH PIC S9(8) COMP VALUE +1000.
01 CHKP-AREA PIC X(1000).
MOVE SPACES TO XRST-ID
CALL ‘CBLTDLI’ USING XRST-FUNCTION
IO-PCB-MASK
CHKP-LONGEST-SEGMENT
XRST-ID
CHKP-AREA-LENGTH
CHKP-AREA
IF CHKP-ID > SPACES PERFORM restart logic.
108
10 Data Base Integrity and Security
Restart - JCL
//STEP1 EXEC PGM=DFSRRC00,PARM=‘BMP,PGMNAME,PSBNAME,,,,,,LAST’
//STEPLIB DD DSN=IMSVS.RESLIB,DISP=SHR
// DD DSN=IMSVS.PGMLIB,DISP=SHR
//DFSRESLB DD DSN=IMSVS.RESLIB,DISP=SHR
//SYSUDUMP DD SYSOUT=A
109
10 Data Base Integrity and Security
ROLBCALL ‘CBLTDLI’ USING ROLB-FUNCTION
PCB-MASK
110
10 Data Base Integrity and Security
How CKPT and XRST Work Together– Plan Checkpoints Carefully– Code Correctly– Test Thoroughly
111
10 Data Base Integrity and Security
Exercise 6– Add checkpoint/restart capability to
TIMSB005