Escolar Documentos
Profissional Documentos
Cultura Documentos
SESSION 1
SESSION 2
SESSION 3
SESSION 4
SESSION 5
DL/I CALLS
SESSION 6
COMMAND CODES
SESSION 7
SESSION 8
SESSION 9
MULTIPLE PROCESSING
SESSION 10
SECONDARY INDEXING
SESSION 11
LOGICAL RELATIONSHIP
SESSION 12
DB RECOVERY/RESTART
SESSION 13
SESSION 14
SESSION 1
IMS GENERAL CONCEPTS
Continued ...
HIERARCHICAL STRUCTURE
ROOT SEGMENT (PARENT)
-- Level 1
A1
SEGMENT OCCURRNCES
B3
B1
B2
TWIN SEGMENTS
D1
-- Level 2
SEGMENT
DEPENDENT SEGMENTS
Continued ...
Continued ...
Continued ...
TYPES OF SEGMENTS
ROOT
PARENT
CHILD
DEPENDENT
TWIN
SIBLINGS
Continued ...
EXERCISE - 1
1 SUPPLIER
3 ORDER
2 BRANCH
4 ITEM
5
PAYMENT
Continued ...
DATABASE RECORD
ONE OCCURRENCE OF A ROOT SEGMENT ALONG WITH ALL ITS DEPENDENT
SEGMENTS
10
Continued ...
EXERCISE-2
11
Continued ...
12
Continued ...
IMS ENVIRONMENT
DL/I FORMS BRIDGE BETWEEN
APPLICATION PROGRAM AND IMS
DATABASE
App Prog
DB PCB
interface
I/O PCB
interface
DL/I
DC
Database
Terminal
13
Continued ...
IMS ENVIRONMENT
MODES OF PROCESSING
BATCH DL/I MODE
MPP MODE
BMP MODE
ONLINE
MPP
BATCH
BMP
DL/I
14
Continued ...
IMS ENVIRONMENT
BATCH DL/I
TRUE BATCH PROCESSING
NO DATA COMMUNICATION SERVICES ARE USED
DATABASES ACCESSED MUST BE OFFLINE
15
Continued ...
IMS ENVIRONMENT
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
16
SESSION 2
DL/I CONTROL BLOCKS
17
18
Continued ...
DESCRIPTION
DBD
DATASET
SEGM
FIELD
19
Continued ...
SAMPLE DBDGEN
PRINT ON NOGEN
DBD NAME=SUPLRDBD,ACCESS=(HISAM,VSAM)
DATASET DD1=SUPPLR01,OVFLW=SUPPLR02,
DEVICE=3390,SIZE=(5120,1024)
SEGM NAME=SUPPLIER,PARENT=0,BYTES=38
FIELD NAME=(SUPLCODE,SEQ,U),BYTES=6,START=1,TYPE=C
FIELD NAME=SUPLNAME,BYTES=12,START=7,TYPE=C
SEGM NAME=BRANCH,PARENT=SUPPLIER,BYTES=38
FIELD NAME=(BRNAME,SEQ,M),BYTES=12,START=1,TYPE=C
FIELD NAME=BRLOCN,BYTES=6,START=33,TYPE=C
20
SEGM NAME=ORDER,PARENT=SUPPLIER,BYTES=52
FIELD NAME=(ORDRNUMB,SEQ,U),BYTES=6,START=1,TYPE=C
FIELD NAME=BALAMT,BYTES=4,START=49,TYPE=P
FIELD NAME=ORDRAMT,BYTES=4,START=45,TYPE=P
SEGM NAME=ITEM,PARENT=ORDER,BYTES=15
FIELD NAME=(ITEMNUMB,SEQ,U),BYTES=4,START=1,TYPE=C
SEGM NAME=PAYMENT,PARENT=ORDER,BYTES=30
FIELD NAME=(CHEQNUMB,SEQ,U),BYTES=6,START=1,TYPE=C
FIELD NAME=AMOUNT,BYTES=4,START=7,TYPE=P
FIELD NAME=AMOUNT,BYTES=4,START=7,TYPE=P
DBDGEN
FINISH
END
21
Continued ...
TYPE
DESCRIPTION
COBOL PICTURE
Character (Default)
Packed Decimal
COMP-3
Zoned Decimal
S9
9(4) COMP
9(8) COMP
22
Continued ...
23
Continued ...
24
Continued ...
2 BRANCH
3 ORDER
4 ITEM
5
PAYMENT
25
PCBs
1 SUPPLIER
1 SUPPLIER
3 ORDER
2 BRANCH
4 ITEM
1 SUPPLIER
5
PAYMENT
2 BRANCH
1 SUPPLIER
3 ORDER
4 ITEM
3 ORDER
5
PAYMENT
26
Continued ...
SAMPLE PSBGEN
PRINT ON NOGEN
PCB TYPE=TP,MODIFY=YES,EXPRESS=YES
PCB TYPE=DB,DBDNAME=SUPLRDBD,KEYLEN=18,PROCOPT=AP
SENSEG NAME=SUPPLIER,PARENT=0
SENSEG NAME=BRANCH,PARENT=SUPPLIER
SENSEG NAME=ORDER,PARENT=SUPPLIER
SENSEG NAME=ITEM,PARENT=ORDER
SENSEG NAME=PAYMENT,PARENT=ORDER
PCB TYPE=DB,DBDNAME=SUPLRDBD,KEYLEN=18,PROCOPT=AP
SENSEG NAME=SUPPLIER,PARENT=0
SENSEG NAME=BRANCH,PARENT=SUPPLIER
27
28
Continued ...
PROCOPT
G
Get or Read
Insert
Replace
Delete
Initial Load
LS
Path Calls
29
Continued ...
PSB
PCB1
PCB2
PCB3
DBD1
PCB4
DBD2
DBD3
30
Continued ...
PCB
TYPE=DB,DBDNAME=SUPLRDBD,KEYLEN=16,PROCOPT=AP
SENSEG NAME=SUPPLIER,PARENT=0
SENSEG NAME=ORDER,PARENT=SUPPLIER
SENSEG NAME=ITEM,PARENT=ORDER
PSBGEN PSBNAME=SUPLRPSB,LANG=COBOL
END
Continued ...
EMPDATA
WORKDATA
DEPTDATA
BENDATA
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
32
SESSION 3
SEGMENT SEARCH ARGUMENT
33
34
Continued ...
35
Continued ...
TYPES OF SSAS
UNQUALIFIED
SEARCHES FOR A SPECIFIC SEGMENT TYPE
QUALIFIED
SEARCHES FOR A SPECIFIC SEGMENT OCCURRENCE
MORE EFFICIENT THAN UNQUALIFIED SSA
36
Continued ...
UNQUALIFIED SSA
WORKING-STORAGE-SECTION.
WORKING-STORAGE-SECTION
..
01 SUPPLIER-SSA.
05 FILLER
PIC X(8) VALUE 'SUPPLIER'.
05 FILLER
PIC XX
VALUE '*-'.
05 BG-QUALIFY PIC X
VALUE '('.
Blank in 9th position or * in 9th position - in position 10 and a blank in position 11
S U P P L I E R
S U P P L I E R *
37
Continued ...
QUALIFIED SSA
WORKING-STORAGE-SECTION.
WORKING-STORAGE-SECTION
01 SUPPLIER-SSA.
05 FILLER
05 FILLER
05 BG-QUALIFY
05 FILLER
05 FILLER
05 SUPLCODE
05 FILLER
PIC X(8)
PIC XX
PIC X
PIC X(8)
PIC XX
PIC X(6)
PIC X
VALUE 'SUPPLIER'.
VALUE '*-'.
VALUE '('.
VALUE 'SUPLCODE'.
VALUE '= '.
VALUE SPACES.
VALUE ')'.
..
SUPPLIER*-(SUPLCODE= S00001)
38
PROCEDURE DIVISION.
..
MOVE S00001 TO SUPLCODE.
CALL 'CBLTDLI' USING CALL-FUNC
SUPPLIER-PCB
SUPPLIER-IO-AREA
SUPPLIER-SSA
equivalent to
MOVE S00001 TO SUPLCODE.
CALL 'CBLTDLI' USING CALL-FUNC
SUPPLIER-PCB
SUPPLIER-IO-AREA
SUPPLIER*-(SUPLCODE= S00001)
39
Continued ...
OPERATOR
SYMBOLS
Equal to
EQ, = , =
Not Equal to
NE, =, =
Less than
Greater than
40
Continued ...
COMMAND CODES
COMMAND CODES INCREASE THE FUNCTIONALITY OF IMS CALLS
COMMAND CODES ARE DESIGNATED BY AN ASTERISK * FOLLOWED BY
CHARACTERS
41
SESSION 4
COBOL BASICS FOR IMS
42
IDENTIFICATION DIVISION
FUNCTION CODES
ENVIRONMENT DIVISION
I/O AREA
DATA DIVISION
FILE SECTION
WORKING STORAGE SECTION
LINKAGE SECTION
PROCEDURE DIVISION
43
Continued ...
FUNCTION CODES
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
44
Continued ...
INPUT/OUTPUT AREA
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
45
Continued ...
01 PCB-PAYMENT.
05 DBN-PAYMENT
05 LEV-PAYMENT
05 STC-PAYMENT
05 PRO-PAYMENT
05 RES-PAYMENT
05 SGN-PAYMENT
05 LKF-PAYMENT
05 NOS-PAYMENT
05 KFB-PAYMENT
PIC X(8).
PIC XX.
PIC XX.
PIC X(4).
PIC S9(5)
PIC X(8).
PIC S9(5)
PIC S9(5)
PIC X(100).
COMP.
COMP.
COMP.
(Depends on the concatenated key)
46
Continued ...
47
Continued ...
PROCEDURE DIVISION
PROCEDURE DIVISION.
DIVISION
ENTRY DLITCBL USING SUPPLIER-PCB, ORDER-PCB,. <= Sequence should
match that of PSB Macro
::::::::::::
CALL CBLTDLI USING CALL-FUNC
SUPPLIER-PCB
PAYMENT-IO-AREA
SUPPLIER-SSA
ORDER-SSA
PAYMENT-SSA
::::::::::
GOBACK.
48
Continued ...
RUN JCL
PROGRAM NAME
PSB NAME
IMS
DATABASE
CBLTDLI
GOBACK
DLITCBL
DL/I
APPLICATION
PROGRAM
SESSION 5
DL/I CALLS
50
DL/I CALLS
DL/I RETRIEVAL CALLS
ONE OF THE FOLLOWING FUNCTIONS WILL BE USED IN A RETRIEVAL DL/I CALL
GU
- GET UNIQUE
GN
- GET NEXT
GNP
GHN
DL/I CALLS
Continued ...
GET UNIQUE
CALL CBLTDLI USING
GU , PCB-MASK,
SEGMENT-IO-AREA
(SUPPLIER-SSA)--------------->SUPPLIER*-(SUPLCODE= S00001)
(ORDER-SSA)------------------->ORDER *-(ORDRNUMB=O00001)
(ITEM-SSA)----------------------->ITEM
*-(ITEMNUMB=I003)
AFTER THE CALL SEGMENTD WITH ITEMNUMB=I003 WILL BE IN SEGMENT-IO-AREA
SUPPLIER
S00001
BRANCH
HABIBULLAH
CATHEDRAL
ITEM
O00001
I002
I001
ORDER
I003
C12346
PAYMENT
C12345
52
DL/I CALLS
Continued ...
53
DL/I CALLS
Continued ...
GET NEXT
RETREIVAL SEQUENCE
TOP TO BOTTOM
FRONT TO BACK
AKEY
LEFT TO RIGHT
EKEY
11
BKEY
GA
10
GK
CKEY
DKEY
FKEY
54
DL/I CALLS
Continued ...
GN , SUPPLIER-PCB,
ITEM-IO-AREA,
(SUPPLIER-SSA)--------------->SUPPLIER*-(SUPLCODE= S00001)
(ORDER-SSA)------------------->ORDER *-(ORDRNUMB=O00001)
(ITEM-SSA)----------------------->ITEM
*-(ITEMNUMB=I003)
AFTER THE CALL SEGMENTE WITH ITEMNUMB= I003 WILL BE IN PROGRAM I/O
AREA
SUPPLIER
S00001
BRANCH
HABIBULLAH
CATHEDRAL
ITEM
ORDER
O00001
I002
I001
I003
C12346
PAYMENT
C12345
EXERCISE: WHAT WILL BE THE RESULTS OF FOUR CONSEQUETIVE GNs AFTER ITEM=I003 IS
RETRIEVED
55
DL/I CALLS
Continued ...
*-(ORDRNUMB=O00001)
SUPPLIER
BRANCH
O00002
HABIBULLAH
CATHEDRAL
ITEM
I001
ORDER
O00001
I002
C12345
C12346
PAYMENT
56
DL/I CALLS
Continued ...
57
DL/I CALLS
Continued ...
*-(ORDRNUMB= O00001)
SUPPLIER
BRANCH
O00002
HABIBULLAH
CATHEDRAL
ITEM
I001
ORDER
O00001
I002
C12345
C12346
PAYMENT
58
DL/I CALLS
Continued ...
59
DL/I CALLS
Continued ...
DELETE/REPLACE CALLS
MUST HAVE BEEN OBTAINED WITH A GET HOLD CALL (GHU, GHN, GHNP)
60
DL/I CALLS
Continued ...
DELETE CALL
CALL CBLTDLI USING GHU ,SUPPLIER-PCB, SEGMENT-IO-AREA
SUPPLIER*-(SUPLCODE=S00001)
ORDER
*-(ORDRNUMB=O00001)
SUPPLIER
BRANCH
O00002
HABIBULLAH
CATHEDRAL
ORDER
O00001
PAYMENT
ITEM
I001
I002
C12346
C12345
DL/I CALLS
Continued ...
REPLACE (REPL)
UPDATE CONTENTS OF A SEGMENT
KEY FIELD SHOULD 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
62
DL/I CALLS
Continued ...
SUPPLIER
BRANCH
O00002
HABIBULLAH
CATHEDRAL
ORDER
O00001
I001
ITEM
I002
C12346
C12345
PAYMENT
63
DL/I CALLS
Continued ...
INSERT (ISRT)
TWO MODES OF INSERT
LOAD MODE
UPDATE MODE
LOAD MODE:
MODE
FOR LOAD MODE PROCOPT = L or LS MUST BE SPECIFIED IN PSB
PROCOPT=L LOADS DATABASE BUT NOT NECESSARILY IN
SEQUENTIAL ORDER
64
DL/I CALLS
Continued ...
INSERT (ISRT)
UPDATE MODE:
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 CODES
F OR L
65
DL/I CALLS
Continued ...
(SUPPLIER-SSA)
SUPPLIER*-(SUPLCODE=S00001)
(ORDER-SSA)
ORDER
*-(ORDRNUMB=O00001)
(ITEM-SSA)
ITEM
*- ITEMNUMB=IOO3)
SUPPLIER
BRANCH
O00002
HABIBULLAH
CATHEDRAL
ORDER
O00001
C12346
I003
I001
I002
C12345
PAYMENT
ITEM
66
DL/I CALLS
Continued ...
DESCRIPTION
CALL TYPES
SPACES
SUCCESSFUL CALL
ALL CALLS
AC
AI
ALL CALLS
AJ
ALL CALLS
AK
DA
REPL
DJ
DLET
REPL
GA
GN, GNP
67
DL/I CALLS
Continued ...
DESCRIPTION
CALL TYPES
GB
GN
GE
GK
GN, GNP
GP
GNP
II
DUPLICATE INSERT
ISRT
68
SESSION 6
COMMAND CODES
69
COMMAND CODES
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
S U P P L I E R *
70
COMMAND CODES
Continued ...
COMMAND CODE
DESCRIPTION
RETRIEVE A PATH
NULL/IGNORE
71
COMMAND CODES
Continued ...
COMMAND CODE D
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
72
COMMAND CODES
Continued ...
COMMAND CODE D
SEGMENT IN THE LAST SSA WILL ALWAYS BE RETRIEVED EVEN IF SSA DOES
NOT HAVE COMMAND CODE D
FOR ISRT CALLS COMMAND CODE D DESIGNATES THE FIRST SEGMENT TO
BE INSERTED
FOR ISRT CALLS SSAS FOR LOWER LEVEL SEGMENTS NEED NOT HAVE D
COMMAND CODE, D COMMAND CODE IS PROPAGATED TO ALL SPECIFIED
SEGMENTS AUTOMATICALLY
I/O AREA USED SHOULD BE BIG ENOUGH TO ACCOMMODATE ALL SEGMENTS
IN PATH
73
COMMAND CODES
Continued ...
*D(ORDRNUMB=O00001)
ITEM
*-(ITEMNUMB=I002)
AFTER THE CALL SEGMENTS S00001, O00001 & I002 WILL BE RETURNED IN I/O
AREA
S00001
SUPPLIER
BRANCH
O00002
HABIBULLAH
CATHEDRAL
ORDER
O00001
C12346
I003
I001
I002
C12345
PAYMENT
ITEM
74
COMMAND CODES
Continued ...
COMMAND CODE F
CALL PROCESSES FIRST OCCURRENCE OF THE SEGMENT TYPE
EXAMPLE:
SEGMENT I001(ITEM) CAN BE RETRIEVED AFTER C12346(PAYMENT) BY USING
CALL CBLTDLI USING GNP
SUPPLIER-PCB, ITEM-IO-AREA,
ITEM
O0001
*F
ORDER
C12346
I002
I001
C12345
ITEM
PAYMENT
75
COMMAND CODES
Continued ...
COMMAND CODE L
CALL PROCESSES LAST OCCURRENCE OF THE SEGMENT TYPE
EXAMPLE:
SEGMENT CAN BE RETRIEVED AFTER SEGMENT 2 BY USING
CALL CBLTDLI USING GNP
SUPPLIER-PCB, PAYMENT-IO-AREA,
PAYMENT*L
O00001
ORDER
C12346
I002
I001
C12345
ITEM
PAYMENT
76
COMMAND CODES
Continued ...
COMMAND CODE N
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
77
COMMAND CODES
Continued ...
COMMAND CODE P
IS USED TO SET PARENTAGE TO A SPECIFIC SEGMENT IN THE HIERARCHY
USED IN SSAS
EXAMPLE:
CALL CBLTDLI USING GU SUPPLIER-PCB, ORDER-IO-AREA
SUPPLIER*P(SUPLCODE=S00001)
ORDER *-(ORDRNUMB=O00001)
WILL RETRIEVE ORDER SEGMENT TO I/O AREA BUT PARENTAGE WILL BE SET TO
SUPPLIER
S00001
SUPPLIER
O0002
CATHEDRAL
BRANCH
O00001
ORDER
78
SESSION 7
DL/I CALL EXERCISE
79
Continued ...
COURSE
COURSE#
TITLE
PREREQ
COURSE#
DESCRIPN
OFFERING
TITLE
DATE
TEACHER
EMPNUM
LOCATION
FORMAT
STUDENT
NAME
EMPNUM
NAME
GRADE
80
Continued ...
81
Continued ...
82
Continued ...
11. GET THE TEACHER OF THE FIRST OFFERING ATTENDED BY STUDENT 222222
83
SESSION 8
84
Access Methods
HS
HD
85
Continued ...
HSAM / 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
86
Continued ...
00 -FF
00
SEGMENT DATA
Segment
Identifier
HSAM DBDGEN
DBD
NAME=EXHSAM,ACCESS=HSAM
DATASET DD1=EXHSAMI,DD2=EXHSAMO,DEVICE=3380,RECORD=(512,512)
SEGM
FIELD=.
87
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
88
Continued ...
RBA
00 -FF
Delete byte
00
SEGMENT DATA
Segment
Identifier
HISAM DBDGEN
DBD
NAME=EXHISAM,ACCESS=(HISAM,VSAM)
DATASET DD1=HISAMPR,OVFLW=HISAMOV,DEVICE=3380,RECORD=(512,512)
SEGM
FIELD=.
89
Continued ...
HDAM
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
HDAM SEGMENT STORAGE IN DATABASE
Delete byte
00 -FF
00
POINTERS
SEGMENT DATA
Segment
Identifier
90
Continued ...
HDAM 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
91
Continued ...
HIDAM
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 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
.
92
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
93
SESSION 9
MULTIPLE PROCESSING
94
MULTIPLE PROCESSING
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
95
MULTIPLE PROCESSING
Continued ...
96
MULTIPLE PROCESSING
Continued ...
EXAMPLE
CALLS
A2
C13
B13
B12
B11
C12
C11
C22
B22
B21
C21
97
SESSION 10
SECONDARY INDEXING
98
SECONDARY INDEXING
ALLOWS YOU TO ACCESS DB IN A SEQUENCE OTHER THAN PRIMARY
SEQUENCE
99
SECONDARY INDEXING
100
SECONDARY INDEXING
Indexed Database
Continued ...
Secondary Index DB
Prefix | Data
Customer
Pointer Invoice No
Index pointer
segment
Index
Target Segment
Ship-to
Index
Source Segment
Buyer
Receivable
Payment
Adjustment
Line Item
101
SECONDARY INDEXING
Continued ...
Receivable
Ship-to
Customer
Payment
Adjustment
Line Item
Buyer
102
SECONDARY INDEXING
Indexed Database
Continued ...
Secondary Index DB
Prefix | Data
Customer
Index
Pointer Invoice No
Index pointer
segment
Target Segment
Ship-to
Index
Source Segment
Buyer
Receivable
Payment
Adjustment
Line Item
103
SECONDARY INDEXING
Continued ...
COURSE
COURSE#
TITLE
PREREQ
COURSE#
DESCRIPN
OFFERING
TITLE
DATE
TEACHER
EMPNUM
LOCATION
FORMAT
STUDENT
NAME
EMPNUM
NAME
GRADE
104
SECONDARY INDEXING
Continued ...
DBD
SEGM
FIELD
FIELD
LCHILD
XDFLD
DBD
SEGM
FIELD
LCHILD
NAME=EDUCPDBD
NAME=COURSE,BYTES=256
NAME=(COURSE#,SEQ),BYTE3,START=1
NAME=TITLE,BYTES=33,START=4
NAME=(TPTR,TXDBD),POINTER=INDX
NAME=XTITLE,SRCH=TITLE
NAME=TXDBD,ACCESS=INDEX
NAME=TPTR,BYTES=33
NAME=(TITLE,SEQ),BYTES=33,START=1
NAME=(COURSE,EDUCPDBD),INDEX=XTITLE
PSB MACRO
PCB
SYNTAX:
SENSEG
SENSEG
SENSEG
TYPE=DB,DBDNAME=EDUCPDBD,KEYLEN=15
PROCOPT=G,PROCSEQ=TXDBD
NAME=COURSE
NAME=OFFERING,PARENT=COURSE
NAME=STUDENT,PARENT=OFFERING
GU
COURSE (XTITLE=DYNAMICS)
105
SECONDARY INDEXING
Continued ...
106
SECONDARY INDEXING
Continued ...
DBD
SEGM
FIELD
FIELD
LCHILD
XDFLD
DBD
SEGM
FIELD
LCHILD
NAME=EDUCPDBD
NAME=COURSE,BYTES=256
NAME=(COURSE#,SEQ),BYTE3,START=1
NAME=TITLE,BYTES=33,START=4
NAME=(LPTR,LXDBD),POINTER=INDX
NAME=XLOC,SRCH=LOCATION,SEGMENT=OFFERING
SYNTAX:
GU
NAME=LXDBD,ACCESS=INDEX
NAME=LPTR,BYTES=..
NAME=(LOCATION,SEQ),BYTES=.
NAME=(COURSE,EDUCPDBD),INDEX=XLOC
COURSE (XLOC=CHENNAI)
107
SESSION 11
LOGICAL RELATIONSHIPS
108
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
109
LOGICAL RELATIONSHIPS
Logical Parent
PART Database
Continued ...
ORDER Database
of DETAIL
Physical Parent
PART
ORDER
of DETAIL
Logical Relationship
STOCK
DETAIL
SHIPMENT
Logical Children
Physical Children
of PART
of ORDER
110
LOGICAL RELATIONSHIPS
PART /ORDER
ORDER/PART
Logical Database
Logical Database
PART
STOCK
DETAIL
SHIPMENT
Continued ...
ORDER
ORDER
DETAIL
PART
SHIPMENT
STOCK
111
SESSION 12
DB RECOVERY / RESTART
112
DATABASE RECOVERY
WHY?
TO RESTORE A DATABASE AFTER ITS PARTIAL DESTRUCTION
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
113
DATABASE RECOVERY
Continued ...
HOW?
114
DATABASE RECOVERY
Continued ...
DATABASE RECOVERY
Continued ...
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
116
DATABASE RECOVERY
Continued ...
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
117
DATABASE RECOVERY
Continued ...
DATABASE RECOVERY
Continued ...
RESTART 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
119
DATABASE RECOVERY
Continued ...
120
SESSION 13
121
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
122
PROGRAMMING TIPS
Continued ...
123
SESSION 14
124
125
126
127
128
129