Ims DB1
Ims DB1
page number
IMS GENERAL CONCEPTS DL/I CONTROL BLOCKS SEGMENT SEARCH ARGUMENTS (SSAs)
SESSION 4
SESSION 5 SESSION 6 SESSION 7
SESSION 8
SESSION 9 SESSION 10 SESSION 11
SESSION 12
SESSION 13 SESSION 14
DB RECOVERY/RESTART
EFFICIENT PROGRAMMING TIPS COMMON IMS ABENDS
page number 2
SESSION 1
page number
page number
Continued ...
-- Level 1
SEGMENT OCCURRNCES
B3 B1 B2
-- Level 2
SEGMENT
TWIN SEGMENTS
DEPENDENT SEGMENTS
page number
Continued ...
SEGMENT TYPE vs SEGMENT OCCURRENCE SEGMENT OCCURRENCE IS A PARTICULAR INSTANCE OF A SEGMENT TYPE
page number
Continued ...
SEARCH FIELDS
KEY FIELD IS USED TO SEQUENCE DATABASE AND IT CAN NOT BE CHANGED
page number
Continued ...
ROOT PARENT
A SEGMENT WITHOUT PARENT A SEGMENT WITH ONE OR MORE DEPENDENT SEGMENTS DIRECTLY UNDER IT A SEGMENT WHICH IS DIRECTLY DEPENDENT ON ANOTHER
CHILD
SEGMENT ALL SEGMENTS UNDER A PARTICULAR SEGMENT OF THE DATABASE ALL OCCURRENCES (2 OR MORE) OF A SEGMENT TYPE UNDER A PARENT OCCURRENCES OF DIFFERENT SEGMENT TYPES UNDER A PARENT
DEPENDENT
TWIN
SIBLINGS
page number
Continued ...
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?
page number
Continued ...
page number
10
Continued ...
page number
11
Continued ...
page number
12
Continued ...
DL/I FORMS BRIDGE BETWEEN APPLICATION PROGRAM AND IMS DATABASE DB PCB interface
App Prog
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
DL/I
DC
Database
Terminal
page number
13
Continued ...
ONLINE
BATCH
MPP
BMP
DL/I
page number
14
Continued ...
BATCH DL/I TRUE BATCH PROCESSING NO DATA COMMUNICATION SERVICES ARE USED DATABASES ACCESSED MUST BE OFFLINE
MPP (MESSAGE PROCESSING PROGRAM) TRUE ONLINE PROCESSING TRANSACTION ARE ENTERED AT TERMINAL AND STORED IN MESSAGE QUEUE DATABASES ACCESSED MUST BE ONLINE
page number
15
Continued ...
TWO TYPES
page number
16
SESSION 2
page number
17
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 number
18
Continued ...
DBD
DATASET SEGM FIELD
page number
19
Continued ...
PRINT DBD DATASET SEGM FIELD SEGM FIELD SEGM FIELD FIELD DBDGEN FINISH END
NOGEN NAME=VENDOR,ACCESS=HDAM DD1=VEND,DEVICE=3380 NAME=VENSEG,PARENT=0,BYTES=10 NAME=(VENCODE,SEQ,U),BYTES=10,START=1,TYPE=C NAME=ITEMSEG,PARENT=VENSEG,BYTES=5 NAME=(ITEMCODE,SEQ,U),BYTES=5,START=1,TYPE=C NAME=LOCNSEG,PARENT=ITEMSEG,BYTES=9 NAME=(LOCNCODE,SEQ),BYTES=3,START=1,TYPE=C NAME=ORDDATE,BYTES=6,START=4,TYPE=C
page number
20
Continued ...
TYPE C P
Z
H F
Zoned Decimal
Half Word Binary Full Word Binary
S9
9(4) COMP 9(8) COMP
page number
21
Continued ...
page number
22
Continued ...
page number
23
Continued ...
PCB GIVES LOGICAL VIEW OF A DATABASE PORTION OF DATABASE THAT THE PROGRAM PROCESSES IS CALLED APPLICATION DATA STRUCTURE DATABASE PCB
A
page number
24
Continued ...
PRINT
PCB
NOGEN
TYPE=DB,DBDNAME=VENDOR,KEYLEN=15,PROCOPT=LS
PSBGEN
END KEYLEN IS THE LENGTH OF CONCATENATED KEY
page number
25
Continued ...
PROCOPTS IN PSB DEFINES SECURITY LEVEL FOR THE PROGRAM PROCOPT G I R D A L LS K O P Get or Read Insert Replace Delete All Options (G, I, R, D) DESCRIPTION
Initial Load
Sequential Initial Load
page number
26
Continued ...
APPLICATION PROGRAM CAN HAVE MULTIPLE VIEWS OF A DATABASE BY USING SEPARATE PCBS FOR A SINGLE DATABASE
PCB3
PCB4
DBD1
DBD2
DBD3
page number
27
Continued ...
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
page number
28
Continued ...
WORKDATA
DEPTDATA
BENDATA
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
page number
29
SESSION 3
page number
30
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
page number
31
Continued ...
page number
32
Continued ...
UNQUALIFIED
page number
33
Continued ...
WORKING-STORAGE-SECTION.
..
01 HISTORY-SSA. 05 05 SEGMENT-NAME PIC X(8) VALUE HISTORY . FILLER PIC X(1) VALUE SPACE.
H I S T O R Y
H I S T O R Y * -
page number
34
Continued ...
WORKING-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.
page number
35
Continued ...
OPERATOR
SYMBOLS
Equal to
Not Equal to Less than
EQ, = , =
NE, =, = LT, < , <
page number
36
Continued ...
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
page number
37
SESSION 4
page number
38
page number
39
Continued ...
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 UNIQUE GN GET NEXT GNP GET NEXT WITHIN PARENT GHU GET HOLD UNIQUE GHN GET HOLD NEXT GHNP GET HOLD NEXT WITHIN PARENT DLET DELETE REPL REPLACE ISRT INSERT XRST EXTENDED RESTART CHKP CHECKPOINT
page number
40
Continued ...
page number
41
Continued ...
page number
42
Continued ...
THE SEQUENCE IN WHICH PCB MASKS ARE DEFINED IN LINKAGE SECTION NEED NOT BE SAME AS THAT IN PSBGEN MACRO
page number
43
Continued ...
PROCEDURE DIVISION. ENTRY DLITCBL USING DB-PCB-1, DB-PCB-2. <= Sequence should match that of :::::::::::: :::::::::::: CALL CBLTDLI USING WS-PARM-COUNT, WS-FUNCTION-CODE, DB-PCB-MASK, IO-AREA, SSA-1, SSA-2, SSA-3, . :::::::::: :::::::::: GOBACK. <= Optional PSB Macro
page number
44
Continued ...
RUN JCL
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
DL/I
IMS DATABASE
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
DLITCBL
CBLTDLI
GOBACK
APPLICATION PROGRAM
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 number
45
SESSION 5
DL/I CALLS
page number
46
DL/I CALLS
DL/I RETRIEVAL CALLS
ONE OF THE FOLLOWING FUNCTIONS WILL BE USED IN A RETRIEVAL DL/I CALL
GU
GN GNP
- GET UNIQUE
- GET NEXT - 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 GHN - GET HOLD UNIQUE - GET HOLD NEXT
page number
47
Continued ...
DL/I CALLS
GET UNIQUE
GU , PCB-MASK, SEGMENT-IO-AREA SEGMENTA*-(AKEY=1) SEGMENTB*-(BKEY=2) SEGMENTD*-(DKEY=6) AFTER THE CALL SEGMENTD WITH DKEY=6 WILL BE IN SEGMENT-IO-AREA
1
AKEY EKEY
7 2
11
BKEY
6 4 3 5 9 10
CKEY
DKEY
FKEY
Continued ...
DL/I CALLS
page number
49
Continued ...
DL/I CALLS
GET NEXT
FRONT TO BACK
LEFT TO RIGHT
7 2
11
EKEY
BKEY
GA
6 4 3 GK 5 9 10
CKEY
DKEY
FKEY
page number
50
DL/I CALLS
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
AKEY
7 2
11
EKEY
BKEY
6 4 3 5 9 10
CKEY
DKEY
FKEY
EXERCISE: WHAT WILL BE THE RESULTS OF FOUR CONSEQUETIVE GNs AFTER EKEY=8 IS RETRIEVED
page number
51
Continued ...
DL/I CALLS
GET NEXT WITHIN PARENT
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
1
AKEY
7 2
11
EKEY
BKEY
6
4 3 5 9
10
CKEY
DKEY
FKEY
page number
52
Continued ...
DL/I CALLS
WHAT WILL BE THE OUTPUT IF GNP IS DONE 4 MORE TIMES IN PREVIOUS EXAMPLE?
page number
53
Continued ...
DL/I CALLS
PATH CALLS EXERCISE
CALL
WHAT WILL BE THE RESULT AFTER SUCCESSFUL COMPLETION OF THE ABOVE CALL?
1
7 2
11
EKEY
BKEY
6
4 3 5 9
10
CKEY
DKEY
FKEY
page number
54
Continued ...
DL/I CALLS
GET HOLD CALLS (GHU/GHN/GHNP)
page number
55
Continued ...
DL/I CALLS
DELETE/REPLACE CALLS
MUST HAVE BEEN OBTAINED WITH A GET HOLD CALL (GHU, GHN, GHNP)
page number
56
Continued ...
DL/I CALLS
DELETE CALL
SEGMENTB*-(BKEY=2)
CALL CBLTDLI USING DLET, LS-PCB-MASK
1
7 2
11
EKEY
BKEY
6
4 3 5 9
10
CKEY
DKEY
page number
57
Continued ...
DL/I CALLS
REPLACE (REPL)
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
page number
58
Continued ...
DL/I CALLS
7 2
11
EKEY
BKEY
6
10
CKEY
DKEY
FKEY
page number
59
Continued ...
DL/I CALLS
INSERT (ISRT)
LOAD MODE
UPDATE MODE LOAD MODE:
page number
60
Continued ...
DL/I CALLS
INSERT (ISRT)
UPDATE MODE:
COMMAND CODES
F OR L D - OVERRIDES INSERT RULE - INSERT PATH OF SEGMENTS
page number
61
Continued ...
DL/I CALLS
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
1 99 7 2 11
EKEY
BKEY
6
10
CKEY
DKEY
FKEY
page number
62
Continued ...
DL/I CALLS
SOME COMMON STATUS CODES
DESCRIPTION SUCCESSFUL CALL CALL HAS SSA WITH A HIERARCHICAL ERROR ERROR WHILE OPENING DATABASE. COMMON CAUSE IS LOADING A DATABASE WHICH IS NOT EMPTY OR DO OTHER THAN LOAD PROCESSING ON EMPTY DATABASE CALL SPECIFIES AN INVALID SSA FIELD NAMED IN A QUALIFIED SSA IS NOT CORRECT SEQUENCE FIELD IS CHANGED CALL IS NOT PRECEDED BY A SUCCESSFUL GET HOLD CALL A HIGHER LEVEL SEGMENT IS RETRIEVED IN SEQUENTIAL PROCESSING
CALL TYPES ALL CALLS ALL GET CALLS ISRT ALL CALLS
AJ AK DA DJ GA
ALL CALLS ALL GET CALLS ISRT REPL DLET REPL GN, GNP
page number
63
Continued ...
DL/I CALLS
SOME COMMON STATUS CODES
STATUS CODE GB GE GK GP II
DESCRIPTION END OF DATA BASE WAS REACHED DURING SEQUENTIAL RETRIEVAL SPECIFIED SEGMENT NOT FOUND A SEGMENT OF DIFFERENT TYPE, BUT AT THE SAME LEVEL IS RETRIEVED DURING SEQUENTIAL PROCESSING PROPER PARENTAGE IS NOT IN EFFECT DUPLICATE INSERT
CALL TYPES GN ALL GET CALLS ISRT GN, GNP GNP ISRT
page number
64
SESSION 6
COMMAND CODES
page number
65
COMMAND CODES
ONE OR MORE COMMAND CODES CAN BE USED IN SSA EACH COMMAND CODE IS REPRESENTED BY A SINGLE CHARACTER
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 number
66
Continued ...
COMMAND CODES
COMMAND CODE D
DESCRIPTION
RETRIEVE A PATH
FIRST OCCURRENCE OF SEGMENT TYPE LAST OCCURRENCE OF SEGMENT TYPE MAINTAIN CURRENT POSITION AT THIS LEVEL MAINTAIN CURRENT POSITION AT THIS AND HIGHER LEVELS DO NOT REPLACE THIS SEGMENT USE A CONCATENATED KEY ESTABLISH PARENTAGE AT THIS LEVEL NULL/IGNORE
F
L U V N C P -
page number
67
Continued ...
COMMAND CODES
COMMAND CODE D
page number
68
Continued ...
COMMAND CODES
COMMAND CODE D
SEGMENT IN THE LAST SSA WILL ALWAYS BE RETRIEVED EVEN IF SSA DOES
IN PATH
page number
69
Continued ...
COMMAND CODES
PATH CALLS EXAMPLE
SEGMENTB*D(BKEY=2)
SEGMENTD*-(DKEY=5) AFTER THE CALL SEGMENTS #1, #2 & #5 WILL BE RETURNED IN I/O AREA
1
AKEY
7 2
11
EKEY
BKEY
6
4 3 5 9
10
CKEY
DKEY
FKEY
page number
70
Continued ...
COMMAND CODES
COMMAND CODE F
EXAMPLE:
SEGMENT 2 CAN BE RETRIEVED AFTER SEGMENT 4 BY USING CALL CBLTDLI USING GNP LS-PCB-MASK, WS-SEG-IO-AREA,
SEGMENTB*F
1
SEGMENTA
4 2 3
SEGMENTB
SEGMENTC
page number
71
Continued ...
COMMAND CODES
COMMAND CODE L
EXAMPLE:
SEGMENT 4 CAN BE RETRIEVED AFTER SEGMENT 2 BY USING CALL CBLTDLI USING GNP LS-PCB-MASK, WS-SEG-IO-AREA,
SEGMENTC*L
1
SEGMENTA
4 2 3
SEGMENTB
SEGMENTC
page number
72
Continued ...
COMMAND CODES
COMMAND CODE N
page number
73
Continued ...
COMMAND CODES
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*P SEGMENTC WILL RETRIEVE SEGMENTC TO I/O AREA BUT PARENTAGE WILL BE SET TO SEGMENTA
1
SEGMENTA
SEGMENTB
SEGMENTC
page number
74
SESSION 7
page number
75
Continued ...
page number
76
Continued ...
GIVE SYNTAX OF DL/I CALLS FOR THE FOLLOWING SCENARIOS 1. GET THE FIRST OFFERING OCCURRENCE WHERE THE LOCATION IS CHENNAI
page number
77
Continued ...
6. ADD A STUDENT OCCURRENCE FOR THE COURSE IMS OFFERED ON DATE 3/26/02
page number
78
Continued ...
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
page number
79
SESSION 8
page number
80
Access Methods
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 number
81
Continued ...
page number
82
Continued ...
00 -FF
00
SEGMENT DATA
Segment Identifier
HSAM DBDGEN
DBD NAME=EXHSAM,ACCESS=HSAM FIELD=.
page number
83
Continued ...
HISAM / 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
page number
84
Continued ...
RBA
00 -FF
00
SEGMENT DATA
Segment Identifier
HISAM DBDGEN
DBD NAME=EXHISAM,ACCESS=(HISAM,VSAM) FIELD=.
page number
85
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
POINTERS
SEGMENT DATA
Segment Identifier
page number
86
Continued ...
HDAM DBDGEN
DBD NAME=EXHDAM,ACCESS=(HDAM,VSAM),RMNAME=(DFSHDC10,,10)
DATASET DD1=EXHDAM,DEVICE=3380
SEGM
FIELD SEGM .
NAME=SEG1,BYTES=48,POINTER=TWIN
. NAME=SEG2,PARENT=((SEG1,SNGL)),BYTES=32,POINTER=TWIN
page number
87
Continued ...
HIDAM SIMILAR TO HDAM AND IN ADDITION INDEX TO ROOT SEGMENTS WILL BE STORED
page number
88
Continued ...
GSAM 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
page number
89
SESSION 9
MULTIPLE PROCESSING
page number
90
MULTIPLE PROCESSING
MULTIPLE PROCESSING MEANS A PROGRAM CAN HAVE MORE THAN ONE POSITION IN A SINGLE DATABASE AT THE SAME TIME
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
page number
91
Continued ...
MULTIPLE PROCESSING
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
page number
92
Continued ...
MULTIPLE PROCESSING
EXAMPLE
CALLS GN SEGMENTB, GN SEGMENTC, GN SEGMENTB, GN SEGMENTC
A1 A2
C13
B22
C22
B21
C21
page number
93
SESSION 10
SECONDARY INDEXING
page number
94
SECONDARY INDEXING
ALLOWS YOU TO ACCESS DB IN A SEQUENCE OTHER THAN PRIMARY SEQUENCE
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
page number
95
SECONDARY INDEXING
HSAM
LIMITATIONS: 32 SECONDARY INDICES ON ONE SEGMENT TYPE 1000 SECONDARY INDICES FOR A DATABASE
page number
96
Continued ...
SECONDARY INDEXING
Indexed Database
Customer
Secondary Index DB
Prefix | Data
Pointer Invoice No
Index
Source Segment
Buyer Receivable
Payment
Adjustment
Line Item
page number
97
Continued ...
SECONDARY INDEXING
SECONDARY DATA STRUCTURE
Receivable
Ship-to
Payment
Adjustment
Line Item
Customer
Buyer
page number
98
Continued ...
SECONDARY INDEXING
Indexed Database
Customer
Secondary Index DB
Prefix | Data
Index Target Segment
Pointer Invoice No
Ship-to
Index
Source Segment
Buyer Receivable
Payment
Adjustment
Line Item
page number
99
Continued ...
SECONDARY INDEXING
TEACHER
EMPNUM NAME
STUDENT
EMPNUM NAME GRADE
page number
100
Continued ...
SECONDARY INDEXING
PSB MACRO
PCB SENSEG SENSEG SENSEG TYPE=DB,DBDNAME=EDUCPDBD,KEYLEN=15 PROCOPT=G,PROCSEQ=TXDBD NAME=COURSE NAME=OFFERING,PARENT=COURSE NAME=STUDENT,PARENT=OFFERING
SYNTAX:
GU
COURSE (XTITLE=DYNAMICS)
page number
101
Continued ...
SECONDARY INDEXING
WHAT HAPPENS IF PROCSEQ=TXDBD IS NOT USED? DL/I BY DEFAULT USES PRIMARY PROCESSING SEQUENCE
page number
102
Continued ...
SECONDARY INDEXING
SYNTAX:
GU
COURSE (XLOC=CHENNAI)
page number
103
SESSION 11
LOGICAL RELATIONSHIPS
page number
104
LOGICAL RELATIONSHIPS
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 RELATIONSHIPS UNIDIRECTIONAL LOGICAL RELATIONSHIP BIDIRECTIONAL PHYSICALLY PAIRED LOGICAL RELATIONSHIP BIDIRECTIONAL VIRTUALLY PAIRED LOGICAL RELATIONSHIP
page number
105
Continued ...
LOGICAL RELATIONSHIPS
Logical Parent ORDER Database Physical Parent ORDER Logical Relationship of DETAIL
of DETAIL
STOCK
DETAIL
SHIPMENT
page number
106
Continued ...
LOGICAL RELATIONSHIPS
ORDER/PART
Logical Database
ORDER
PART /ORDER
Logical Database
PART
STOCK
DETAIL
ORDER
DETAIL
PART
SHIPMENT
SHIPMENT
STOCK
page number
107
SESSION 12
DB RECOVERY / RESTART
page number
108
DATABASE RECOVERY
WHY?
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
page number
109
Continued ...
DATABASE RECOVERY
HOW?
ONLINE RECOVERY PROCESS IMS DOES DYNAMIC BACKOUT USING THE LOG INFORMATION FOR DL/I PROGRAMS FOR BMP PROGRAMS UPDATES ARE AUTOMATICALLY BACKED OUT TO THE LAST CHECKPOINT BATCH RECOVERY PROCESS
FORWARD RECOVERY
BACKWARD RECOVERY / BATCH BACK OUT
page number
110
Continued ...
DATABASE RECOVERY
page number
111
Continued ...
DATABASE RECOVERY
Continued ...
DATABASE RECOVERY
FORWARD 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 DATASETS LOG DATASETS
page number
113
Continued ...
DATABASE RECOVERY
BACKWARD RECOVERY
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 INPUTS LOG DATASETS DATABASES WHOSE UPDATES ARE TO BACKED OUT CHECKPOINT ID WARNING: DO NOT USE CHECKPOINT ID WHILE BACKING OUT BMP. IT TAKES BY DEFAULT THE LAST CHECKPOINT ISSUED. OUTPUTS BACKED OUT DATABASES LOG DATASETS
page number
114
Continued ...
DATABASE RECOVERY
//STEP1 // // // // // //*
page number
115
Continued ...
DATABASE RECOVERY
page number
116
Continued ...
DATABASE RECOVERY
RESTART CALL(XRST)
USED TO RESTART A PROGRAM AFTER ABNORMAL TERMINATION
RESTART FROM SPECIFIC CHECKPOINT ID TIME/DATESTAMP
IO-AREA-LEN1, IO-AREA1
page number
117
Continued ...
DATABASE RECOVERY
page number
118
SESSION 13
page number
119
PROGRAMMING TIPS
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
page number
120
Continued ...
PROGRAMMING TIPS
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
page number
121
SESSION 14
page number
122
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
page number
123
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
page number
124
page number
125
page number
126
APPLICATION PROGRAM TRIED TO USE A DATABASE THAT WAS NOT AVAILABLE FOR ACCESS AND/OR UPDATE. DFS3303I MESSAGE ACCOMPANIES THIS ABEND
SOLUTION
page number
127
THANK YOU
Prepared by
Alexander Thankachan S&D Customer Fulfillment.
page number
128