ims db presentation ver 1.1

127
1 IMS - DB IMS - DB

Upload: sunnychinni

Post on 24-Nov-2014

169 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: IMS DB PRESENTATION ver 1.1

1

IMS - DBIMS - DB

Page 2: IMS DB PRESENTATION ver 1.1

2

SESSION 1 IMS GENERAL CONCEPTS

SESSION 2 DL/I CONTROL BLOCKS

SESSION 3 SEGMENT SEARCH ARGUMENTS (SSAs)

SESSION 4 COBOL BASICS FOR IMS

SESSION 5 DL/I CALLS

SESSION 6 COMMAND CODES

SESSION 7 DL/I CALLS EXERCISE

SESSION 8 DATABASE ACCESS METHODS

SESSION 9 MULTIPLE PROCESSING

SESSION 10 SECONDARY INDEXING

SESSION 11 LOGICAL RELATIONSHIP

SESSION 12 DB RECOVERY/RESTART

SESSION 13 EFFICIENT PROGRAMMING TIPS

SESSION 14 COMMON IMS ABENDS

Page 3: IMS DB PRESENTATION ver 1.1

3

SESSION 1SESSION 1

IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS

Page 4: IMS DB PRESENTATION ver 1.1

4

IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS

IMS - INFORMATION MANAGEMENT SYSTEM

DEVELOPED IN 1968 BY IBM

DATA LANGUAGE-I (DL/I) WAS DEVELOPED AS A INTERFACE

BETWEEN APPLICATION CODE AND DATA IN IMS DATABASE

Page 5: IMS DB PRESENTATION ver 1.1

5

B3

A2

D1B2

A1

C1

ROOT SEGMENT (PARENT)

SEGMENT OCCURRNCES

TWIN SEGMENTSDEPENDENT SEGMENTS

-- Level 1

-- Level 2B1

HIERARCHICAL STRUCTURE

IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS

FOLLOWS INVERTED TREE STRUCTURE

EACH BOX IN THE HIERARCHY REPRESENTS

A SEGMENT

ROOT SEGMENT WILL BE ON TOP

EACH SEGMENT (EXCEPT ROOT SEGMENT)

IS DIRECTLY DEPENDENT ON ONLY ONE

SEGMENT

Continued ...Continued ...

Page 6: IMS DB PRESENTATION ver 1.1

6

SEGMENT IS THE SMALLEST INFORMATION THAT DL/I CAN FETCH

EACH SEGMENT WILL HAVE UNIQUE 8 CHARACTER (MAX) NAME

SEGMENTS ARE MADE UP OF 1 OR MORE FIELDS

FIELD IS THE SMALLEST UNIT THAT DL/I CAN HANDLE

EACH FIELD WILL HAVE MAX 8 CHARACTER NAME

SEGMENT TYPE vs SEGMENT OCCURRENCE

SEGMENT OCCURRENCE IS A PARTICULAR INSTANCE OF A SEGMENT TYPE

IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...

Page 7: IMS DB PRESENTATION ver 1.1

7

TWO TYPES OF FIELDS

KEY FIELDS

SEARCH FIELDS

KEY FIELD IS USED TO SEQUENCE DATABASE AND IT CAN NOT BE

CHANGED

BOTH TYPES OF FIELDS CAN BE USED TO SEARCH DATABASE

IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...

Page 8: IMS DB PRESENTATION ver 1.1

8

ROOT A SEGMENT WITHOUT PARENT

PARENTA SEGMENT WITH ONE OR MORE DEPENDENT SEGMENTS

DIRECTLY UNDER IT

CHILDA SEGMENT WHICH IS DIRECTLY DEPENDENT ON ANOTHER

SEGMENT

DEPENDENTALL SEGMENTS UNDER A PARTICULAR SEGMENT OF THE

DATABASE

TWINALL OCCURRENCES (2 OR MORE) OF A SEGMENT TYPE

UNDER A PARENT

SIBLINGS OCCURRENCES OF DIFFERENT SEGMENT TYPES UNDER A PARENT

TYPES OF SEGMENTS

IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...

Page 9: IMS DB PRESENTATION ver 1.1

9

2 4

1

3

5 76 8 9

1. WHICH SEGMENTS ARE DEPENDENT ON SEGMENT 4?2. WHICH SEGMENTS ARE CHILD SEGMENTS OF SEGMENT 1?3. WHICH SEGMENTS ARE DEPENDENT SEGMENTS OF SEGMENT 1?4. HOW MANY LEVELS?

EXERCISE - 1EXERCISE - 1

IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...

Page 10: IMS DB PRESENTATION ver 1.1

10

DATABASE RECORDDATABASE RECORD

ONE OCCURRENCE OF A ROOT SEGMENT ALONG WITH ALL ITS DEPENDENT SEGMENTS

IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...

Page 11: IMS DB PRESENTATION ver 1.1

11

HOW MANY DATABASE RECORDS?

EXERCISE-2EXERCISE-2

IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...

Page 12: IMS DB PRESENTATION ver 1.1

12

IMS DATABASE LIMITATIONSIMS DATABASE LIMITATIONS

IMS SUPPORTS

15 LEVELS

255 SEGMENTS

1000 FIELDS

NO LIMITATION ON NUMBER OF SEGMENT OCCURRENCES.

IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...

Page 13: IMS DB PRESENTATION ver 1.1

13

DL/I FORMS BRIDGE BETWEEN APPLICATION PROGRAM AND IMS DATABASE

DL/I IS DATABASE MANAGER. IT

CONSISTS OF IMS PROGRAM

MODULES THAT RUN EXTERNAL TO

APPLICATION PROGRAM

DL/I ALLOWS SEQUENTIAL OR

RANDOM PROCESSING OF DATABASE

IMS ENVIRONMENTIMS ENVIRONMENT

IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS

App Prog

DL/I DC

TerminalDatabase

DB PCBinterface

I/O PCBinterface

Continued ...Continued ...

Page 14: IMS DB PRESENTATION ver 1.1

14

MODES OF PROCESSING

BATCH DL/I MODE

MPP MODE

BMP MODE

IMS ENVIRONMENTIMS ENVIRONMENT

IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS

MPP

ONLINE

DL/I

BATCH

BMP

Continued ...Continued ...

Page 15: IMS DB PRESENTATION ver 1.1

15

BATCH DL/IBATCH DL/I

TRUE BATCH PROCESSING

NO DATA COMMUNICATION SERVICES ARE USED

DATABASES ACCESSED MUST BE OFFLINE

MPP (MESSAGE PROCESSING PROGRAM)MPP (MESSAGE PROCESSING PROGRAM)

TRUE ONLINE PROCESSING

TRANSACTION ARE ENTERED AT TERMINAL AND STORED IN MESSAGE QUEUE

DATABASES ACCESSED MUST BE ONLINE

IMS ENVIRONMENTIMS ENVIRONMENT

IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...

Page 16: IMS DB PRESENTATION ver 1.1

16

BMP (BATCH MESSAGE PROCESSING)BMP (BATCH MESSAGE PROCESSING)

TWO TYPES

1. TRANSACTION ORIENTED:

CAN READ & WRITE TO ONLINE MESSAGE QUEUES

CAN PROCESS ONLINE FILES AND DATABASES

2. BATCH ORIENTED:

CAN ONLY READ MESSAGE QUEUES

ACCESS ONLINE DATABASES IN BATCH MODE

IMS ENVIRONMENTIMS ENVIRONMENT

IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...

Page 17: IMS DB PRESENTATION ver 1.1

17

SESSION 2SESSION 2

DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS

Page 18: IMS DB PRESENTATION ver 1.1

18

DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS

DATABASE DESCRIPTION (DBD)DATABASE DESCRIPTION (DBD)

DEFINES THE LAYOUT OF THE DATABASE

DATABASE ADMINISTRATOR DEFINES LAYOUT USING DBDGEN MACRO

PROGRAM SPECIFICATION BLOCK (PSB)PROGRAM SPECIFICATION BLOCK (PSB)

DEFINES THE PROGRAMS VIEW OF THE DATABASE AND APPLICATION PROGRAMS ACCESS AUTHORITY TO DATABASE

DATABASE ADMINISTRATOR / PROGRAMMER DEFINES THIS USING PSBGEN MACRO

Page 19: IMS DB PRESENTATION ver 1.1

19

STATEMENTS IN DBD MACROSTATEMENTS IN DBD MACRO

DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS

DATADATA BASEBASE DESCRIPTIONDESCRIPTION (DBD)(DBD)

STATEMENT DESCRIPTION

DBD SPECIFIES DATABASE NAME, ACCESS METHOD

DATASET SPECIFIES DD NAME TO BE USED IN JCL, DISK TYPE

SEGM SPECIFIES SEGMENT NAME,SEGMENT LENGTH, PARENT

FIELD SPECIFIES FIELD NAME, LENGTH, STARTING POSITION

IDENTIFIES A FIELD AS KEY OR SEARCH FIELD

Continued ...Continued ...

Page 20: IMS DB PRESENTATION ver 1.1

20

SAMPLE DBDGENSAMPLE DBDGEN

PRINT NOGEN

DBD NAME=VENDOR,ACCESS=HDAM

DATASET DD1=VEND,DEVICE=3380

SEGM NAME=VENSEG,PARENT=0,BYTES=10

FIELD NAME=(VENCODE,SEQ,U),BYTES=10,START=1,TYPE=C

SEGM NAME=ITEMSEG,PARENT=VENSEG,BYTES=5

FIELD NAME=(ITEMCODE,SEQ,U),BYTES=5,START=1,TYPE=C

SEGM NAME=LOCNSEG,PARENT=ITEMSEG,BYTES=9

FIELD NAME=(LOCNCODE,SEQ),BYTES=3,START=1,TYPE=C

FIELD NAME=ORDDATE,BYTES=6,START=4,TYPE=C

DBDGEN

FINISH

END

DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS Continued ...Continued ...

Page 21: IMS DB PRESENTATION ver 1.1

21

TYPE DESCRIPTION

C Character (Default)

COBOL PICTURE

X

P Packed Decimal COMP-3

Z Zoned Decimal S9

H Half Word Binary 9(4) COMP

F Full Word Binary 9(8) COMP

DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS

DATATYPESDATATYPES USEDUSED ININ DBDGENDBDGEN

Continued ...Continued ...

Page 22: IMS DB PRESENTATION ver 1.1

22

CAN WE DEFINE OVERLAPPING FIELDS?

DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS Continued ...Continued ...

Page 23: IMS DB PRESENTATION ver 1.1

23

PROGRAMPROGRAM SPECIFICATIONSPECIFICATION BLOCKBLOCK (PSB)(PSB)

MADE UP OF ONE OR MORE PROGRAM COMMUNICATION BLOCKS (PCBs)

DB PCB - DEFINES PROGRAM’S VIEW OF A IMS DATABASE

WHENEVER A DATABASE VIEW DEFINED BY THE PCB IS ACCESSED BY A

CALL, THE RESULTS OF CALL ARE PASSED THROUGH THE PCB TO

PROGRAM

PSB IS GENERATED BY PSBGEN MACRO

DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS Continued ...Continued ...

Page 24: IMS DB PRESENTATION ver 1.1

24

A

B C

D E

DATABASEDATABASE PCBPCB

DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS

PCB GIVES LOGICAL VIEW OF A DATABASE

PORTION OF DATABASE THAT THE PROGRAM PROCESSES IS CALLED

APPLICATION DATA STRUCTURE

A

C

E

Continued ...Continued ...

Page 25: IMS DB PRESENTATION ver 1.1

25

PRINT NOGEN

PCB TYPE=DB,DBDNAME=VENDOR,KEYLEN=15,PROCOPT=LS

SENSEG NAME=VENSEG

SENSEG NAME=ITEMSEG,PARENT=VENSEG

PSBGEN

END

• KEYLEN IS THE LENGTH OF CONCATENATED KEY

DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS

SAMPLESAMPLE PSBGENPSBGEN

Continued ...Continued ...

Page 26: IMS DB PRESENTATION ver 1.1

26

PROCOPT DESCRIPTION

G Get or Read

I Insert

R Replace

D Delete

A All Options (G, I, R, D)

L Initial Load

LS Sequential Initial Load

K Access only Key of segment

O Used with G to Indicate that Hold is not allowed

P Path Calls

PROCOPTS IN PSB DEFINES SECURITY LEVEL FOR THE PROGRAM

DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS Continued ...Continued ...

Page 27: IMS DB PRESENTATION ver 1.1

27

DBD1 DBD3DBD2

PCB1 PCB2

PCB3 PCB4

DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS

APPLICATION PROGRAM CAN HAVE MULTIPLE VIEWS OF A DATABASE BY

USING SEPARATE PCBS FOR A SINGLE DATABASE

PSBPSB

Continued ...Continued ...

Page 28: IMS DB PRESENTATION ver 1.1

28

PRINT NOGEN

PCB TYPE=DB,DBDNAME=VENDOR,KEYLEN=15

SENSEG NAME=VENSEG,PROCOPT=G

SENSEG NAME=ITEMSEG,PARENT=VENSEG,PROCOPT=R

SENSEG NAME=LOCNSEG,PARENT=ITEMSEG,PROCOPT=A

PSBGEN

END

1. LIST THE SEGMENTS THAT MAY BE UPDATED USING THIS PSB

2. LIST THE SEGMENTS THAT CANNOT BE UPDATED

3. GIVE THE VALID PROCOPT TO BE CODED FOR ADDING AND REPLACING RECORDS IN LOCATION SEGMENT

DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS Continued ...Continued ...

Page 29: IMS DB PRESENTATION ver 1.1

29

EMPDATA

WORKDATA DEPTDATA BENDATA

BASED ON THE ABOVE VIEW OF DATABASE FILL IN THE MISSING PIECES

OF PCB

PCB TYPE=DB,DBDNAME=EMPDB,KEYLEN=16,PROCOPT=G

SENSEG NAME=_________________,PARENT=_____________________

SENSEG NAME=_________________,PARENT=_____________________

SENSEG NAME=_________________,PARENT=_____________________

SENSEG NAME=_________________,PARENT=_____________________

PSBGEN LANG=COBOL,PSBNAME=EMPPSBY

END

DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS Continued ...Continued ...

Page 30: IMS DB PRESENTATION ver 1.1

30

SESSION 3SESSION 3

SEGMENT SEARCH ARGUMENTSEGMENT SEARCH ARGUMENT

Page 31: IMS DB PRESENTATION ver 1.1

31

THE SSA IS AN AREA IN WORKING STORAGE USED TO IDENTIFY THE

SEGMENT TO WHICH ACCESS IS REQUIRED

IT IS AN OPTIONAL DL/I CALL PARAMETER THAT QUALIFIES A CALL BY

SPECIFIYING A PARTICULAR SEGMENT TYPE OR OCCURRENCE

WHEN SPECIFIED IN A DL/I CALL

THE SSA ALWAYS FOLLOWS I/O PARAMETER

THERE MAY BE 1 TO 15 SSAs IN A CALL STATEMENT

THE SSAs MUST APPEAR IN HIERARCHICAL ORDER BY SEGMENT TYPE

THE SSA CONTAINS INFORMATION TO OBTAIN THE REQUIRED SEGMENT. THE INFORMATION COULD BY SEGMENT NAME OR SEGMENT NAME & SEGMENT KEY OR SEGMENT NAME & SEARCH FIELD

SEGMENT SEARCH ARGUMENTSEGMENT SEARCH ARGUMENT

Page 32: IMS DB PRESENTATION ver 1.1

32

WHAT IS THE SIGNIFICANCE OF MAX 15 SSA?

SEGMENT SEARCH ARGUMENTSEGMENT SEARCH ARGUMENT Continued ...Continued ...

Page 33: IMS DB PRESENTATION ver 1.1

33

UNQUALIFIEDUNQUALIFIED

SEARCHES FOR A SPECIFIC SEGMENT TYPE

QUALIFIEDQUALIFIED

SEARCHES FOR A SPECIFIC SEGMENT OCCURRENCE

MORE EFFICIENT THAN UNQUALIFIED SSA

TYPESTYPES OFOF SSASSSAS

SEGMENT SEARCH ARGUMENTSEGMENT SEARCH ARGUMENT Continued ...Continued ...

Page 34: IMS DB PRESENTATION ver 1.1

34

WORKING-STORAGE-SECTIONWORKING-STORAGE-SECTION.

…………..

01 HISTORY-SSA.

05 SEGMENT-NAME PIC X(8) VALUE ‘HISTORY ‘.

05 FILLER PIC X(1) VALUE SPACE.

Blank in 9th position or ‘*’ in 9th position ‘-‘ in position 10 and a blank in position 11

UNQUALIFIEDUNQUALIFIED SSASSA

H I S T O R Y *

H I S T O R Y

-

SEGMENT SEARCH ARGUMENTSEGMENT SEARCH ARGUMENT Continued ...Continued ...

Page 35: IMS DB PRESENTATION ver 1.1

35

WORKING-STORAGE-SECTIONWORKING-STORAGE-SECTION.…………..01 SSA-EMPLOYEE. 03 SEGMENT-NAME PIC X(8) VALUE ‘EMPLOYEE’ 03 COMMAND-CODE PIC X(2) VALUE ‘*-’. 03 BEGIN-QUALIFY PIC X(1) VALUE ‘(‘. 03 KEY-NAME PIC X(8) VALUE ‘EMPKEY ‘. 03 OPERATOR PIC X(2) VALUE ‘ =‘. 03 KEY-VALUE PIC X(12) . 03 END-QUALIFY PIC X(1) VALUE ‘)‘.PROCEDURE DIVISION.…..MOVE ‘123456789000’ TO KEY-VALUE.CALL ‘CBLTDLI’ USING FUNC-CODE, PCB-MASK-1, IO-AREA, SSA-EMPLOYEE.

QUALIFIEDQUALIFIED SSASSA

SEGMENT SEARCH ARGUMENTSEGMENT SEARCH ARGUMENT Continued ...Continued ...

Page 36: IMS DB PRESENTATION ver 1.1

36

OPERATORS USED IN QUALIFIED SSA

OPERATOR SYMBOLS

Equal to ‘EQ’, ‘= ‘, ‘ =‘

Not Equal to ‘NE’, ‘¬=‘, ‘=¬’

Less than ‘LT’, ‘< ‘, ‘ <‘

Less than or Equal to ‘LE’, ‘<=‘, ‘=<‘

Greater than ‘GT’, ‘> ‘, ‘ >’

Greater than or Equal to ‘GE’, ‘>=‘, ‘=>’

SEGMENT SEARCH ARGUMENTSEGMENT SEARCH ARGUMENT Continued ...Continued ...

Page 37: IMS DB PRESENTATION ver 1.1

37

COMMAND CODES INCREASE THE FUNCTIONALITY OF IMS CALLS

COMMAND CODES ARE DESIGNATED BY AN ASTERISK ‘*’ FOLLOWED BY CHARACTERS

NOTE: Detailed description of Command codes will be covered in Session “COMMAND CODES”

COMMAND CODESCOMMAND CODES

SEGMENT SEARCH ARGUMENTSEGMENT SEARCH ARGUMENT Continued ...Continued ...

Page 38: IMS DB PRESENTATION ver 1.1

38

SESSION 4SESSION 4

COBOL BASICS FOR IMSCOBOL BASICS FOR IMS

Page 39: IMS DB PRESENTATION ver 1.1

39

IN A COBOL-IMS PROGRAM. THE FIRST SECTION TO CONTAIN ANY IMS RELATED

COMPONENTS IS THE WORKING STORAGE SECTION

IDENTIFICATION DIVISION

ENVIRONMENT DIVISION

DATA DIVISIONFILE SECTIONWORKING STORAGE SECTIONLINKAGE SECTION

PROCEDURE DIVISION

FUNCTION CODES

I/O AREA

SEGMENT SEARCH ARGUMENTS

PCB MASKS

COBOL BASICS FOR IMSCOBOL BASICS FOR IMS

DATADATA DIVISIONDIVISION

Page 40: IMS DB PRESENTATION ver 1.1

40

FUNCTIONFUNCTION CODESCODES

A FUNCTION CODE IS A 4 BYTE CODE TO TELL DL/I WHAT KIND OF CALL THE PROGRAM IS MAKING

SOME VALID FUNCTION CODES ARE

GU - GET UNIQUEGN - GET NEXTGNP - GET NEXT WITHIN PARENTGHU - GET HOLD UNIQUEGHN - GET HOLD NEXTGHNP - GET HOLD NEXT WITHIN PARENTDLET - DELETEREPL - REPLACEISRT - INSERTXRST - EXTENDED RESTARTCHKP - CHECKPOINT

COBOL BASICS FOR IMSCOBOL BASICS FOR IMS Continued ...Continued ...

Page 41: IMS DB PRESENTATION ver 1.1

41

IS A STANDARD RECORD DESCRIPTION IN THE WORKING STORAGE SECTION

WHICH HOLDS DATABASE SEGMENTS FOR MANIPULATION

IS USED BY DL/I TO PASS SEGMENTS TO THE PROGRAM

CAN BE USED BY PROGRAMMER TO ADD OR REPLACE SEGMENT DATA

MUST BE EQUAL TO OR GREATER THAN THE LENGTH OF THE LONGEST

SEGMENT TO BE USED BY THE PROGRAM

IN CASES WHERE MULTIPLE SEGMENTS OF A HIERARCHY ARE UPDATED OR

RETRIEVED, THE I/O AREA MUST BE LARGE ENOUGH TO HOLD THE LARGEST

CONCATENATION OF THESE SEGMENTS

INPUT/OUTPUTINPUT/OUTPUT AREAAREA

COBOL BASICS FOR IMSCOBOL BASICS FOR IMS Continued ...Continued ...

Page 42: IMS DB PRESENTATION ver 1.1

42

USED IN LINKAGE SECTION

LINKAGELINKAGE SECTIONSECTION

01 DB-PCB-1.

03 DBD-NAME PIC X(8).

03 SEG-LEVEL PIC X(2).

03 STATUS-CODE PIC X(2).

03 PROC-OPTIONS PIC X(4).

03 IMS-RESERVED PIC S9(5) COMP.

03 SEG-NAME PIC X(8).

03 KEY-LEN PIC S9(5) COMP.

03 NUM-SENS-SEGS PIC S9(5) COMP.

03 KEY-FEEDBACK PIC X(??). <= length depends on segment key

THETHE PCBPCB MASKMASK

COBOL BASICS FOR IMSCOBOL BASICS FOR IMS Continued ...Continued ...

Page 43: IMS DB PRESENTATION ver 1.1

43

THERE SHOULD BE ATLEAST ONE PCB FOR EACH DATABASE USED

STATUS CODE OF PCB MASK EXPLAINS WHETHER A CALL IS SUCCESSFUL OR NOT

THE SEQUENCE IN WHICH PCB MASKS ARE DEFINED IN LINKAGE SECTION NEED NOT BE SAME AS THAT IN PSBGEN MACRO

THETHE PCBPCB MASKMASK

COBOL BASICS FOR IMSCOBOL BASICS FOR IMS Continued ...Continued ...

Page 44: IMS DB PRESENTATION ver 1.1

44

PROCEDUREPROCEDURE DIVISIONDIVISION.

ENTRY ‘DLITCBL’ USING DB-PCB-1, DB-PCB-2. <= Sequence should match that of

:::::::::::: PSB Macro

::::::::::::

CALL ‘CBLTDLI’ USING WS-PARM-COUNT, <= Optional

WS-FUNCTION-CODE,

DB-PCB-MASK,

IO-AREA,

SSA-1, SSA-2, SSA-3, ….

::::::::::

::::::::::

GOBACK.

PROCEDUREPROCEDURE DIVISIONDIVISION

COBOL BASICS FOR IMSCOBOL BASICS FOR IMS Continued ...Continued ...

Page 45: IMS DB PRESENTATION ver 1.1

45

COBOL BASICS FOR IMSCOBOL BASICS FOR IMS

RUN JCL

DL/I

APPLICATIONPROGRAM

IMSDATABASE

PROGRAM NAME

PSB NAME

CB

LT

DL

I

DL

ITC

BL

GOBACK

RUN JCL EXECUTES THE BATCH PROCESSOR DFSRRC00 AND PASSES THE APPLICATION PROGRAM NAME AND PSBNAME AS PARAMETERS

ENTRY DLITCBL PASSES THE PCB ADDRESS TO THE PROGRAM

CBLTDLI ACCEPTS PARAMETERS LIKE FUNCTION CODE, I/O AREA AND SSA TO DO THE NECESSARY DATABASE OPERATIONS AND RETURNS DATA AND STATUS CODES DESCRIBING THE SUCCESS OF THE CALL

GOBACK IN THE COBOL PROGRAM TAKES THE CONTROL BACKTO DL/I WHICH PERFORMS IMS FILES CLOSING AND TERMINATES THE BATCH STEP. “STOP RUN” SHOULD NEVER BE USED AS IT WILL NOT FREE RESOURCES

Continued ...Continued ...

Page 46: IMS DB PRESENTATION ver 1.1

46

SESSION 5SESSION 5

DL/I CALLSDL/I CALLS

Page 47: IMS DB PRESENTATION ver 1.1

47

ONE OF THE FOLLOWING FUNCTIONS WILL BE USED IN A RETRIEVAL DL/I CALL

GU - GET UNIQUE

GN - GET NEXT

GNP - GET NEXT WITHIN PARENT

WHEN A RETRIEVAL IS DONE WITH AN INTENT TO UPDATE OR DELETE RECORDS, THE ABOVE FUNCTION CODES WILL BE PREFIXED WITH ‘HOLD’

GHU - GET HOLD UNIQUE

GHN - GET HOLD NEXT

GHNP - GET HOLD NEXT WITHIN PARENT

DL/I RETRIEVAL CALLSDL/I RETRIEVAL CALLS

DL/I CALLSDL/I CALLS

Page 48: IMS DB PRESENTATION ver 1.1

48

GET UNIQUEGET UNIQUE

CALL ‘CBLTDLI’ USING ‘GU ‘, PCB-MASK,

SEGMENT-IO-AREASEGMENTA*-(AKEY=1)SEGMENTB*-(BKEY=2)SEGMENTD*-(DKEY=6)

AFTER THE CALL SEGMENTD WITH DKEY=6 WILL BE IN SEGMENT-IO-AREA

1

6

5

117

104

2 8

3 9

AKEY

BKEY

EKEY

CKEY DKEY FKEY

EXERCISEEXERCISE: WRITE A GU TO RETRIEVE FKEY=10

DL/I CALLSDL/I CALLS Continued ...Continued ...

Page 49: IMS DB PRESENTATION ver 1.1

49

WHAT WILL BE THE OUTPUT OF A GU CALL WITH NO SSA?

DL/I CALLSDL/I CALLS Continued ...Continued ...

Page 50: IMS DB PRESENTATION ver 1.1

50

GETGET NEXTNEXT

RETREIVALRETREIVAL SEQUENCESEQUENCE

TOP TO BOTTOM

FRONT TO BACK

LEFT TO RIGHT

1

6

5

117

104

2 8

3 9

AKEY

BKEY

EKEY

CKEYDKEY FKEY

GK

GA

DL/I CALLSDL/I CALLS Continued ...Continued ...

Page 51: IMS DB PRESENTATION ver 1.1

51

CALL ‘CBLTDLI’ USING ‘GN ‘, PCB-MASK,SEG-IO-AREA,SEGMENTA*-(AKEY=1)SEGMENTE*-(EKEY=8)

AFTER THE CALL SEGMENTE WITH EKEY=8 WILL BE IN PROGRAM I/O AREA

1

6

5

117

104

2 8

3 9

AKEY

BKEY

EKEY

CKEYDKEY

FKEY

EXERCISEEXERCISE: WHAT WILL BE THE RESULTS OF FOUR CONSEQUETIVE GNs AFTER EKEY=8 IS RETRIEVED

DL/I CALLSDL/I CALLS Continued ...Continued ...

Page 52: IMS DB PRESENTATION ver 1.1

52

CALL ‘CBLTDLI’ USING ‘GN ’, LS-PCB-MASK, SEGMENT-IO-AREA,

SEGMENTA*-(AKEY=1)

SEGMENTB*-(BKEY=2)

CALL ‘CBLTDLI’ USING ‘GNP ‘, LS-PCB-MASK, SEGMENT-IO-AREA

AFTER THE CALL SEGMENTC WITH CKEY=3 WILL BE IN SEGMENT-IO-AREA

GET NEXT WITHIN PARENTGET NEXT WITHIN PARENT

1

6

5

117

104

2 8

3 9

AKEY

BKEY

EKEY

CKEYDKEY

FKEY

DL/I CALLSDL/I CALLS Continued ...Continued ...

Page 53: IMS DB PRESENTATION ver 1.1

53

WHAT WILL BE THE OUTPUT IF GNP IS DONE 4 MORE TIMES IN

PREVIOUS EXAMPLE?

DL/I CALLSDL/I CALLS Continued ...Continued ...

Page 54: IMS DB PRESENTATION ver 1.1

54

CALL ‘CBLTDLI’ USING ‘GN ‘, LS-PCB-MASK, WS-SEG-IO-AREA,

SEGMENTA*D(AKEY=1)

SEGMENTF*-(FKEY=10)

WHAT WILL BE THE RESULT AFTER SUCCESSFUL COMPLETION OF THE ABOVE CALL?

PATH CALLS EXERCISEPATH CALLS EXERCISE

1

6

5

117

104

2 8

3 9

BKEY

EKEY

CKEYDKEY

FKEY

DL/I CALLSDL/I CALLS Continued ...Continued ...

Page 55: IMS DB PRESENTATION ver 1.1

55

FUNCTIONS IDENTICAL TO GU/GN/GNP

INDICATES THE REQUESTED SEGMENT(S) MAY BE DELETED OR REPLACED

FORCING IMS TO PUT A LOCK ON THESE SEGMENTS WHICH WILL BE

RELEASED ONLY AFTER ANOTHER CALL BY SAME PCB

THIS ENSURES DATA INTEGRITY

GET HOLD CALLS (GHU/GHN/GHNP)GET HOLD CALLS (GHU/GHN/GHNP)

Continued ...Continued ...DL/I CALLSDL/I CALLS

Page 56: IMS DB PRESENTATION ver 1.1

56

MUST HAVE BEEN OBTAINED WITH A GET HOLD CALL (GHU, GHN, GHNP)

NO INTERVENING CALLS BETWEEN GET HOLD CALL AND REPLACE/DELETE CALLS

MULTIPLE REPLACE ALLOWED AFTER GET HOLD

DELETE/REPLACE CALLSDELETE/REPLACE CALLS

Continued ...Continued ...DL/I CALLSDL/I CALLS

Page 57: IMS DB PRESENTATION ver 1.1

57

CALL ‘CBLTDLI’ USING ‘GHU ‘, LS-PCB-MASK, WS-SEGMENT-IO-AREA

SEGMENTA*-(AKEY=1)

SEGMENTB*-(BKEY=2)

CALL ‘CBLTDLI’ USING ‘DLET’, LS-PCB-MASK

DELETE CALLDELETE CALL

WHAT WILL BE THE RESULT IF THE FIRST GHU CALL IS SEGMENTA*D(AKEY=1)?

Continued ...Continued ...DL/I CALLSDL/I CALLS

1

6

5

117

104

2 8

3 9

BKEY

EKEY

CKEYDKEY

Page 58: IMS DB PRESENTATION ver 1.1

58

UPDATE CONTENTS OF A SEGMENT

KEY FIELD MAY NOT BE ALTERED

SSAs ARE NOT USED NORMALLY

COMMAND CODES

D - TO REPLACE PATH OF SEGMENTS

N - TO EXCLUDE SEGMENTS FROM PATH

STATUS CODES

DA - TRYING TO CHANGE KEY

DJ - NO PRECEDING GET HOLD CALL

RX - REPLACE RULE VIOLATION

REPLACE (REPL)REPLACE (REPL)

Continued ...Continued ...DL/I CALLSDL/I CALLS

Page 59: IMS DB PRESENTATION ver 1.1

59

CALL ‘CBLTDLI’ USING ‘GHU ‘, LS-PCB-MASK, WS-IO-AREA,

SEGMENTA*-(AKEY=1)

SEGMENTB*-(BKEY=2)

SEGMENTC*-(CKEY=3)

Change contents of WS-IO-AREA

CALL ‘CBLTDLI USING ‘REPL’, LS-PCB-MASK, WS-IO-AREA

WILL RESULT IN UPDATE OF SEGMENTC

Continued ...Continued ...DL/I CALLSDL/I CALLS

1

6

5

117

104

2 8

3 9

BKEY

EKEY

CKEYDKEY

FKEY

Page 60: IMS DB PRESENTATION ver 1.1

60

TWO MODES OF INSERTTWO MODES OF INSERT

LOAD MODE - FOR INITIAL LOADING OF DATABASE

UPDATE MODE - ADD TO EXISTING DATABASE

LOAD MODELOAD MODE:

FOR LOAD MODE PROCOPT = L or LS MUST BE SPECIFIED IN PSB

PROCOPT=L LOADS DATABASE BUT NOT NECESSARILY IN SEQUENTIAL ORDER

INSERT (ISRT)INSERT (ISRT)

Continued ...Continued ...DL/I CALLSDL/I CALLS

Page 61: IMS DB PRESENTATION ver 1.1

61

UPDATE MODEUPDATE MODE:

FOR UPDATE MODE PROCOPT=I or IS MUST BE SPECIFIED IN PSB

PROCOPT=I INSERTS SEGMENTS IN SEQ OR RANDOM ORDER

PROCOPT=IS ADDS NEW SEGMENTS ONLY IN ASCENDING ORDER

COMMAND CODESCOMMAND CODES

“F” OR “L” - OVERRIDES INSERT RULE

“D” - INSERT PATH OF SEGMENTS

Continued ...Continued ...DL/I CALLSDL/I CALLS

INSERT (ISRT)INSERT (ISRT)

Page 62: IMS DB PRESENTATION ver 1.1

62

99

MOVE DATA FOR SEGMENTE INTO WS-SEGMENT-IO-AREA WITH EKEY=99

CALL ‘CBLTDLI’ USING ‘ISRT’, LS-PCB-MASK, WS-SEGMENT-IO-AREA,

SEGMENTA*-(AKEY=1)

SEGMENTE

AFTER THE CALL SEGMENTE WITH EKEY=99 IS INSERTED

Continued ...Continued ...DL/I CALLSDL/I CALLS

1

6

5

117

104

2 8

3 9

BKEY

EKEY

CKEYDKEY

FKEY

Page 63: IMS DB PRESENTATION ver 1.1

63

SOME COMMON STATUS CODESSOME COMMON STATUS CODES

DL/I CALLSDL/I CALLS Continued ...Continued ...

STATUS CODE DESCRIPTION

SPACES SUCCESSFUL CALL

CALL TYPES

ALL CALLS

AC CALL HAS SSA WITH A HIERARCHICAL ERROR ALL GET CALLSISRT

AI ERROR WHILE OPENING DATABASE. COMMON CAUSE IS LOADING A DATABASE WHICH IS NOT EMPTY OR DO OTHER THAN LOAD PROCESSING ON EMPTY DATABASE

ALL CALLS

AJ CALL SPECIFIES AN INVALID SSA ALL CALLS

AK FIELD NAMED IN A QUALIFIED SSA IS NOT CORRECT ALL GET CALLSISRT

DA SEQUENCE FIELD IS CHANGED REPL

DJ CALL IS NOT PRECEDED BY A SUCCESSFUL GET HOLD CALL

DLETREPL

GA A HIGHER LEVEL SEGMENT IS RETRIEVED IN SEQUENTIAL PROCESSING

GN, GNP

Page 64: IMS DB PRESENTATION ver 1.1

64

SOME COMMON STATUS CODESSOME COMMON STATUS CODES

DL/I CALLSDL/I CALLS Continued ...Continued ...

STATUS CODE DESCRIPTION

GE SPECIFIED SEGMENT NOT FOUND

CALL TYPES

ALL GET CALLSISRT

GK A SEGMENT OF DIFFERENT TYPE, BUT AT THE SAME LEVEL IS RETRIEVED DURING SEQUENTIAL PROCESSING

GN, GNP

GP PROPER PARENTAGE IS NOT IN EFFECT GNP

II DUPLICATE INSERT ISRT

GB END OF DATA BASE WAS REACHED DURING SEQUENTIAL RETRIEVAL

GN

Page 65: IMS DB PRESENTATION ver 1.1

65

SESSION 6SESSION 6

COMMAND CODESCOMMAND CODES

Page 66: IMS DB PRESENTATION ver 1.1

66

ONE OR MORE COMMAND CODES CAN BE USED IN SSA

EACH COMMAND CODE IS REPRESENTED BY A SINGLE CHARACTER

FOLLOWING AN ASTERISK AFTER SEGMENT NAME

COMMAND CODESCOMMAND CODES

H I S T O R Y * -

DL/I CONSIDERS ALL CHARACTERS FOLLOWING ‘*’ TO BE COMMAND

CODES TILL IT ENCOUNTERS A BLANK OR ‘(‘

RESULTS IN MINIMIZING THE NUMBER OF CALLS AND HENCE IMPROVE

PROGRAM EFFICIENCY

Page 67: IMS DB PRESENTATION ver 1.1

67

SOME COMMAND CODESSOME COMMAND CODES

COMMAND CODESCOMMAND CODES

COMMAND CODE DESCRIPTION

D RETRIEVE A PATH

F FIRST OCCURRENCE OF SEGMENT TYPE

L LAST OCCURRENCE OF SEGMENT TYPE

U MAINTAIN CURRENT POSITION AT THIS LEVEL

V MAINTAIN CURRENT POSITION AT THIS AND HIGHER LEVELS

N DO NOT REPLACE THIS SEGMENT

C USE A CONCATENATED KEY

P ESTABLISH PARENTAGE AT THIS LEVEL

- NULL/IGNORE

Continued ...Continued ...

Page 68: IMS DB PRESENTATION ver 1.1

68

REQUESTS DL/I TO USE PATH CALLS

ALLOWS ENTIRE PATH IN SEGMENT HIERARCHY TO BE RETRIEVED IN ONE

SINGLE CALL

FOR PROGRAMS USING PATH CALLS PROCOPT IN PSB SHOULD HAVE “P” AS

ONE OF THE VALUES

DL/I DOES NOT RETRIEVE SEGMENTS IF THE CORRESPONDING SSA DOES

NOT HAVE PATH COMMAND CODE “D”

COMMANDCOMMAND CODE “D”CODE “D”

COMMAND CODESCOMMAND CODES Continued ...Continued ...

Page 69: IMS DB PRESENTATION ver 1.1

69

SEGMENT IN THE LAST SSA WILL ALWAYS BE RETRIEVED EVEN IF SSA DOES

NOT HAVE COMMAND CODE “D”

FOR ISRT CALLS COMMAND CODE “D” DESIGNATES THE FIRST SEGMENT TO

BE INSERTED

FOR ISRT CALLS SSAS FOR LOWER LEVEL SEGMENTS NEED NOT HAVE “D”

COMMAND CODE, “D” COMMAND CODE IS PROPAGATED TO ALL SPECIFIED

SEGMENTS AUTOMATICALLY

I/O AREA USED SHOULD BE BIG ENOUGH TO ACCOMMODATE ALL SEGMENTS

IN PATH

COMMANDCOMMAND CODE “D”CODE “D”

COMMAND CODESCOMMAND CODES Continued ...Continued ...

Page 70: IMS DB PRESENTATION ver 1.1

70

CALL ‘CBLTDLI’ USING ‘GN ‘, LS-PCB-MASK, WS-SEG-IO-AREA,SEGMENTA*D(AKEY=1)

SEGMENTB*D(BKEY=2)

SEGMENTD*-(DKEY=5)

AFTER THE CALL SEGMENTS #1, #2 & #5 WILL BE RETURNED IN I/O AREA

PATH CALLS EXAMPLEPATH CALLS EXAMPLE

1

6

5

117

104

2 8

3 9

AKEY

BKEY

EKEY

CKEYDKEY

FKEY

Continued ...Continued ...COMMAND CODESCOMMAND CODES

Page 71: IMS DB PRESENTATION ver 1.1

71

CALL PROCESSES FIRST OCCURRENCE OF THE SEGMENT TYPE

•EXAMPLE:

SEGMENT 2 CAN BE RETRIEVED AFTER SEGMENT 4 BY USING

CALL ‘CBLTDLI’ USING ‘GNP ‘ LS-PCB-MASK, WS-SEG-IO-AREA,

SEGMENTB*F

COMMAND CODE “F”COMMAND CODE “F”

COMMAND CODESCOMMAND CODES

4

3

1

2

SEGMENTA

SEGMENTBSEGMENTC

Continued ...Continued ...

Page 72: IMS DB PRESENTATION ver 1.1

72

COMMAND CODE “L”COMMAND CODE “L”

COMMAND CODESCOMMAND CODES

CALL PROCESSES LAST OCCURRENCE OF THE SEGMENT TYPE

•EXAMPLE:

SEGMENT 4 CAN BE RETRIEVED AFTER SEGMENT 2 BY USING

CALL ‘CBLTDLI’ USING ‘GNP ‘ LS-PCB-MASK, WS-SEG-IO-AREA,

SEGMENTC*L

4

3

1

2

SEGMENTA

SEGMENTBSEGMENTC

Continued ...Continued ...

Page 73: IMS DB PRESENTATION ver 1.1

73

COMMAND CODE “N”COMMAND CODE “N”

COMMAND CODESCOMMAND CODES

USED IN REPL CALLS FOLLOWING PATH CALLS

IF ANY SEGMENT RETRIEVED DURING PATH CALL NEED NOT BE REPLACED

COMMAND CODE “N” IS USED IN SSA OF THAT SEGMENT

Continued ...Continued ...

Page 74: IMS DB PRESENTATION ver 1.1

74

COMMAND CODESCOMMAND CODES

COMMAND CODE “P”COMMAND CODE “P”

IS USED TO SET PARENTAGE TO A SPECIFIC SEGMENT IN THE HIERARCHY

USED IN SSAS

EXAMPLE:

CALL ‘CBLTDLI’ USING ‘GU ‘ LS-PCB-MASK, WS-IO-AREA SEGMENTA*PSEGMENTC

WILL RETRIEVE SEGMENTC TO I/O AREA BUT PARENTAGE WILL BE SET TO SEGMENTA

Continued ...Continued ...

3

1

2

SEGMENTA

SEGMENTBSEGMENTC

Page 75: IMS DB PRESENTATION ver 1.1

75

SESSION 7SESSION 7

DL/I CALL EXERCISEDL/I CALL EXERCISE

Page 76: IMS DB PRESENTATION ver 1.1

76

COURSE# TITLE DESCRIPN

COURSE# TITLE DATE LOCATION FORMAT

EMPNUM NAME GRADEEMPNUM NAME

COURSE

PREREQ OFFERING

TEACHER STUDENT

Continued ...Continued ...DL/I CALL EXERCISEDL/I CALL EXERCISE

Page 77: IMS DB PRESENTATION ver 1.1

77

GIVE SYNTAX OF DL/I CALLS FOR THE FOLLOWING SCENARIOS

1. GET THE FIRST OFFERING OCCURRENCE WHERE THE LOCATION IS “CHENNAI”

2. GET ALL STUDENT OCCURENCES FOR THE OFFERING FOUND IN 1

3. GET ONLY STUDENT OCCURENCES WITH GRADE OF “A”

4. SEQUENTIAL READ OF ALL SEGMENTS IN THE DATABASE

Continued ...Continued ...DL/I CALL EXERCISEDL/I CALL EXERCISE

Page 78: IMS DB PRESENTATION ver 1.1

78

5. GET ALL STUDENTS WITH GRADE OF “A” IN COURSE “IMS”

6. ADD A STUDENT OCCURRENCE FOR THE COURSE “IMS” OFFERED ON DATE “3/26/02”

7. DELETE THE OFFERING OF COURSE “XYZ” ON 26 March, 2002

8. CHANGE THE LOCATION OF COURSE “IMS” OFFERED ON “3/26/02” TO “MUMBAI”

Continued ...Continued ...DL/I CALL EXERCISEDL/I CALL EXERCISE

Page 79: IMS DB PRESENTATION ver 1.1

79

9. GET THE FIRST OFFERING OCCURRENCE WHERE THE LOCATION IS “CHENNAI”, TOGETHER WITH ITS PARENT COURSE OCCURRENCE

10. INSERT A NEW COURSE “ABC” TOGETHER WITH AN OFFERING AT CHENNAI ON 26 March 2002, FOR WHICH TEACHER IS EMPLOYEE NUMBER 12345

11. GET THE TEACHER OF THE FIRST OFFERING ATTENDED BY STUDENT 222222

Continued ...Continued ...DL/I CALL EXERCISEDL/I CALL EXERCISE

Page 80: IMS DB PRESENTATION ver 1.1

80

SESSION 8

DATABASE ACCESS METHODS

Page 81: IMS DB PRESENTATION ver 1.1

81

DL/I PROVIDES TWO BASIC DATABASE ORGANIZATIONS

HIERARCHICAL SEQUENTIALHIERARCHICAL SEQUENTIAL (HS)

HIERARCHICAL DIRECTHIERARCHICAL DIRECT (HD)

IMS DATABASE ACCESS METHODSIMS DATABASE ACCESS METHODS

Database OrganizationDatabase Organization Access MethodsAccess Methods

HS HSAM - Hierarchical Sequential Access Method

HISAM - Hierarchical Indexed Sequential Access Method

SHSAM - Simple HSAM

SHISAM - Simple HISAM

HD HDAM - Hierarchical Direct Access Method

HIDAM - Hierarchical Indexed Direct Access Method

DL/I PROVIDES GSAM(Generalized Sequential Access Method) TO ACCESS NORMAL SEQUENTIAL DATASETS

Page 82: IMS DB PRESENTATION ver 1.1

82

HSAM / SHSAMHSAM / SHSAM

SEGMENTS OF A DATABASE RECORD ARE STORED IN SEQUENTIAL ORDER

VERY EFFICIENT FOR SEQUENTIAL PROCESSING

NEW SEGMENTS CAN NOT BE INSERTED. DATABASE HAS TO BE UNLOADED AND LOADED AGAIN.

ONCE DATABASE IS LOADED ONLY GET OPERATIONS ARE VALID (GU, GN , GNP, NOT “GET HOLD”)

ISRT CALL IS VALID ONLY WHILE LOADING NEW DATABASE

REPL AND DLET ARE NOT ALLOWED

SHSAM IS A SUBSET OF HSAM AND CONTAINS ONLY ROOT SEGMENTS

ONLY HSAM/SHSAM DATABASES CAN BE STORED ON A TAPE

SEGMENTS CAN NOT SPAN OVER RECORDS

Continued ...Continued ...IMS DATABASE ACCESS METHODSIMS DATABASE ACCESS METHODS

Page 83: IMS DB PRESENTATION ver 1.1

83

HSAM SEGMENT STORAGE IN DATABASEHSAM SEGMENT STORAGE IN DATABASE

‘‘00’ -’FF’00’ -’FF’ ‘‘00’00’ SEGMENT DATA SEGMENT DATA

Segment Identifier

Delete byte

HSAM DBDGENHSAM DBDGEN

DBD NAME=EXHSAM,ACCESS=HSAM

DATASET DD1=EXHSAMI,DD2=EXHSAMO,DEVICE=3380,RECORD=(512,512)

SEGM FIELD=…………….

Continued ...Continued ...IMS DATABASE ACCESS METHODSIMS DATABASE ACCESS METHODS

Page 84: IMS DB PRESENTATION ver 1.1

84

HISAM / SHISAMHISAM / SHISAM

SIMILAR TO HSAM AND IN ADDITION INDEX IS ADDED FOR DIRECT ACCESS TO ROOT SEGMENT

VERY EFFICIENT FOR SEQUENTIAL AND FAIRLY GOOD FOR RANDOM PROCESSING

HISAM DATABASE REQUIRES TWO SEPARATE DATASETS

PRIMARY DATASET

OVERFLOW DATASET

OVERFLOW DATASET IS NOT REQUIRED FOR SHISAM

SEGMENTS CAN BE DELETED

PREFERABLE IF DATABASE HAS ROOT SEGMENTS ONLY

Continued ...Continued ...IMS DATABASE ACCESS METHODSIMS DATABASE ACCESS METHODS

Page 85: IMS DB PRESENTATION ver 1.1

85

HISAM SEGMENT STORAGE IN DATABASEHISAM SEGMENT STORAGE IN DATABASE

‘‘00’ -’FF’00’ -’FF’ ‘‘00’00’ SEGMENT DATA SEGMENT DATA

Segment Identifier

Delete byte

HISAM DBDGENHISAM DBDGEN

DBD NAME=EXHISAM,ACCESS=(HISAM,VSAM)

DATASET DD1=HISAMPR,OVFLW=HISAMOV,DEVICE=3380,RECORD=(512,512)

SEGM FIELD=…………….

RBARBA

4 Byte RBA

Continued ...Continued ...IMS DATABASE ACCESS METHODSIMS DATABASE ACCESS METHODS

Page 86: IMS DB PRESENTATION ver 1.1

86

HDAMHDAM

DIRECT ADDRESS POINTERS TO RELATED SEGMENTS ARE STORED ALONG WITH SEGMENTS

VERY EFFICIENT FOR RANDOM PROCESSING BUT NOT FOR SEQUENTIAL PROCESSING

ROOT SEGMENTS ARE STORED ACCORDING TO SOME RANDOMIZING SCHEME

‘‘00’ -’FF’00’ -’FF’ ‘‘00’00’ SEGMENT DATA SEGMENT DATA

Segment Identifier

Delete byte

POINTERSPOINTERS

HDAM SEGMENT STORAGE IN DATABASEHDAM SEGMENT STORAGE IN DATABASE

Continued ...Continued ...IMS DATABASE ACCESS METHODSIMS DATABASE ACCESS METHODS

Page 87: IMS DB PRESENTATION ver 1.1

87

HDAM DBDGENHDAM DBDGEN

DBD NAME=EXHDAM,ACCESS=(HDAM,VSAM),RMNAME=(DFSHDC10,,10)

DATASET DD1=EXHDAM,DEVICE=3380

SEGM NAME=SEG1,BYTES=48,POINTER=TWIN

FIELD …………….

SEGM NAME=SEG2,PARENT=((SEG1,SNGL)),BYTES=32,POINTER=TWIN

…….

Continued ...Continued ...IMS DATABASE ACCESS METHODSIMS DATABASE ACCESS METHODS

Page 88: IMS DB PRESENTATION ver 1.1

88

HIDAMHIDAM

SIMILAR TO HDAM AND IN ADDITION INDEX TO ROOT SEGMENTS WILL BE STORED

EFFICIENT FOR BOTH SEQUENTIAL AND RANDOM PROCESSING

MOST COMMON TYPE OF DATABASE ORGANIZATION

HIDAM DBDGENHIDAM DBDGEN

DBD NAME=EXHIDAM,ACCESS=(HIDAM,VSAM),RMNAME=(DFSHDC10,,10)

DATASET DD1=EXHIDAM,DEVICE=3380

SEGM NAME=SEG1,BYTES=48,POINTER=TWIN

FIELD …………….

SEGM NAME=SEG2,PARENT=((SEG1,SNGL)),BYTES=32,POINTER=TWIN

…….

Continued ...Continued ...IMS DATABASE ACCESS METHODSIMS DATABASE ACCESS METHODS

Page 89: IMS DB PRESENTATION ver 1.1

89

GSAMGSAM

COMPATIBLE WITH MVS DATASETS

NO HIERARCHY

CAN HAVE FIXED OR VARIABLE LENGTH RECORDS

NO DELETE OR REPLACE

INSERT ONLY AT THE END OF DATASET

GETS RECORDS SEQUENTIALLY

USUALLY USED WHEN CHECK/POINT RESTART IS USED

Continued ...Continued ...IMS DATABASE ACCESS METHODSIMS DATABASE ACCESS METHODS

Page 90: IMS DB PRESENTATION ver 1.1

90

SESSION 9

MULTIPLE PROCESSING

Page 91: IMS DB PRESENTATION ver 1.1

91

MULTIPLE PROCESSING MEANS A PROGRAM CAN HAVE MORE THAN ONE POSITION IN A SINGLE DATABASE AT THE SAME TIME

ESTABLISHED BY

MULTIPLE PCBS

MULTIPLE POSITIONING

MULTIPLE PCBS CAN BE DEFINED AND USED FOR A SINGLE DATABASE TO ESTABLISH MULTIPLE POSITIONING HAS THE DRAWBACK OF IMPOSING OVERHEAD DUE TO THE EXTRA PCBS THUS CAUSING INEFFICIENCY

MULTIPLE PROCESSINGMULTIPLE PROCESSING

Page 92: IMS DB PRESENTATION ver 1.1

92

MULTIPLE POSITIONING LETS A PROGRAM MAINTAIN MORE THAN ONE POSITION WITHIN A DATABASE USING A SINGLE PCB. THE PCB HAS TO BE CODED SUITABLY IN ORDER TO ACHIEVE THIS (POS=M)

MULTIPLE POSITIONING IS MORE EFFICIENT THAN USING MULTIPLE PCBS WHEREAS MULTIPLE PCBS OFFER MORE FLEXIBILITY

Continued ...Continued ...MULTIPLE PROCESSINGMULTIPLE PROCESSING

Page 93: IMS DB PRESENTATION ver 1.1

93

EXAMPLEEXAMPLE

CALLS GN SEGMENTB, GN SEGMENTC, GN SEGMENTB, GN SEGMENTC

A1

B11 C11

B12

B13

C12

C13

A2

B21

B22

C21

C22

Continued ...Continued ...MULTIPLE PROCESSINGMULTIPLE PROCESSING

Page 94: IMS DB PRESENTATION ver 1.1

94

SESSION 10

SECONDARY INDEXING

Page 95: IMS DB PRESENTATION ver 1.1

95

ALLOWS YOU TO ACCESS DB IN A SEQUENCE OTHER THAN PRIMARY

SEQUENCE

ALLOWS YOU TO ACCESS A SEGMENT WITHOUT SUPPLYING ITS

CONCATENATED KEY

THE SECONDARY INDEX ITSELF IS A DATABASE WITH ITS OWN DBD

DEFINITION

SECONDARY INDEX DATABASE CONTAINS POINTER TO TARGET SEGMENT

AND KEY VALUE OF SOURCE SEGMENT

SECONDARY INDEXINGSECONDARY INDEXING

Page 96: IMS DB PRESENTATION ver 1.1

96

SECONDARY INDEX DATABASE IS MAINTAINED AUTOMATICALLY BY DL/I

SECONDARY DATA STRUCTURES

NEED TO USE PROCSEQ OPTION IN PCB STATEMENT OF PSBGEN MACRO

ELSE DATABASE IS ACCESSED AS PER NORMAL HIERARCHY

DATABASE TO BE INDEXED MUST BE IN HISAM, HDAM, OR HIDAM, NOT IN

HSAM

LIMITATIONS: 32 SECONDARY INDICES ON ONE SEGMENT TYPE

1000 SECONDARY INDICES FOR A DATABASE

SECONDARY INDEXINGSECONDARY INDEXING

Page 97: IMS DB PRESENTATION ver 1.1

97

Customer

Ship-to

Buyer Receivable

Payment Adjustment Line Item

Pointer Invoice No

Indexed DatabaseIndexed Database Secondary Index DBSecondary Index DB

Index

Source Segment

Index

Target Segment

Index pointer segment

Prefix | Data

Continued ...Continued ...SECONDARY INDEXINGSECONDARY INDEXING

Page 98: IMS DB PRESENTATION ver 1.1

98

Customer

Ship-to

Buyer

Receivable

Payment Adjustment Line Item

SECONDARY DATA STRUCTURESECONDARY DATA STRUCTURE

Continued ...Continued ...SECONDARY INDEXINGSECONDARY INDEXING

Page 99: IMS DB PRESENTATION ver 1.1

99

Customer

Ship-to

Buyer Receivable

Payment Adjustment Line Item

Pointer Invoice No

Indexed DatabaseIndexed Database Secondary Index DBSecondary Index DB

Index

Source Segment

Index

Target Segment

Index pointer segment

Prefix | Data

Continued ...Continued ...SECONDARY INDEXINGSECONDARY INDEXING

Page 100: IMS DB PRESENTATION ver 1.1

100

COURSE# TITLE DESCRIPN

COURSE# TITLE DATE LOCATION FORMAT

EMPNUM NAME GRADEEMPNUM NAME

COURSE

PREREQ OFFERING

TEACHER STUDENT

Continued ...Continued ...SECONDARY INDEXINGSECONDARY INDEXING

Page 101: IMS DB PRESENTATION ver 1.1

101

INDEXING THE ROOT ON A FIELD NOT THE SEQUENCE FIELD

MAINDBD MACRO

DBD NAME=EDUCPDBDSEGM NAME=COURSE,BYTES=256FIELD NAME=(COURSE#,SEQ),BYTE3,START=1FIELD NAME=TITLE,BYTES=33,START=4LCHILD NAME=(TPTR,TXDBD),POINTER=INDXXDFLD NAME=XTITLE,SRCH=TITLE

INDEX DBD MACRO

DBD NAME=TXDBD,ACCESS=INDEXSEGM NAME=TPTR,BYTES=33FIELD NAME=(TITLE,SEQ),BYTES=33,START=1LCHILD NAME=(COURSE,EDUCPDBD),INDEX=XTITLE

PSB MACRO

PCB TYPE=DB,DBDNAME=EDUCPDBD,KEYLEN=15PROCOPT=G,PROCSEQ=TXDBD

SENSEG NAME=COURSESENSEG NAME=OFFERING,PARENT=COURSESENSEG NAME=STUDENT,PARENT=OFFERING

SYNTAX: GU COURSE (XTITLE=‘DYNAMICS’)

Continued ...Continued ...SECONDARY INDEXINGSECONDARY INDEXING

Page 102: IMS DB PRESENTATION ver 1.1

102

WHAT HAPPENS IF “PROCSEQ=TXDBD” IS NOT USED?WHAT HAPPENS IF “PROCSEQ=TXDBD” IS NOT USED?

DL/I BY DEFAULT USES PRIMARY PROCESSING SEQUENCE

Continued ...Continued ...SECONDARY INDEXINGSECONDARY INDEXING

Page 103: IMS DB PRESENTATION ver 1.1

103

INDEXING THE ROOT ON A FIELD IN THE DEPENDENT

MAINDBD MACRO

DBD NAME=EDUCPDBDSEGM NAME=COURSE,BYTES=256FIELD NAME=(COURSE#,SEQ),BYTE3,START=1FIELD NAME=TITLE,BYTES=33,START=4LCHILD NAME=(LPTR,LXDBD),POINTER=INDXXDFLD NAME=XLOC,SRCH=LOCATION,SEGMENT=OFFERING

INDEX DBD MACRO

DBD NAME=LXDBD,ACCESS=INDEXSEGM NAME=LPTR,BYTES=..FIELD NAME=(LOCATION,SEQ),BYTES=….LCHILD NAME=(COURSE,EDUCPDBD),INDEX=XLOC

SYNTAX: GU COURSE (XLOC=‘CHENNAI’)

Continued ...Continued ...SECONDARY INDEXINGSECONDARY INDEXING

Page 104: IMS DB PRESENTATION ver 1.1

104

SESSION 11SESSION 11

LOGICAL RELATIONSHIPSLOGICAL RELATIONSHIPS

Page 105: IMS DB PRESENTATION ver 1.1

105

RELATIONSHIP BETWEEN TWO SEGMENTS IN TWO PHYSICALLY SEPARATE DATABASES

CAN ALSO CONNECT TWO SEGMENTS WITHIN THE SAME DATABASE

ALLOWS APPLICATION TO HAVE DIRECT ACCESS FROM A SEGMENT IN ONE PHYSICAL DATABASE TO A LOWER LEVEL SEGMENT IN ANOTHER PHYSICAL DATABASE

RESULTS IN A NEW HIERARCHY- ONE THAT DOES NOT EXIST IN PHYSICAL STORAGE BUT CAN BE PROCESSED BY APPLICATION PROGRAMS AS THOUGH IT EXISTS

THREE TYPES OF LOGICAL RELATIONSHIPSUNIDIRECTIONAL LOGICAL RELATIONSHIP BIDIRECTIONAL PHYSICALLY PAIRED LOGICAL RELATIONSHIPBIDIRECTIONAL VIRTUALLY PAIRED LOGICAL RELATIONSHIP

LOGICAL RELATIONSHIPSLOGICAL RELATIONSHIPS

Page 106: IMS DB PRESENTATION ver 1.1

106

DETAIL

ORDER

SHIPMENT

PART

STOCK

PART Database

ORDER Database

Physical Parent

of DETAIL

Logical Parent

of DETAIL

Physical Children

of ORDER

Logical Children

of PART

Logical Relationship

Continued ...Continued ...LOGICAL RELATIONSHIPSLOGICAL RELATIONSHIPS

Page 107: IMS DB PRESENTATION ver 1.1

107

DETAIL

ORDER

SHIPMENT

PART /ORDERPART /ORDER

Logical Database

ORDER/PARTORDER/PART

Logical Database

PART

STOCK

STOCK

PART

ORDERDETAIL

SHIPMENT

Continued ...Continued ...LOGICAL RELATIONSHIPSLOGICAL RELATIONSHIPS

Page 108: IMS DB PRESENTATION ver 1.1

108

SESSION 12

DB RECOVERY / RESTART

Page 109: IMS DB PRESENTATION ver 1.1

109

WHY?WHY?

TO RESTORE A DATABASE AFTER ITS PARTIAL DESTRUCTION

WHEN?WHEN?

A DLI BATCH UPDATE JOB FAILS AFTER MAKING AT LEAST ONE DATABASE UPDATE

A FAILURE HAS OCCURRED ON A PHYSICAL DASD DEVICE A FAILURE HAS OCCURRED IN A DATABASE RECOVERY UTILITY A FAILURE OF DYNAMIC BACKOUT OR BATCH BACKOUT UTILITY HAS

OCCURRED AN IMS ONLINE SYSTEM FAILURE AND EMERGENCY RESTART HAS NOT BEEN

COMPLETED

DATABASE RECOVERYDATABASE RECOVERY

Page 110: IMS DB PRESENTATION ver 1.1

110

HOW?HOW?

ONLINEONLINE RECOVERYRECOVERY PROCESSPROCESS

IMS DOES DYNAMIC BACKOUT USING THE LOG INFORMATION FOR DL/I

PROGRAMSFOR BMP PROGRAMS UPDATES ARE AUTOMATICALLY BACKED OUT TO

THE LAST CHECKPOINT

BATCHBATCH RECOVERYRECOVERY PROCESSPROCESS

FORWARD RECOVERY

BACKWARD RECOVERY / BATCH BACK OUT

Continued ...Continued ...DATABASE RECOVERYDATABASE RECOVERY

Page 111: IMS DB PRESENTATION ver 1.1

111

UTILITIES FOR RECOVERYUTILITIES FOR RECOVERY

DFSUDMP0DFSUDMP0: DATABASE IMAGE COPY UTILITY FOR CREATION OF IMAGE COPIES OF DATABASES

DFSUCUM0DFSUCUM0:DATABASE CHANGE ACCUMULATION UTILITY FOR ACCUMULATION OF DATABASE CHANGES FROM DL/I LOG TAPES SINCE THE LAST COMPLETE IMAGE COPY

DFSURDB0DFSURDB0: DATABASE RECOVERY UTILITY FOR RESTORATION OF THE DATABASE, USING A PRIOR DATABASE IMAGE COPY AND THE ACCUMULATED CHANGES FROM DL/I LOG TAPES

DFSBBO00DFSBBO00: DATABASE BACK OUT UTILITY FOR REMOVAL OF CHANGES MADE TO DATABASES BY A SPECIFIC APPLICATION PROGRAM

Continued ...Continued ...DATABASE RECOVERYDATABASE RECOVERY

Page 112: IMS DB PRESENTATION ver 1.1

112

DATABASE RECOVERY CONTROL (DBRC)DATABASE RECOVERY CONTROL (DBRC)

DBRC INCLUDES THE IMS FUNCTIONS WHICH PROVIDE IMS SYSTEM AND DATABASE INTEGRITY AND RESTART CAPABILITY.

DBRC RECORDS INFO IN 3 RECON VSAM DATASETS

RECON CONTAINS FOLLOWING INFORMATION LOG DATA SET INFORMATION DATABASE DATA SET INFORMATION ALLOCATION OF A DATABASE UPDATE OF A DATABASE IMAGE COPY OF A DATABASE ABEND OF A SUBSYSTEM RECOVERY OF A DATABASE REORGANIZATION OF A DATABASE

DBRC AUTHORIZES OR REFUSES TO AUTHORIZE THE DATABASES DEPENDING ON THE CURRENT AUTHORIZATIONS AND THE ACCESS INTENT OF THE SUBSYSTEM.

Continued ...Continued ...DATABASE RECOVERYDATABASE RECOVERY

Page 113: IMS DB PRESENTATION ver 1.1

113

FORWARD RECOVERYFORWARD RECOVERY

RESTORE MOST RECENT IMAGE COPY DATASET

CHANGES MADE TO DATABASE SINCE THE LAST IMAGE COPY ARE APPLIED ON THE RESTORED DATABASE BY USING

CHANGE ACCUMULATION DATASETSLOG DATASETS

Continued ...Continued ...DATABASE RECOVERYDATABASE RECOVERY

Page 114: IMS DB PRESENTATION ver 1.1

114

BACKWARDBACKWARD RECOVERYRECOVERY

USES BATCH BACKOUT UTILITY TO DO A FULL BACKOUT OR BACKOUT TO ANY PRIOR CHECKPOINT

PSB USED IS SAME AS PSB OF THE PROGRAM WHOSE EFFECTS HAVE TO BE BACKED OUT

INPUTSINPUTSLOG DATASETSDATABASES WHOSE UPDATES ARE TO BACKED OUTCHECKPOINT ID

WARNING: DO NOT USE CHECKPOINT ID WHILE BACKING OUT BMP. IT TAKES BY DEFAULT THE LAST CHECKPOINT ISSUED.

OUTPUTSOUTPUTSBACKED OUT DATABASESLOG DATASETS

Continued ...Continued ...DATABASE RECOVERYDATABASE RECOVERY

Page 115: IMS DB PRESENTATION ver 1.1

115

HOW DO YOU BACK OUT A NORMALLY TERMINATED PROGRAM?

BY GIVING DBRC=C IN THE JCL SHOWN BELOW

//STEP1 EXEC PGM=DFSRRC00, // REGION=5632K, // PARM=(DLI,&MBR,&PSB,, // &SPIE&TEST&EXCPVR&RST,&PRLD, // &SRCH,&CKPTID,&MON,,&FMTO,,&SWAP, // &DBRC,&IRLM,&IRLMNM,&BKO) //*

Continued ...Continued ...DATABASE RECOVERYDATABASE RECOVERY

Page 116: IMS DB PRESENTATION ver 1.1

116

CHECKPOINTCHECKPOINT CALLCALL (CHKP)(CHKP)

CHECKPOINT RESTART IS USED DURING BACKWARD RECOVERY

CHECKPOINT COMMITS PROGRAMS UPDATES TO THE DATABASE AND LOGS THE UPDATES

TWO TYPES OF CHECKPOINTS

•BASICBASIC CHECKPOINTCHECKPOINT

–STORES JUST CHECKPINT ID ( 8 BYTES STORED IN IO-AREA)

–SYNTAX: CALL ‘CBLTDLI’ USING WS-CHKP, IO-PCB, IO-AREA

•SYMBOLICSYMBOLIC CHECKPOINTCHECKPOINT

–STORES CRITICAL DATA APART FROM CHECKPOINT ID

–MUST USE XRST FOR RESTARTING

–SYNTAX: CALL ‘CBLTDLI’ USING WS-CHKP,

IO-PCB, IO-AREA-LEN, IO-AREA,

IO-AREA-LEN1, IO-AREA1…

Continued ...Continued ...DATABASE RECOVERYDATABASE RECOVERY

Page 117: IMS DB PRESENTATION ver 1.1

117

RESTARTRESTART CALL(XRST)CALL(XRST)

USED TO RESTART A PROGRAM AFTER ABNORMAL TERMINATION

RESTART FROM

SPECIFIC CHECKPOINT ID

TIME/DATESTAMP

LAST CHECKPOINT (‘LAST’) - BMPs ONLY

MUST BE THE FIRST CALL IN THE PROGRAM

SYNTAX: CALL ‘CBLTDLI’ USING WS-XRST,

IO-PCB, IO-AREA-LEN, IO-AREA,

IO-AREA-LEN1, IO-AREA1…

Continued ...Continued ...DATABASE RECOVERYDATABASE RECOVERY

Page 118: IMS DB PRESENTATION ver 1.1

118

FACTORS TO BE CONSIDERED FOR CHKP & XRST CALLSFACTORS TO BE CONSIDERED FOR CHKP & XRST CALLS

ALL FILES (INCLUDING SYSIN, SYSOUT) USED BY PROGRAM SHOULD BE DL/I (GSAM) DATABASES OTHERWISE THERE WILL BE DUPLICATE DATA OR LOSS OF DATA

GSAM OUTPUT FILES SHOULD USE DISP=(NEW,KEEP,KEEP) FOR INITIAL RUN AND DISP=(OLD,KEEP,KEEP) FOR RESTARTS

Continued ...Continued ...DATABASE RECOVERYDATABASE RECOVERY

Page 119: IMS DB PRESENTATION ver 1.1

119

SESSION 13

EFFICIENT PROGRAMMING TIPS

Page 120: IMS DB PRESENTATION ver 1.1

120

INSTEAD OF USING GET CALL PRECEDING A ISRT CALL USE ISRT WITH

APPROPRIATE SSA

USE QUALIFIED SSAS WHEREVER POSSIBLE

IMPLIED SSAS SHOULD BE AVOIDED EVENTHOUGH DL/I CONSTRUCTS

MISSING SSAS

MINIMIZE THE NUMBER OF DL/I CALLS BY USING COMMAND CODES

USE SEARCH FIELDS IN DL/I CALLS INSTEAD OF USING IF STATEMENTS IN

COBOL PROGRAM

PROGRAMMING TIPSPROGRAMMING TIPS

Page 121: IMS DB PRESENTATION ver 1.1

121

TRY USING SECONDARY INDICES

DESIGN YOUR PROGRAM TO RUN IN BOTH BMP AND BATCH MODE

USE CHECKPOINT/RESTART

THERE IS ONLY A SMALL PERFORMANCE DIFFERENCE BETWEEN THE GET AND GET HOLD CALLS. SO USE GET HOLD CALLS WHENEVER THERE IS A CHANCE ( > 5%) OF SEGMENT UPDATE/DELETE

IT IS GOOD PRACTICE TO PROGRAM FOR EASY ADJUSTMENT OF CHECKPOINT FREQUENCY

PROGRAMMING TIPSPROGRAMMING TIPS Continued ...Continued ...

Page 122: IMS DB PRESENTATION ver 1.1

122

SESSION 14

COMMON IMS ABENDS

Page 123: IMS DB PRESENTATION ver 1.1

123

U0047U0047

DESCRIPTION

ONE OF THE DBPCBS IN THE PSB FAILED TO OBTAIN THE DATABASE AUTHORIZATION THROUGH DBRC. USUALLY OCCURS WHEN DATABASE IS UP IN ONLINE OR DATABASE IS USED IN UPDATE MODE BY ANOTHER PROGRAM.

SOLUTION

•BRING DOWN THE DATABASE USING /DBR DB DATABASE NAME

•WAIT TILL CONTENDING JOB COMPLETES AND RESTART THE JOB

COMMON IMS ABENDSCOMMON IMS ABENDS

Page 124: IMS DB PRESENTATION ver 1.1

124

U0456U0456

DESCRIPTION

A DL/I BATCH REGION, BMP PROGRAM COULD NOT BE INITIATED BECAUSE THE PSB HAS BEEN STOPPED OR LOCKED BY A COMMAND OR A PRIOR PROGRAM FAILURE

SOLUTION

•ANALYZE WHY THE PSB IS LOCKED OR STOPPED. RESTART THE JOB AFTER THE PSB HAS BEEN UNLOCKED

TO UNLOCK PSB FOR A BMP PROGRAM USE /START PROGRAM psbname COMMAND

COMMON IMS ABENDSCOMMON IMS ABENDS

Page 125: IMS DB PRESENTATION ver 1.1

125

U0476U0476

DESCRIPTION

A DL/I CALL DOES NOT INCLUDE A VALID PCB ADDRESS

PROBABLE CAUSES

• PSB LANGUAGE TYPE SPECIFIED IS NOT SAME AS THAT OF APPLICATION PROGRAM

• COBOL MAIN PROGRAM ENTERED AT PROCEDURE DIVISION INSTEAD OF DLITCBL BECAUSE ENTRY DLITCBL NOT INCLUDED IN LKED

• WRONG PCB WITH FEWER PCBS THAN EXPECTED IS USED

COMMON IMS ABENDSCOMMON IMS ABENDS

Page 126: IMS DB PRESENTATION ver 1.1

126

U0852U0852

DESCRIPTION

THE SEGMENT CODE RETURNED IS NOT VALID FOR THE DATABASE

SOLUTION

ANALYZE THE DATABASE. IF THERE IS AN INVALID POINTER, RECOVER THE DATABASE.

COMMON IMS ABENDSCOMMON IMS ABENDS

Page 127: IMS DB PRESENTATION ver 1.1

127

U3303U3303

DESCRIPTION

APPLICATION PROGRAM TRIED TO USE A DATABASE THAT WAS NOT AVAILABLE FOR ACCESS AND/OR UPDATE. DFS3303I MESSAGE ACCOMPANIES THIS ABEND

SOLUTION

CHECK THE STATUS OF DATABASE GIVEN IN DFS3303I MESSAGE USING

/DISPLAY DB database name

IF DATABASE IS DOWN START THE DATABASE USING THE COMMAND

/START DB database name

COMMON IMS ABENDSCOMMON IMS ABENDS