IMS-DB
-
Upload
fredrick-jerald -
Category
Documents
-
view
48 -
download
1
description
Transcript of 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
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
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
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
DATABASE RECORDDATABASE RECORD
ONE OCCURRENCE OF A ROOT SEGMENT ALONG WITH ALL ITS DEPENDENT SEGMENTS
IMS DATABASE LIMITATIONSIMS DATABASE LIMITATIONS
IMS SUPPORTS 15 LEVELS 255 SEGMENTS 1000 FIELDS
No limitation on number of segment occurrences
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
MODES OF PROCESSING
BATCH DL/I MODE
MPP MODE
BMP MODE
IMS ENVIRONMENTIMS ENVIRONMENT
MPP
ONLINE
DL/I
BATCH
BMP
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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