Ims Tcs Ppts PDF
-
Upload
ramana-reddy -
Category
Documents
-
view
60 -
download
3
Transcript of Ims Tcs Ppts PDF
1
IMS - DBIMS - DB
2
SESSION 1 IMS GENERAL CONCEPTS
SESSION 2 DL/I CONTROL BLOCKS
SESSION 3 COBOL BASICS FOR IMS
SESSION 4 SEGMENT SEARCH ARGUMENTS (SSAs)
SESSION 5 DL/I CALLS
SESSION 6 COMMAND CODES
SESSION 7 DL/I CALLS EXERCISE
SESSION 8 MULTIPLE PROCESSING
SESSION 9 SECONDARY INDEXING
SESSION 10 LOGICAL RELATIONSHIP
SESSION 11 DATABASE ACCESS METHODS
SESSION 12 DB RECOVERY/RESTART
SESSION 13 EFFICIENT PROGRAMMING TIPS
3
SESSION 1SESSION 1
IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS
4
IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS
IMS - INFORMATION MANAGEMENT SYSTEM
DEVELOPED IN 1968 BY IBM
DATA LANGUAGE-I (DL/I) WAS DEVELOPED AS A INTERFACE
BETWEEN APPLICATION CODE AND DATA IN IMS DATABASE
5
B3
A2
D1B2
A1
C1
ROOT SEGMENT (PARENT)
SEGMENT OCCURRNCES
TWIN SEGMENTS DEPENDENT SEGMENTS
-- Level 1
-- Level 2B1
HIERARCHICAL STRUCTURE
IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS
FOLLOWS INVERTED TREE STRUCTURE
EACH BOX IN THE HIERARCHY REPRESENTS A SEGMENT
ROOT SEGMENT WILL BE ON TOP
EACH SEGMENT (EXCEPT ROOT SEGMENT) IS DIRECTLY DEPENDENT ON ONLY ONE SEGMENT
Continued ...Continued ...
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 OCCURRENCESEGMENT OCCURRENCE IS A PARTICULAR INSTANCE OF A SEGMENT TYPE
IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...
7
TWO TYPES OF FIELDS
KEY FIELDS
SEARCH FIELDS
KEY FIELD IS USED TO SEQUENCE DATABASE AND IT CAN NOT BE
CHANGED
BOTH TYPES OF FIELDS CAN BE USED TO SEARCH DATABASE
IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...
8
ROOT A SEGMENT WITHOUT PARENT
PARENTA SEGMENT WITH ONE OR MORE DEPENDENT SEGMENTS
DIRECTLY UNDER IT
CHILDA SEGMENT WHICH IS DIRECTLY DEPENDENT ON ANOTHER
SEGMENT
DEPENDENTALL SEGMENTS UNDER A PARTICULAR SEGMENT OF THE DATABASE
TWINALL OCCURRENCES (2 OR MORE) OF A SEGMENT TYPE UNDER A PARENT
SIBLINGS OCCURRENCES OF DIFFERENT SEGMENT TYPES UNDER A PARENT
TYPES OF SEGMENTS
IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...
9
2 4
1
3
5 76 8 9
1. WHICH SEGMENTS ARE DEPENDENT ON SEGMENT 4?2. WHICH SEGMENTS ARE CHILD SEGMENTS OF SEGMENT 1?3. WHICH SEGMENTS ARE DEPENDENT SEGMENTS OF SEGMENT 1?4. HOW MANY LEVELS?
EXERCISE - 1EXERCISE - 1
IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...
10
DATABASE RECORDDATABASE RECORD
ONE OCCURRENCE OF A ROOT SEGMENT ALONG WITH ALL ITS DEPENDENT SEGMENTS
IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...
11
HOW MANY DATABASE RECORDS?
EXERCISE-2EXERCISE-2
IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...
12
IMS DATABASE LIMITATIONSIMS DATABASE LIMITATIONS
IMS SUPPORTS
15 LEVELS
255 SEGMENTS
1000 FIELDS
NO LIMITATION ON NUMBER OF SEGMENT OCCURRENCES.
IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...
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 ...
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 ...
15
BATCH DL/IBATCH DL/I
TRUE BATCH PROCESSING
NO DATA COMMUNICATION SERVICES ARE USED
DATABASES ACCESSED MUST BE OFFLINE
MPP (MESSAGE PROCESSING PROGRAM)MPP (MESSAGE PROCESSING PROGRAM)
TRUE ONLINE PROCESSING
TRANSACTION ARE ENTERED AT TERMINAL AND STORED IN MESSAGE QUEUE
DATABASES ACCESSED MUST BE ONLINE
IMS ENVIRONMENTIMS ENVIRONMENT
IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...
16
BMP (BATCH MESSAGE PROCESSING)BMP (BATCH MESSAGE PROCESSING)
TWO TYPES
1. TRANSACTION ORIENTED:
CAN READ & WRITE TO ONLINE MESSAGE QUEUES
CAN PROCESS ONLINE FILES AND DATABASES
2. BATCH ORIENTED:
CAN ONLY READ MESSAGE QUEUES
ACCESS ONLINE DATABASES IN BATCH MODE
IMS ENVIRONMENTIMS ENVIRONMENT
IMS GENERAL CONCEPTSIMS GENERAL CONCEPTS Continued ...Continued ...
17
SESSION 2SESSION 2
DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS
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
19
STATEMENTS IN DBD MACROSTATEMENTS IN DBD MACRO
DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS
DATADATA BASEBASE DESCRIPTIONDESCRIPTION (DBD)(DBD)
STATEMENT DESCRIPTIONDBD SPECIFIES DATABASE NAME, ACCESS METHODDATASET SPECIFIES DD NAME TO BE USED IN JCL, DISK TYPESEGM SPECIFIES SEGMENT NAME,SEGMENT LENGTH, PARENTFIELD SPECIFIES FIELD NAME, LENGTH, STARTING POSITION
IDENTIFIES A FIELD AS KEY OR SEARCH FIELD
Continued ...Continued ...
20
SAMPLE DBDGENSAMPLE DBDGEN
PRINT NOGENDBD NAME=VENDOR,ACCESS=HDAMDATASET DD1=VEND,DEVICE=3380SEGM NAME=VENSEG,PARENT=0,BYTES=10FIELD NAME=(VENCODE,SEQ,U),BYTES=10,START=1,TYPE=CSEGM NAME=ITEMSEG,PARENT=VENSEG,BYTES=5FIELD NAME=(ITEMCODE,SEQ,U),BYTES=5,START=1,TYPE=CSEGM NAME=LOCNSEG,PARENT=ITEMSEG,BYTES=9FIELD NAME=(LOCNCODE,SEQ),BYTES=3,START=1,TYPE=CFIELD NAME=ORDDATE,BYTES=6,START=4,TYPE=CDBDGENFINISHEND
DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS Continued ...Continued ...
21
TYPE DESCRIPTIONC Character (Default)
COBOL PICTUREX
P Packed Decimal COMP-3Z Zoned Decimal S9H Half Word Binary 9(4) COMPF Full Word Binary 9(8) COMP
DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS
DATATYPESDATATYPES USEDUSED ININ DBDGENDBDGEN
Continued ...Continued ...
22
CAN WE DEFINE OVERLAPPING FIELDS?
DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS Continued ...Continued ...
23
PROGRAMPROGRAM SPECIFICATIONSPECIFICATION BLOCKBLOCK (PSB)(PSB)
MADE UP OF ONE OR MORE PROGRAM COMMUNICATION BLOCKS (PCBs)
DB PCB - DEFINES PROGRAM’S VIEW OF A IMS DATABASE
WHENEVER A DATABASE VIEW DEFINED BY THE PCB IS ACCESSED BY A CALL, THE RESULTS OF CALL ARE PASSED THROUGH THE PCB TO PROGRAM
PSB IS GENERATED BY PSBGEN MACRO
DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS Continued ...Continued ...
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 ...
25
PRINT NOGEN
PCB TYPE=DB,DBDNAME=VENDOR,KEYLEN=18,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 ...
26
PROCOPT DESCRIPTION
G Get or Read
I Insert
R Replace
D Delete
A All Options (G, I, R, D)
L Initial Load
LS Sequential Initial Load
K Access only Key of segment
O Used with G to Indicate that Hold is not allowed
P Path Calls
PROCOPTS IN PSB DEFINES SECURITY LEVEL FOR THE PROGRAM
DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS Continued ...Continued ...
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 ...
28
PRINT NOGEN
PCB TYPE=DB,DBDNAME=VENDOR,KEYLEN=18
SENSEG NAME=VENSEG,PROCOPT=G
SENSEG NAME=ITEMSEG,PARENT=VENSEG,PROCOPT=R
SENSEG NAME=LOCNSEG,PARENT=ITEMSEG,PROCOPT=A
PSBGEN
END
1. LIST THE SEGMENTS THAT MAY BE UPDATED USING THIS PSB
2. LIST THE SEGMENTS THAT CANNOT BE UPDATED
3. GIVE THE VALID PROCOPT TO BE CODED FOR ADDING AND REPLACING RECORDS IN LOCATION SEGMENT
DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS Continued ...Continued ...
29
EMPDATA
WORKDATA DEPTDATA BENDATA
BASED ON THE ABOVE VIEW OF DATABASE FILL IN THE MISSING PIECES OF PCBPCB TYPE=DB,DBDNAME=EMPDB,KEYLEN=16,PROCOPT=G
SENSEG NAME=_________________,PARENT=_____________________
SENSEG NAME=_________________,PARENT=_____________________
SENSEG NAME=_________________,PARENT=_____________________
SENSEG NAME=_________________,PARENT=_____________________
PSBGEN LANG=COBOL,PSBNAME=EMPPSBY
END
DL/I CONTROL BLOCKSDL/I CONTROL BLOCKS Continued ...Continued ...
30
SESSION 3SESSION 3
COBOL BASICS FOR IMSCOBOL BASICS FOR IMS
31
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
32
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 AREGU - GET UNIQUEGN - GET NEXTGNP - GET NEXT WITHIN PARENTGHU - GET HOLD UNIQUEGHN - GET HOLD NEXTGHNP - GET HOLD NEXT WITHIN PARENTDLET - DELETEREPL - REPLACEISRT - INSERTXRST - EXTENDED RESTARTCHKP - CHECKPOINT
COBOL BASICS FOR IMSCOBOL BASICS FOR IMS Continued ...Continued ...
33
IS A STANDARD RECORD DESCRIPTION IN THE WORKING STORAGE SECTION WHICH HOLDS DATABASE SEGMENTS FOR MANIPULATION
IS USED BY DL/I TO PASS SEGMENTS TO THE PROGRAM
CAN BE USED BY PROGRAMMER TO ADD OR REPLACE SEGMENT DATA
MUST BE EQUAL TO OR GREATER THAN THE LENGTH OF THE LONGEST SEGMENT TO BE USED BY THE PROGRAM
IN CASES WHERE MULTIPLE SEGMENTS OF A HIERARCHY ARE UPDATED OR RETRIEVED, THE I/O AREA MUST BE LARGE ENOUGH TO HOLD THE LARGEST CONCATENATION OF THESE SEGMENTS
INPUT/OUTPUTINPUT/OUTPUT AREAAREA
COBOL BASICS FOR IMSCOBOL BASICS FOR IMS Continued ...Continued ...
34
USED IN LINKAGE SECTION
LINKAGELINKAGE SECTIONSECTION01 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(12).
03 IMS-RESERVED PIC X(4).
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(??).
THETHE PCBPCB MASKMASK
COBOL BASICS FOR IMSCOBOL BASICS FOR IMS Continued ...Continued ...
35
THERE SHOULD BE ATLEAST ONE PCB FOR EACH DATABASE USED
STATUS CODE OF PCB MASK EXPLAINS WHETHER A CALL IS SUCCESSFUL OR NOT
THE SEQUENCE IN WHICH PCB MASKS ARE DEFINED IN LINKAGE SECTION NEED NOT BE SAME AS THAT IN PSBGEN MACRO
THETHE PCBPCB MASKMASK
COBOL BASICS FOR IMSCOBOL BASICS FOR IMS Continued ...Continued ...
36
PROCEDUREPROCEDURE DIVISIONDIVISION.
ENTRY ‘DLITCBL’ USING DB-PCB-1, DB-PCB-2. <= Sequence should match that of
:::::::::::: PSB Macro
::::::::::::
CALL ‘CBLTDLI’ USING WS-PARM-COUNT, <= Optional
WS-FUNCTION-CODE,
DB-PCB-MASK,
IO-AREA,
SSA-1, SSA-2, SSA-3, ….
::::::::::
::::::::::
GOBACK.
PROCEDUREPROCEDURE DIVISIONDIVISION
COBOL BASICS FOR IMSCOBOL BASICS FOR IMS Continued ...Continued ...
37
COBOL BASICS FOR IMSCOBOL BASICS FOR IMS
RUN JCL
DL/I
APPLICATIONPROGRAM
IMSDATABASE
PROGRAM NAME
PSB NAME
CB
LTD
LI
DLI
TCB
L
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 ...
38
SESSION 4SESSION 4
SEGMENT SEARCH ARGUMENTSEGMENT SEARCH ARGUMENT
39
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
40
WHAT IS THE SIGNIFICANCE OF MAX 15 SSA?
SEGMENT SEARCH ARGUMENTSEGMENT SEARCH ARGUMENT Continued ...Continued ...
41
UNQUALIFIEDUNQUALIFIED
SEARCHES FOR A SPECIFIC SEGMENT TYPE
QUALIFIEDQUALIFIED
SEARCHES FOR A SPECIFIC SEGMENT OCCURRENCE
MORE EFFICIENT THAN UNQUALIFIED SSA
TYPESTYPES OFOF SSASSSASSEGMENT SEARCH ARGUMENTSEGMENT SEARCH ARGUMENT Continued ...Continued ...
42
WORKING-STORAGE-SECTIONWORKING-STORAGE-SECTION.
…………..
01 HISTORY-SSA.
05 SEGMENT-NAME PIC X(8) VALUE ‘HISTORY ‘.
05 FILLER PIC X(1) VALUE SPACE.
Blank in 9th position or ‘*’ in 9th position ‘-‘ in position 10 and a blank in position 11
UNQUALIFIEDUNQUALIFIED SSASSA
H I S T O R Y *
H I S T O R Y
-
SEGMENT SEARCH ARGUMENTSEGMENT SEARCH ARGUMENT Continued ...Continued ...
43
WORKING-STORAGE-SECTIONWORKING-STORAGE-SECTION.…………..01 SSA-EMPLOYEE. 03 SEGMENT-NAME PIC X(8) VALUE ‘EMPLOYEE’ 03 COMMAND-CODE PIC X(2) VALUE ‘*-’. 03 BEGIN-QUALIFY PIC X(1) VALUE ‘(‘. 03 KEY-NAME PIC X(8) VALUE ‘EMPKEY ‘. 03 OPERATOR PIC X(2) VALUE ‘ =‘. 03 KEY-VALUE PIC X(12) . 03 END-QUALIFY PIC X(1) VALUE ‘)‘.PROCEDURE DIVISION.…..MOVE ‘123456789000’ TO KEY-VALUE.CALL ‘CBLTDLI’ USING FUNC-CODE, PCB-MASK-1, IO-AREA, SSA-EMPLOYEE.
QUALIFIEDQUALIFIED SSASSA
SEGMENT SEARCH ARGUMENTSEGMENT SEARCH ARGUMENT Continued ...Continued ...
44
OPERATORS USED IN QUALIFIED SSA
OPERATOR SYMBOLS
Equal to ‘EQ’, ‘= ‘, ‘ =‘
Not Equal to ‘NE’, ‘¬=‘, ‘=¬’
Less than ‘LT’, ‘< ‘, ‘ <‘
Less than or Equal to ‘LE’, ‘<=‘, ‘=<‘
Greater than ‘GT’, ‘> ‘, ‘ >’
Greater than or Equal to‘GE’, ‘>=‘, ‘=>’
SEGMENT SEARCH ARGUMENTSEGMENT SEARCH ARGUMENT Continued ...Continued ...
45
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 CODESSEGMENT SEARCH ARGUMENTSEGMENT SEARCH ARGUMENT Continued ...Continued ...
46
SESSION 5SESSION 5
DL/I CALLSDL/I CALLS
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
48
GETGET NEXTNEXTRETREIVALRETREIVAL SEQUENCESEQUENCE
TOP TO BOTTOM
FRONT TO BACK
LEFT TO RIGHT
1
6
5
117
104
2 8
3 9
AKEY
BKEY
EKEY
CKEYDKEY FKEY
GK
GA
DL/I CALLSDL/I CALLS Continued ...Continued ...
49
CALL ‘CBLTDLI’ USING ‘GN ‘, PCB-MASK,SEG-IO-AREA,SEGMENTA*-(AKEY=1)SEGMENTE*-(EKEY=8)
AFTER THE CALL SEGMENTE WITH EKEY=8 WILL BE IN PROGRAM I/O AREA
1
6
5
117
104
2 8
3 9
AKEY
BKEY
EKEY
CKEYDKEY
FKEY
EXERCISEEXERCISE: WHAT WILL BE THE RESULTS OF FOUR CONSEQUETIVE GNs AFTER EKEY=8 IS RETRIEVED
DL/I CALLSDL/I CALLS Continued ...Continued ...
50
GET UNIQUEGET UNIQUECALL ‘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-AREA1
6
5
117
104
2 8
3 9
AKEY
BKEY
EKEY
CKEY DKEY FKEY
EXERCISEEXERCISE: WRITE A GU TO RETRIEVE FKEY=10
DL/I CALLSDL/I CALLS Continued ...Continued ...
51
WHAT WILL BE THE OUTPUT OF A GU CALL WITH NO SSA?
DL/I CALLSDL/I CALLS Continued ...Continued ...
52
CALL ‘CBLTDLI’ USING ‘GN ’, LS-PCB-MASK, SEGMENT-IO-AREA,
SEGMENTA*-(AKEY=1)
SEGMENTB*-(BKEY=2)
CALL ‘CBLTDLI’ USING ‘GNP ‘, LS-PCB-MASK, SEGMENT-IO-AREA
AFTER THE CALL SEGMENTC WITH CKEY=3 WILL BE IN SEGMENT-IO-AREA
GET NEXT WITHIN PARENTGET NEXT WITHIN PARENT
1
6
5
117
104
2 8
3 9
AKEY
BKEY
EKEY
CKEYDKEY
FKEY
DL/I CALLSDL/I CALLS Continued ...Continued ...
53
WHAT WILL BE THE OUTPUT IF GNP IS DONE 4 MORE TIMES IN
PREVIOUS EXAMPLE?
DL/I CALLSDL/I CALLS Continued ...Continued ...
54
CALL ‘CBLTDLI’ USING ‘GN ‘, LS-PCB-MASK, WS-SEG-IO-AREA,
SEGMENTA*D(AKEY=1)
SEGMENTF*-(FKEY=10)
WHAT WILL BE THE RESULT AFTER SUCCESSFUL COMPLETION OF THE ABOVE CALL?
PATH CALLS EXERCISEPATH CALLS EXERCISE
1
6
5
117
104
2 8
3 9
BKEY
EKEY
CKEYDKEY
FKEY
DL/I CALLSDL/I CALLS Continued ...Continued ...
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
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
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
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
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
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
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)
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
63
SESSION 6SESSION 6
COMMAND CODESCOMMAND CODES
64
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
65
SOME COMMAND CODESSOME COMMAND CODES
COMMAND CODESCOMMAND CODES
COMMAND CODE DESCRIPTIOND 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 ...
66
REQUESTS DL/I TO USE PATH CALLS
ALLOWS ENTIRE PATH IN SEGMENT HIERARCHY TO BE RETRIEVED IN ONE
SINGLE CALL
FOR PROGRAMS USING PATH CALLS PROCOPT IN PSB SHOULD HAVE “P” AS
ONE OF THE VALUES
DL/I DOES NOT RETRIEVE SEGMENTS IF THE CORRESPONDING SSA DOES
NOT HAVE PATH COMMAND CODE “D”
COMMANDCOMMAND CODE “D”CODE “D”
COMMAND CODESCOMMAND CODES Continued ...Continued ...
67
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
COMMANDCOMMAND CODE “D”CODE “D”
COMMAND CODESCOMMAND CODES Continued ...Continued ...
68
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
69
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 ...
70
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 ...
71
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 ...
72
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
73
SESSION 7SESSION 7
DL/I CALL EXERCISEDL/I CALL EXERCISE
74
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
75
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
76
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
77
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
78
SESSION 8
MULTIPLE PROCESSING
79
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 POSITIONINGMULTIPLE POSITIONING
80
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 POSITIONINGMULTIPLE POSITIONING
81
EXAMPLEEXAMPLECALLS GN SEGMENTB, GN SEGMENTC, GN SEGMENTB, GN SEGMENTC
A1
B11 C11
B12
B13
C12
C13
A2
B21
B22
C21
C22
Continued ...Continued ...MULTIPLE POSITIONINGMULTIPLE POSITIONING
82
SESSION 9
SECONDARY INDEXING
83
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
84
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
85
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
86
Customer
Ship-to
Buyer
Receivable
Payment Adjustment Line Item
SECONDARY DATA STRUCTURESECONDARY DATA STRUCTURE
Continued ...Continued ...SECONDARY INDEXINGSECONDARY INDEXING
87
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
88
COURSE# TITLE DESCRIPN
COURSE# TITLE DATE LOCATION FORMAT
EMPNUM NAME GRADEEMPNUM NAME
COURSE
PREREQ OFFERING
TEACHER STUDENT
Continued ...Continued ...SECONDARY INDEXINGSECONDARY INDEXING
89
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
90
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
91
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
92
SESSION 10SESSION 10
LOGICAL RELATIONSHIPSLOGICAL RELATIONSHIPS
93
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
94
DETAIL
ORDER
SHIPMENT
PART
STOCK
PART DatabaseORDER Database
Physical Parent
of DETAIL
Logical Parent
of DETAIL
Physical Children
of ORDER
Logical Children
of PART
Logical Relationship
Continued ...Continued ...LOGICAL RELATIONSHIPSLOGICAL RELATIONSHIPS
95
DETAIL
ORDER
SHIPMENT
PART /ORDERPART /ORDERLogical Database
ORDER/PARTORDER/PARTLogical Database
PART
STOCK
STOCK
PART
ORDERDETAIL
SHIPMENT
Continued ...Continued ...LOGICAL RELATIONSHIPSLOGICAL RELATIONSHIPS
96
SESSION 11
DATABASE ACCESS METHODS
97
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
HISAM - Hierarchical Indexed Direct Access Method
DL/I PROVIDES GSAM(Generalized Sequential Access Method) TO ACCESS NORMAL SEQUENTIAL DATASETS
98
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
99
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
100
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
101
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
102
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
103
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
104
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
105
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
106
SESSION 12
DB RECOVERY / RESTART
107
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
108
HOW?HOW?
ONLINEONLINE RECOVERYRECOVERY PROCESSPROCESSIMS 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
109
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
110
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
111
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
112
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
113
HOW DO YOU BACK OUT A NORMALLY TERMINATED PROGRAM?
BY USING 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
114
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
115
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
116
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
117
SESSION 13
EFFICIENT PROGRAMMING TIPS
118
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
119
• TRY USING SECONDARY INDICES
• DESIGN YOUR PROGRAM TO RUN IN BOTH BMP AND BATCH MODE
• USE CHECKPOINT/RESTART
• THERE IS ONLY A SMALL PERFORMANCE DIFFERENCE BETWEEN THE GET AND GET HOLD CALLS. SO USE GET HOLD CALLS WHENEVER THERE IS A CHANCE ( > 5%) OF SEGMENT UPDATE/DELETE
• IT IS GOOD PRACTICE TO PROGRAM FOR EASY ADJUSTMENT OF CHECKPOINT FREQUENCY
PROGRAMMING TIPSPROGRAMMING TIPS Continued ...Continued ...