1 ims - db 2 session 1ims general concepts session 2dl/i control blocks session 3segment search...

127
1 IMS - DB IMS - DB

Upload: emil-skinner

Post on 17-Jan-2016

273 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

1

IMS - DBIMS - DB

Page 2: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

3

SESSION 1SESSION 1

IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS

Page 4: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

4

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

5

B3

A2

D1B2

A1

C1

ROOT SEGMENT (PARENT)

SEGMENT OCCURRNCES

TWIN SEGMENTSDEPENDENT SEGMENTS

-- Level 1

-- Level 2B1

HIERARCHICAL STRUCTURE

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Continued ...Continued ...

Page 7: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Continued ...Continued ...

Page 8: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 9: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Continued ...Continued ...

Page 10: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

10

DATABASE RECORDDATABASE RECORD

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

Continued ...Continued ...

Page 11: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

11

HOW MANY DATABASE RECORDS?

EXERCISE-2EXERCISE-2

Continued ...Continued ...

Page 12: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 13: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 16: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 17: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

17

SESSION 2SESSION 2

DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS

Page 18: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 21: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

22

CAN WE DEFINE OVERLAPPING FIELDS?

DL/I CONTROL BLOCKSDL/I CONTROL BLOCKSContinued ...Continued ...

Page 23: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 24: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 27: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 29: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 30: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

30

SESSION 3SESSION 3

SEGMENT SEARCH ARGUMENTSEGMENT SEARCH ARGUMENT

Page 31: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

32

WHAT IS THE SIGNIFICANCE OF MAX 15 SSA?

SEGMENT SEARCH ARGUMENTSEGMENT SEARCH ARGUMENTContinued ...Continued ...

Page 33: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 34: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 35: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 36: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 37: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 38: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

38

SESSION 4SESSION 4

COBOL BASICS FOR IMSCOBOL BASICS FOR IMS

Page 39: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 41: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 42: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 43: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 44: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 45: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

46

SESSION 5SESSION 5

DL/I CALLSDL/I CALLS

Page 47: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 49: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

49

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

DL/I CALLSDL/I CALLSContinued ...Continued ...

Page 50: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 51: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 52: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 53: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

53

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

PREVIOUS EXAMPLE?

DL/I CALLSDL/I CALLSContinued ...Continued ...

Page 54: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 55: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

63

SOME COMMON STATUS CODESSOME COMMON STATUS CODES

DL/I CALLSDL/I CALLSContinued ...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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

64

SOME COMMON STATUS CODESSOME COMMON STATUS CODES

DL/I CALLSDL/I CALLSContinued ...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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

65

SESSION 6SESSION 6

COMMAND CODESCOMMAND CODES

Page 66: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 69: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 70: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

75

SESSION 7SESSION 7

DL/I CALL EXERCISEDL/I CALL EXERCISE

Page 76: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

80

SESSION 8

DATABASE ACCESS METHODS

Page 81: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

90

SESSION 9

MULTIPLE PROCESSING

Page 91: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

94

SESSION 10

SECONDARY INDEXING

Page 95: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

98

Customer

Ship-to

Buyer

Receivable

Payment Adjustment Line Item

SECONDARY DATA STRUCTURESECONDARY DATA STRUCTURE

Continued ...Continued ...SECONDARY INDEXINGSECONDARY INDEXING

Page 99: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

104

SESSION 11SESSION 11

LOGICAL RELATIONSHIPSLOGICAL RELATIONSHIPS

Page 105: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

108

SESSION 12

DB RECOVERY / RESTART

Page 109: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

119

SESSION 13

EFFICIENT PROGRAMMING TIPS

Page 120: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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

Page 122: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

122

SESSION 14

COMMON IMS ABENDS

Page 123: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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: 1 IMS - DB 2 SESSION 1IMS GENERAL CONCEPTS SESSION 2DL/I CONTROL BLOCKS SESSION 3SEGMENT SEARCH ARGUMENTS (SSAs) SESSION 4COBOL BASICS FOR IMS SESSION

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