IMS-DB

53
Information Management System IMS - INFORMATION MANAGEMENT SYSTEM Developed by IBM. DATA LANGUAGE-I (DL/I) was developed as an interface between application code and data in IMS database Hierarchical database

description

ims-db ppt

Transcript of IMS-DB

Page 1: IMS-DB

Information Management System

IMS - INFORMATION MANAGEMENT SYSTEM Developed by IBM.

DATA LANGUAGE-I (DL/I) was developed as an interface between application code and data in IMS database

Hierarchical database

Page 2: IMS-DB

TERMINOLOGY

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 nameSegment is the smallest information that dl/I can fetchSegment occurrence is a particular instance of a segment type

Page 3: IMS-DB

Two types of fieldsKey fieldsSearch fields

Key field is used to sequence database and it can not be changedBoth types of fields can be used to search database

Page 4: IMS-DB

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

Page 5: IMS-DB

DATABASE RECORDDATABASE RECORD

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

Page 6: IMS-DB

IMS DATABASE LIMITATIONSIMS DATABASE LIMITATIONS

IMS SUPPORTS 15 LEVELS 255 SEGMENTS 1000 FIELDS

No limitation on number of segment occurrences

Page 7: IMS-DB

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

App Prog

DL/I DC

TerminalDatabase

DB PCBinterface

I/O PCBinterface

Page 8: IMS-DB

MODES OF PROCESSING

BATCH DL/I MODE

MPP MODE

BMP MODE

IMS ENVIRONMENTIMS ENVIRONMENT

MPP

ONLINE

DL/I

BATCH

BMP

Page 9: IMS-DB

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

Page 10: IMS-DB

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

Page 11: IMS-DB

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 12: IMS-DB

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

Page 13: IMS-DB

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

Page 14: IMS-DB

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

Page 15: IMS-DB

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

Page 16: IMS-DB

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

Page 17: IMS-DB

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

Page 18: IMS-DB

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

Page 19: IMS-DB

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

Page 20: IMS-DB

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 21: IMS-DB

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

Page 22: IMS-DB

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

Page 23: IMS-DB

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

Page 24: IMS-DB

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

Page 25: IMS-DB

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

COMPONENTS IS THE WORKING STORAGE SECTION

IDENTIFICATION DIVISION

ENVIRONMENT DIVISION

DATA DIVISION FILE SECTION WORKING STORAGE SECTION LINKAGE SECTION

PROCEDURE DIVISION

FUNCTION CODES

I/O AREA

SSA

PCB MASKS

COBOL BASICS FOR IMSCOBOL BASICS FOR IMS

DATADATA DIVISIONDIVISION

Page 26: IMS-DB

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

Page 27: IMS-DB

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

Page 28: IMS-DB

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

Page 29: IMS-DB

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

Page 30: IMS-DB

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

Page 31: IMS-DB

COBOL BASICS FOR IMSCOBOL BASICS FOR IMS

RUN JCL

DL/I

APPLICATIONPROGRAM

IMSDATABASE

PROGRAM NAME

PSB NAMEC

BL

TD

LI

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

Page 32: IMS-DB

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 33: IMS-DB

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

DL/I CALLSDL/I CALLS

Page 34: IMS-DB

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

Page 35: IMS-DB

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

DL/I CALLSDL/I CALLS

Page 36: IMS-DB

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

Page 37: IMS-DB

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)

DL/I CALLSDL/I CALLS

Page 38: IMS-DB

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

DL/I CALLSDL/I CALLS

Page 39: IMS-DB

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

DL/I CALLSDL/I CALLS

1

6

5

117

104

2 8

3 9

BKEY

EKEY

CKEYDKEY

Page 40: IMS-DB

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)

DL/I CALLSDL/I CALLS

Page 41: IMS-DB

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

DL/I CALLSDL/I CALLS

1

6

5

117

104

2 8

3 9

BKEY

EKEY

CKEYDKEY

FKEY

Page 42: IMS-DB

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)

DL/I CALLSDL/I CALLS

Page 43: IMS-DB

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

DL/I CALLSDL/I CALLS

INSERT (ISRT)INSERT (ISRT)

Page 44: IMS-DB

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

DL/I CALLSDL/I CALLS

1

6

5

117

104

2 8

3 9

BKEY

EKEY

CKEYDKEY

FKEY

Page 45: IMS-DB

SOME COMMON STATUS CODESSOME COMMON STATUS CODES

DL/I CALLSDL/I CALLS

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 46: IMS-DB

SOME COMMON STATUS CODESSOME COMMON STATUS CODES

DL/I CALLSDL/I CALLS

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 47: IMS-DB

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 48: IMS-DB

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

Page 49: IMS-DB

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 50: IMS-DB

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 51: IMS-DB

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 52: IMS-DB

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 53: IMS-DB

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