111
IMS Data Base Programming (IMS/DB)

IMS PPT I

Embed Size (px)

Citation preview

Page 1: IMS PPT I

1

IMS Data Base Programming (IMS/DB)

Page 2: IMS PPT I

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

Page 3: IMS PPT I

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.

Page 4: IMS PPT I

4

1 DL/I Concepts

Data Base Advantages– Increased data independence by

application programs– Reduced data redundancy– Improved data security

Page 5: IMS PPT I

5

1 DL/I Concepts

The Hierarchical StructurePART NO

SUPPLIER ASSEMBLY

PRICE

LOCATION

SHIPMENT

Page 6: IMS PPT I

6

1 DL/I Concepts

DL/I TerminologyPART NO

SUPPLIER ASSEMBLY

PRICE

LOCATION

SHIPMENT 2

1

2

1

Page 7: IMS PPT I

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).

Page 8: IMS PPT I

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

Page 9: IMS PPT I

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

Page 10: IMS PPT I

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

Page 11: IMS PPT I

11

2 IMS Control Blocks

DBD - Data Base Definition - Macros– DBD– DATASET– SEGM– LCHILD– FIELD– XDFLD

Page 12: IMS PPT I

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

Page 13: IMS PPT I

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

Page 14: IMS PPT I

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)

Page 15: IMS PPT I

15

2 IMS Control Blocks

PSB - Program Specification Block - Macros– PCB– SENSEG– SENFLD– PSBGEN

Page 16: IMS PPT I

16

2 IMS Control Blocks

PSB - Program Specification Block - PCB Macro

PCB TYPE=DB,

DBDNAME=PARTNODB,

PROCOPT=A,

KEYLEN=6

Page 17: IMS PPT I

17

2 IMS Control Blocks

PSB - Program Specification Block - SENSEG Macro

SENSEG NAME=PARTNO,

PARENT=0,

PROCOPT=G

Page 18: IMS PPT I

18

2 IMS Control Blocks

PSB - Program Specification Block - SENFLD Macro

SENSEG NAME=LOCATION,PARENT=PARTNO

SENFLD NAME=LOCQTY,START=6, REPLACE=NO

Page 19: IMS PPT I

19

2 IMS Control Blocks

PSB - Program Specification Block - PSBGEN Macro

PSBGEN LANG=COBOL,PSBNAME=TESTPSB1

Page 20: IMS PPT I

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

Page 21: IMS PPT I

21

2 IMS Control Blocks

ACB - Application Control Block

DBD LIBRARY

PSB LIBRARY

ACB LIBRARY

Page 22: IMS PPT I

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

Page 23: IMS PPT I

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

Page 24: IMS PPT I

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.

Page 25: IMS PPT I

25

2 IMS Control Blocks

Quiz 1 & Quiz 2

Page 26: IMS PPT I

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

Page 27: IMS PPT I

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

Page 28: IMS PPT I

28

3 The IMS/DB COBOL Program

DL/I Call StructureCALL ‘CBLTDLI’ USING FUNCTION

PCB-MASK

SEGMENT-IO-AREA

SSA-1

.

SSA-?

Page 29: IMS PPT I

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

Page 30: IMS PPT I

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

Page 31: IMS PPT I

31

3 The IMS/DB COBOL Program

Homework Assignment– draw a diagram of the test IMS

databases using the DBD information provided

Page 32: IMS PPT I

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

Page 33: IMS PPT I

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.

Page 34: IMS PPT I

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.

Page 35: IMS PPT I

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.

Page 36: IMS PPT I

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.

Page 37: IMS PPT I

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.

Page 38: IMS PPT I

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.

Page 39: IMS PPT I

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.

Page 40: IMS PPT I

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.

Page 41: IMS PPT I

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.

Page 42: IMS PPT I

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.

Page 43: IMS PPT I

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.

Page 44: IMS PPT I

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.

Page 45: IMS PPT I

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

Page 46: IMS PPT I

46

4 IMS Retrieval Calls

Exercise 1

Page 47: IMS PPT I

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

Page 48: IMS PPT I

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

Page 49: IMS PPT I

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

Page 50: IMS PPT I

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

Page 51: IMS PPT I

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.

Page 52: IMS PPT I

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

Page 53: IMS PPT I

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

Page 54: IMS PPT I

54

5 IMS Update Calls

Exercise 2

Page 55: IMS PPT I

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

Page 56: IMS PPT I

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

Page 57: IMS PPT I

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

Page 58: IMS PPT I

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

Page 59: IMS PPT I

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.

Page 60: IMS PPT I

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

Page 61: IMS PPT I

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

Page 62: IMS PPT I

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

Page 63: IMS PPT I

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.

Page 64: IMS PPT I

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

Page 65: IMS PPT I

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

Page 66: IMS PPT I

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

Page 67: IMS PPT I

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

Page 68: IMS PPT I

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

Page 69: IMS PPT I

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

Page 70: IMS PPT I

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.

Page 71: IMS PPT I

71

7 Advanced IMS/DB Concepts

Exercise 3

Page 72: IMS PPT I

72

8 Command Codes

Objectives - Student will– Understand the most commonly used

five Command Codes and how to they can be used efficiently

Page 73: IMS PPT I

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

Page 74: IMS PPT I

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.

Page 75: IMS PPT I

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

Page 76: IMS PPT I

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.

Page 77: IMS PPT I

77

8 Command Codes

L - Retrieve Last Occurrence

PARTNO

123456

SUPPLIER

LUCAS

SHIPMENT

AAA

CCCBBB

CCCZZZ

Page 78: IMS PPT I

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..

Page 79: IMS PPT I

79

8 Command Codes

F - Retrieve First Occurrence

PARTNO

123456

SUPPLIER

LUCAS

SHIPMENT

AAA

CCCBBB

CCCZZZ

Page 80: IMS PPT I

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.

Page 81: IMS PPT I

81

8 Command Codes

P - Set Parentage at this Segment

PARTNO

SUPPLIER

SHIPMENT

LOCATION

BIN

Page 82: IMS PPT I

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.

Page 83: IMS PPT I

83

8 Command Codes

Exercise 4

Page 84: IMS PPT I

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

Page 85: IMS PPT I

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

Page 86: IMS PPT I

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

Page 87: IMS PPT I

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:

Page 88: IMS PPT I

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

Page 89: IMS PPT I

89

9 IMS Batch / On-Line Overview

On-Line Terminology– LTERM– Message– Transaction– I/O PCB– Alternate I/O PCB

Page 90: IMS PPT I

90

9 IMS Batch / On-Line Overview

The Types of on-line Programs– MPP– Message-Driven Program– Batch-Oriented BMP– Transaction-Oriented BMP

Page 91: IMS PPT I

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

Page 92: IMS PPT I

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.

*

*

Page 93: IMS PPT I

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

Page 94: IMS PPT I

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

Page 95: IMS PPT I

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

Page 96: IMS PPT I

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

Page 97: IMS PPT I

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).

Page 98: IMS PPT I

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

Page 99: IMS PPT I

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.

Page 100: IMS PPT I

100

9 IMS Batch / On-Line Overview

Exercise 5– Convert program TIMSB005 to use

GSAMs rather than sequential flat files

Page 101: IMS PPT I

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

Page 102: IMS PPT I

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

Page 103: IMS PPT I

103

10 Data Base Integrity and Security

The Symbolic Checkpoint Why Checkpoints are Important

Page 104: IMS PPT I

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

Page 105: IMS PPT I

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

Page 106: IMS PPT I

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

Page 107: IMS PPT I

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.

Page 108: IMS PPT I

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

Page 109: IMS PPT I

109

10 Data Base Integrity and Security

ROLBCALL ‘CBLTDLI’ USING ROLB-FUNCTION

PCB-MASK

Page 110: IMS PPT I

110

10 Data Base Integrity and Security

How CKPT and XRST Work Together– Plan Checkpoints Carefully– Code Correctly– Test Thoroughly

Page 111: IMS PPT I

111

10 Data Base Integrity and Security

Exercise 6– Add checkpoint/restart capability to

TIMSB005