ADABAS V8 AND MISCELLANEOUS TOPICS

Download Report

Transcript ADABAS V8 AND MISCELLANEOUS TOPICS

ADABAS V8
AND
MISCELLANEOUS TOPICS
Jim Poole 1
ADABAS V8
1. SPANNED RECORDS
2. LOB SUPPORT
3. MUPEX, BEYOND 191
4. ACBX
5. LINK / SVC / NUC
6. MULTIPLE EXTENTS
7. FDT
8. MISCELLANEOUS
2
V8 SPANNED RECORDS.WHY
1 PRIMARY RECORD + UP TO 4 SECONDARY RECORDS
RECORD SIZE LIMITED BY COMPRESSED RECORD SIZE
(RSP.CD 49) :
PRIOR V8:
COMPRESSED RECORD
DS BLOCKSIZE:
3390: 5,064
8391: 10,796
8393: 27,644
V8:
COMPRESSED RECORD
DS BLOCKSIZE:
3390: 5,064 X 5 = 25,320
8391: 10,796 X 5 = 53,980
8393: 27,644 X 5 = 138,220
NOTE: ACTUAL DATA LIMITED BY BLOCK HEADER,
RECORD HEADER, SPAN HEADER
3
V8 SPANNED RECORDS. LAYOUT
ASSO
DATA
FCB: TOPISN,MAXISN,MINISN
MINSEC,MAXSEC
DS2:SPAN-HDR
AC:
DS1: SPAN-HDR
AC2:
DS3:SPAN-HDR
1. RECORDS SEGMENTED ON FIELD BOUNDARY (LA FIELDS BY CHAR)
2. INDEX CONTAINS ONLY PRIMARY ISN
3. TOPISN,MAXISN,MINISN FOR PRIMARY
4. MINSEC,MAXSEC FOR SECONDARY
4
V8 SPANNED RECORDS. SET UP
ADADBS RECORDSPANNING FILE=fnr,MODE=ON
!! REQUIRES EXCLUSIVE FILE USE !!
or
ADACMP COMPRESS SPAN
or
? AOS ?
ADAREP:
File section:
SPANNED REC SUPP
YES
CPEXLIST:
SYNS 77 ET 2006-08-19 13:14:15 300
22
AD168DBS
ENABLE SPANNED RECORD SUPPORT 241
NOTE: AC2 NOT ALLOCATED UNTIL SPANNING OCCURS
5
V8 SPANNED RECORDS. ADAREP SPANNED RECS EXIST
TOP-ISN
MAX-ISN
RECORDS
MIN-ISN
TOP AC2
MAX AC2
EXPECTED
LOADED
ISN
ISN EXP.
=
=
=
=
=
=
1,000
20,669
1,000
1
1,000
1,378
LIST I DEV BLOCK I SPACE ALLOC.I FROM
TO I
TYPE I TYPE LNGTH I BLOCKS
CYL I RABN
RABN I
-----I------------I--------------I--------------I
AC I 8391 4136 I
15
0I 12696
12710I
AC2 I 8391 4136 I
1
0I 13761
13761I
NI I 8391 4136 I
1000
5I 12711
13710I
UI I 8391 4136 I
50
0I 13711
13760I
FDT I 8391 4136 I
4
0I 1515
1518I
DSST I 8391 4136 I
1
0I 2595
2595I
I
I
I
I
DS I 8391 10796 I
2000
26I 18037
20036I
6
V8 SPANNED RECORDS. REMOVAL
ADADBS RECORDSPANNING FILE=fnr,MODE=OFF
TIMELIMIT= (DFLT=60)
!! REQUIRES EXCLUSIVE FILE USE !!
1. SCAN ALL DS TO ENSURE NO SPANNED RECORDS EXIST
2. IF TIMELIMIT EXCEEDED, ADADBS ABORTS
? CE ? : CHECK AC2 VERSUS DS ??
NOTE: SAME CHECKPOINT AS MODE=ON
7
V8 SPANNED RECORDS. INTERNALS
NO SPANNED RECORDS
DS RABN:
BH
RH
fields RH
RH
fields
fields
RH
fields
fields
FREE SPACE
BH
RH
BLOCK HEADER 4b
RECORD HEADER 6b
2b – INCLUSIVE
USED BLOCK
LENGTH
2b – INCLUSIVE
RECORD
LENGTH
2b – x’0004’
4b – ISN
fields
FIELDS:
LENGTHS
MU/PE COUNTERS
EMPTY FLD COUNTS
VALUES
8
V8 SPANNED RECORDS. INTERNALS
DS RABN:
ONE SPANNED RECORD
BH
RH
fields
RH
fields
RH
fields
fields
fields
FS
RH
SPANNED RECORD HEADER 20b:
2b – INCLUSIVE RECORD LENGTH
4b – UNKNOWN
4b – ISN OF THIS RECORD
2b – INDICATOR: x’0081’ Primary Record
x’0041’ Secondary Record
4b – ISN OF NEXT SECONDARY (x’00’s IF LAST)
4b – ISN OF PRIMARY RECORD
9
V8 SPANNED RECORDS. Eg. 1 INTERNALS
DS RABN X
MODE=ON
-IRL---ISN----IBL
0000 0E820004 0E7E0000 00049999 9FF4E7F4
0010 F0F7F9F8 F1404040 40000F00 414FD540
: : :
UPDATE A FEW 100 MORE BYTES:
DS RABN X
-IRL
0000 2A050004 2A010000
0010 00000001 00000004
: : :
---ISN---00000000 00040081
99999FF4 E7F4F0F7
DS RABN Y
-IRL
0000 07AA0004 07A60000
0010 00000000 00000004
: : :
---ISN---00000000 00010041
80FCC1C1 C1C1C1C1
10
V8 SPANNED RECORDS. Eg. 2 INTERNALS
ASSO
AC
(7)
AC2
DATA (hdrs)
PRI
ISN IND NEXT PRI
7 x81
7
7
SEC
7
x41
21
7
SEC
21
x41
22
7
SEC
22
x41
0
7
(7)
(21)
(22)
NOTES: 1. PRI ISN IN AC
2. SEC ISN’s IN AC2
3. SEC ISN MAY EQUAL PRI ISN
11
V8 SPANNED RECORDS. UPDATE to 1st SPAN
…
DS EXTENT:
1ST UNUSED
…
REC-5, REC6
OR REC-6, REC5
A1 OR N1/N2
12K BYTES
OR REC5
REC5-PRI
REC5-SEC
FOR 1ST SPANNED RECORD:
“ POP – N – SPAN “
12
V8 SPANNED RECORDS. UPDATES
REGARDLESS OF REUSEDS OR RECORD POSITION:
WHEN 1ST SPAN CREATED, IT MOVES TO END OF FILE
( POP – N – SPAN )
EG. WHAT IF ALL RECORDS IN FILE UPDATED TO SPAN ONCE ????
PROVIDES FASTER UTILITIES, USER READS, ETC.
AFTER 1ST SPAN NEXT SPAN MAY BE ANYWHERE
(PRI + SEC1 + . . . SECn)
IF LRECL UPDATED TO < ONE BLOCKLENGTH:
SPANNED HEADER CHANGED BACK TO UNSPANNED HEADER
13
V8 SPANNED RECORDS. UPDATES PLOG
PLOG ALWAYS CONTAINS
PRIMARY RECORD (BI / AI)
PLOG ONLY CONTAINS SECONDARY RECS IF UPDATED
PLOG
UPD: PRIMARY
UPD: PRIMARY
SECONDARY-1
SECONDARY-1
SECONDARY-2
SECONDARY-2
BI/AI PRI
BI/AI PRI
BI/AI SEC2
UPD: PRIMARY
SECONDARY-1
SECONDARY-2
BI/AI PRI
BI/AI SEC1
14
V8 SPANNED RECORDS. PROGRAM PERFORMANCE
FILE 241 / 19,968 RECORDS / SPANNED PRI + SEC
FDT: AA . . . . . ZZ
CREATE FILE
DS BEFORE
USED
UNUSED
1064
BLKS
UDPATE EACH REC TO PRI + SEC
DS AFTER
EMPTY
1064
BLKS
“ POP-N-SPAN”
USED
UNUSED
39,936
BLKS
15
V8 SPANNED RECORDS. PROGRAM PERFORMANCE
FILE 241 / 19,968 RECORDS / SPANNED PRI + SEC
FDT: AA . . . . . ZZ
NUC UP, RUN PGM, NUC DOWN
L3,FB=AA.
L3,FB=ZZ.
L2,FB=ZZ.
L2,FB=AA.
DB
DB
DB
DB
CPU
CPU
CPU
CPU
3.65 SEC
5.79 SEC
5.65 SEC
5.18 SEC
ASSO IO
ASSO IO
ASSO IO
ASSO IO
104
129
107
87
DATA IO
DATA IO
DATA IO
DATA IO
19968
39934
40998
40998
16
V8 SPANNED RECORDS. UTILITY OPTIONS
ADACMP COMPRESS / DECOMPRESS
SPAN
- enable span
HEADER
- Header in input or Add Header (DECOMP)
DATADEVICE
- Split records based on device type
MAXLOGRECLEN
- Assemble input records into larger recs
ADADBS SPANCOUNT FILE=nnn
CAN BE UPD OR ACC USERS
SPECIFYING AC2RABN, MAXISN2:
ADALOD
ADAORD
ADASAV FMOVE
NOTE: ADAORD KEEPS PRI+SEC PAIRS
17
V8 SPANNED RECORDS. ISSUES / CONCERNS
1. INCREASE BLOCKSIZE OR GO SPANNED?
- DB LEVEL
vs
FILE LEVEL
- CONVERSION
vs
ADADBS SWITCH
- LIMIT = TRACKSIZE vs
LIMIT = 5 x BLOCKSIZE
- PROVEN
vs
NEW
- GUARANTEED PERFORMANCE vs
18
V8 SPANNED RECORDS. ISSUES / CONCERNS. UNDO
2. BACKWARD CONVERSION OF SPANNED FILE:
a. UPDATE / ENSURE ALL RECORDS BACK TO PRIMARY.
( ADADBS SPANCOUNT FILE=nnn)
b. ADADBS RECORDSPANNING FILE=fnr,MODE=OFF
NOTE: READ OF ALL DATA STORAGE (VS AC2)
NOTE: REQUIRES EXCLUSIVE FILE USE
CONSIDER USE OF DUPLICATE FILES, ADARES REGENERATE
19
V8 SPANNED RECORDS. ISSUES / CONCERNS
3. INCREASE ADARUNs:
NISNHQ / NH
LWP (FOR LARGER DVT)
LP, DUALPLS and RESULTANT SIZE OF WORK AND PLOGs
20
V8 SPANNED RECORDS. ISSUES / CONCERNS
4. RECORD READ PERFORMANCE MORE AFFECTED IF FIELDs AT
END OF RECORD.
L2
READS ALL RECORDS
L3,L1 READ SPANNED RECORD ONLY IF FIELDS REQUESTED
L3 MAY BE MUCH FASTER THAN L2
5. DIRTY READS.
EG. READ DA-FILE BY ZZ-FIELD
DISPLAY AA-FIELD
KEEP DESCRIPTORS IN FIRST OF RECORD.
6. GREATER RISK OF RSP.CD. 53 (UNTIL SUPPORT OF ACBX)
21
V8 SPANNED RECORDS. ISSUES / CONCERNS
7. PRI + SPAN OR PRI + SPAN n.
PERFORMANCE AND IO OF
ADAULD
ADAORD
ADAINV
22
END OF SPANNED
ON TO
LOB
23
LOB SUPPORT.
FCB FNR 10
FCB FNR 11
EMPLOYEES FILE
LOB FIELD DATA
PICTURES
.JPG .TIF
WORD
DOC
PPT
PDS
MEMBERS
ETC,ETC
< 2G
24
LOB SUPPORT: STRUCTURE
Flags, leng
DS.REC. FLD1, FLD2 . . . LOB FIELD . .
BASEFILE:
LOBFILE:
IL SEG 1
SEG 2
LOB. EG 200K
AC
19-SLOTS
SEG 19
DS IBL-IRL-ISN-HDR-DATA
DS IBL-IRL-ISN-HDR-DATA
DS IBL-IRL-ISN-HDR-DATA
EG. 19
SEGMENTS
19 RECS
DS IBL-IRL-ISN-HDR-DATA
DS Blksize=10,796
25
LOB’s CREATING. ADACMP
ADACMP:
ADACMP
ADACMP
: : :
ADACMP
: : :
ADACMP
: : :
ADACMP
COMPRESS
FILE=10
FNDEF='01,AA,8,A,NU,DE‘
FNDEF='01,L1,0,A,LB,NU‘
FNDEF='01,L2,0,A,LB,NV,NB‘
DDEBAND
X'00000004'
CHAR. LOB
BINARY LOB
LOB DATA MUST BE ADDED LATER
VIA PROGRAM
26
LOB’s CREATING. ADALOD 1
ADALOD “ BASE FILE “
ADALOD LOAD FILE=010
ADALOD LOBFILE=11
: : :
SIZE FILE (DS,NI,UI,AC) MINUS LOB SPACE
27
LOB’s CREATING. ADALOD 2
ADALOD “ LOB FILE “
ADALOD
ADALOD
ADALOD
ADALOD
ADALOD
ADALOD
LOAD FILE=11,LOB
BASEFILE=10
DSSIZE=
MAXISN=
NISIZE=,UISIZE=
rest of parms: very small
AVLOBS = AVERAGE LOB SIZE PER RECORD
ER
= ESTIMATED NUMBER OF RECORDS
BPL
= DS BLOCKS PER LOB
= AVLOBS / DS.BLOCKSIZE
DSSIZE = BPL * ER
MAXISN = BPL * ER
NISIZE = BPL * ER * ?20? / ASSO.BLOCKSIZE
28
LOB’s CREATING. ADALOD 2 EG.
AVLOBS= 600K
E.R.
= 100,000
D.BLOCKSIZE = 10,796
A.BLOCKSIZE = 4,136
BPL
=
=
=
=
DS BLOCKS PER LOB
AVLOBS / DS.BLOCKSIZE
600,000 / 10,796
56
DSSIZE = BPL * ER
= 56 * 100,000
= 5,600,000
MAXISN = 5,600,000
NISIZE = BPL * ER * ?20? / ASSO.BLOCKSIZE
= 5,600,000 * 20 / 4,136
= 27,000
29
LOB’s CREATING. EXISTING FILES
1. ADADBS NEWFIELD FNDEF=. . .
2. ADALOD LOBFILE
NOTE: MUST DO ADADBS FIRST !
30
LOB’s CREATING. ADAREP
PART 1
****************
* FILE OPTIONS *
****************
. CONTAINS LOB FIELDS
. . PRIVILEGED USE
. . . LOB FILE
FILE NAME
-----------------: : :
10 LOBFILE-BASE
11 LOBFILE-LOB
------------------. L . .
. . . L
31
LOB’s CREATING. ADAREP
PART 2
*************
*
*
* LOB FILES *
*
*
*************
FILE WITH I ASSOCIATED I
LOB FIELDS I LOB FILE
I
------------------------10 I
11 I
-----------I------------I
32
LOB’s CREATING. ADAREP
PART 3 FILE DETAIL. BASE FILE
: : :
LOB file
No
Contain LOB fields Yes
: : :
1
I L1 I
0
I
A
I LB,NU
PART 4 FILE DETAIL. LOB FILE
: : :
LOB file
Yes
Contain LOB fields No
: : :
FDT not printed - this file is a LOB file
33
LOB’s CREATING. DDM
VIA SYSDDM
L DB Name
F Leng S D Remark
--- ----------------- - ---- - - --------------------: : :
1 L1 L@L1-FIELD
I
4
LEN. IND. OF L1-FIELD
1 L1 L1-FIELD
A
N
LOB
LE=1073741821
OPTIONS=LB
34
LOB’s TESTING
RULES OF ENGAGEMENT:
0. NATURAL 4.2.1
1. USE SMALL LOB’S (? SLOB’s ?)
UNDER 32K
2. FTP TO MAINFRAME, A SMALL JPG PIC
3. STORE IN ADABAS
4. READ FROM ADABAS
5. FTP FROM MAINFRAME BACK TO PC TO VERIFY
SEE SERVLINE24 TECH DOC 542357 FOR NATURAL ZAPS
35
LOB’s TESTING
STORE IN ADABAS:
0010 DEFINE DATA LOCAL
0030 1 DFILE VIEW OF FILE-10
0040 2 AA-FIELD
0050 /* 2 L@L1-FIELD
0060 2 L1-FIELD (A) DYNAMIC
0080 01 A (A) DYNAMIC
0090 01 LENG (I4)
0100 *
0110 END-DEFINE
0120 DEFINE WORK FILE 1 TYPE 'UNFORMATTED'
0130 READ WORK FILE 1 A
0140
GIVING LENGTH LENG
0150 DISPLAY LENG
0160 AA-FIELD := 'BATFSH'
0170 L1-FIELD := A
0180 STORE IN DFILE
0190 END TRANSACTION
0200 END-WORK
0210 END
36
LOB’s TESTING
READ FROM ADABAS:
0010 DEFINE DATA LOCAL
0020 *
0030 1 DFILE VIEW OF FILE-10
0040 2 AA-FIELD
0050 2 L@L1-FIELD
0060 2 L1-FIELD
0070 *
0080 01 A (A) DYNAMIC
0090 01 LENG (I4)
0100 END-DEFINE
0110 *
0120 DEFINE WORK FILE 2 TYPE 'UNFORMATTED'
0130 FIND (1) DFILE WITH AA-FIELD = 'BATFSH'
0140 A
:= L1-FIELD
0150 *
0160 *
0170 WRITE WORK 2 VARIABLE A
0180 END-FIND
0190 END
37
LOB’s TESTING
A NICE NATURAL PGM
DEFINE DATA LOCAL
1 DFILE
VIEW OF FILE-10
2 AA-FIELD
2 L@L1-FIELD
2 L1-FIELD (A040)
END-DEFINE
READ DFILE
DISPLAY *ISN AA-FIELD L@L1-FIELD
END
L1-FIELD
38
LOB’s ADARUN PARMS
INCREASE:
LBP/LFIOP
LU
NAB
NH/NISNHQ
LP/WORKSIZE
DUALPLS
LDEUQP
>
>
>
>
>
>
MAX LOB/SIZE (RSP.CD. 152)
LU
(RSP.CD. 254)
BPL * ?
(RSP.CD. 46)
?
(RSP.CD. 9-15)
?
(RSP.CD. 197)
39
LOB’s FINAL THOUGHTS
1. DSREUSE / ISNREUSE OFF ?
2. REORDER, KEEP LOB SEGMENTS TOGETHER
3. RSP.CD. 132 (GET UPDATE MANUAL FROM SERVLINE)
4. PC NATURAL 6.2.2. , ENTIRE NETWORK, etc.
5. HOW TO REMOVE LOB?
DELETE LOBFILE / ADACMP DECOMPRESS/CMP/LOD BASEFILE
Or
ZAP SOMETHING (FDT,FCB)?
40
MUPEX BEYOND 191
1. SET AT THE FCB LEVEL, NOT FDT
2. MAX OF 65,534 OCCURANCES (SEE DS RECORD LIMITS)
3. SET FOR BOTH MU AND PE
TECH REVIEW:
MU DE DO NOT HAVE OCCURANCE NUMBER IN INV. LIST
PE DE HAVE
THE OCCURANCE NUMBER IN INV. LIST
41
MUPEX. DEFINING
LOADING NEW FILE:
EXISTING FILE (NO PE DE’s):
ADADBS MUPEX FILE=nnn
MUPECOUNT=2
ADACMP COMPRESS
MUPEX
MUPECOUNT=1|2
DDEBAND
X’0B’
OR
X’000B’
Eg. OCC.CNT=11
EXISTING FILE (PE DE’s):
1. RELEASE PE DE’S
2. ADADBS MUPEX
3. ADAINV PE DE’S
42
MUPEX. ADAREP
PART 1
****************
* FILE OPTIONS *
****************
. 2-BYTE MU/PE INDEX
. . REPLICATED
. . . PRIV USE
FILE NAME
-----------------: : :
16 EMPLOYEES
------------------. T . .
PART 2
* FILE
241 (TESTFILE
: : :
TWO BYTE MU/PE
YES
) *
43
MUPEX. DS INTERNALS
DS RECORD:
UPDATE TO 191 OCC:
OCC CNTR
. . . 01 L-VALUE . . .
BF
UPDATE TO 192 OCC:
C0 02 00C0
UPDATE TO 193 OCC:
C0 02 00C1
UPDATE TO 200 OCC:
C0 02 00C8
UPDATE TO 1 OCC:
C0 02 0001
C0 – 2B FLAG
02 – LENGTH
00C0 - COUNT
NOTE: COUNT NEVER RETURNS TO PRE-2B CONDITION !
44
MUPEX. INVERTED LIST
01,PZ,PE.
02,PA,03,A,DE.
FDT
02,PB,01,1.
SUPDE=S1=AA(1,3),PB(1,1),ZZ(1,3)
Eg. NI ELEMENT:
PA: 04 F1F1F1 09 05
S1: 08 C1C1C1F1E9E9E9 09 05
RELEASE S1 / MUPEX / ADAINV S1
PA: 05 F1F1F1 0009
05
PE DE
ONLY
KEY:
EXCLUSIVE LENGTH
COMPRESSED VALUE
PE OCCURANCE CNT
ISN QTY
ISN’s
S1: 09 C1C1C1F1E9E9E9 0009 05
45
MUPEX.
1. IN DATA STORAGE, EXTRA BYTE NOT ADDED UNTIL OCC > 191
2. FOR PE-DE, EXTRA BYTE ADDED VIA ADAINV.
(MU DE DO NOT HAVE OCCURANCES IN INVERTED LIST)
3. WORST CASE: DE LENGTH (+ OCC) MUST BE LESS THAN 253
4. ONCE EXTRA BYTE ADDED IN DATA STORAGE IT IS
NEVER REMOVED
46
MUPEX CONVERTING BACK.
1. UPDATE ALL RECORDS TO LESS THAN 192 OCCURANCES.
2. ADACMP DECOMPRESS
3. ? MASSAGE FILE TO REMOVE EXTRA BYTE ?
4. ADACMP COMPRESS
5. ADALOD
IF CHANGE ENHANCEMENTS EXISTED:
? UPDATE BACK TO 1 BYTE ?
? ADADBS MUPEX FILE=nnn,MUPECOUNT=1 ?
47
MUPEX PE DE ISSUES
2700 FILES
1000 CONTAIN MU/PE
170 CONTAIN PE-DE
DISCUSSION / SOLUTIONS:
1. TIME TO ADAINV PE-DE, IS IT A PROBLEM?
2. ENHANCE ADAORD OR ADAINV TO UPDATE JUST PE-DE ?
3. SEPARATE MUPEX  MUX, PEX ?
CONTINUED 
48
MUPEX PE DE ISSUES continued
4. IF LESS THAN 191 USE 1 BYTE COUNT.
IF MORE THAN 191 USE 2 BYTE COUNT.
MAINTAIN DS AND INVERTED LIST WITH THIS CONSTRUCT
FOR EXAMPLE:
NI-ELEMENT
C1C1C1C101
C1C1C1C102
C1C1C1C1C00200C0
C1C1C1C1C101
C1C1C1C1C102
C1C1C1C1C1C00200C0
VALUE
AAAA
AAAA
AAAA
AAAAA
AAAAA
AAAAA
OCC
OCC
OCC
OCC
OCC
OCC
=
1
=
2
= 192
=
1
=
2
= 192
?? MORE DE BYTES ??
?? 1 / 2 BYTE MESS LATER ON ??
49
DIRECT CALL CHANGES
ADABAS
THE OLDE
ACB:
BUFFERS:
80 BYTES of data
FBL,RBL,SBL,VBL,IBL
(2b = 32K limit)
UP TO 1 EACH:
FB,RB,SB,VB,IB
ADARUN
LU=
NAB=
RSP.CD
152
254,253
50
ACBX THE NEW
CALL ‘ADABAS’ USING ACBX, . . . , ABD1,ABD2,ABD3,ABD4, . . .
!! SEE COMMAND REFERENCE MANUAL !!
Eg. FB
=>
48 BYTES
ACBX: 192 BYTES
Eg. SB
=>
48 BYTES
ABD’ s:
Eg. MB
=>
48 BYTES
Eg. RB
=>
48 BYTES
Eg. IB
Eg. VB
=>
=>
48 BYTES
48 BYTES
Eg. FB2
=>
48 BYTES
Eg. RB2
=>
48 BYTES
“ANY SEQUENCE, MULTIPLES”
NOTE: V8 ADALINK REQUIRED, ELSE RSP.CODE 253-11
51
ACBX
FEATURES:
1. 4 BYTE DBID AND 4 BYTE FNR
2. 4 BYTE ISN AND 8 BYTE ISN OPTIONS
3. 8 COMMAND OPTIONS (FROM 2)
4. 6 ADDITIONS (FROM 5)
5. ENHANCE ERROR FIELDS
6. 8 BYTE COMPRESSED/DECOMPRESSEC REC LENGTH
7. MORE ACCURATE CMDTIME
52
ABD’s ADBAS BUFFER DESCRIPTIONS
8 BUFFER TYPES (FROM 5 IN V7)
FORMAT BUFFER
RECORD BUFFER
SEARCH BUFFER
VALUE BUFFER
ISN BUFFER
MULTIFETCH BUFFER MLF HDR’S (PRF NOT SUPPORTED)
USER BUFFER
PERFORMANCE BUFFER
FOR REVIEW
53
ABD’s
|
CONTENTS:
LOCATION (PTR OR AT END)
SIZE OF DATA (xBL)
SIZE TO SEND (xBL)
SIZE RECEIVED
x BL
|
48 BYTES
TYPE ( F,R,S,V,I,M,U)
BUFFER DATA (IF LOCAL)
|
54
ACBX STATUS AS OF 10/1/2006
1. NATURAL 4.2.1 LOB SUPPORT  ACBX CALLS
2. NATURAL 4.2.1 MLF  ACB CALLS
3. ADAMLF  ACB CALLS
SAMPLE COBOL PROGRAM ON NEXT PAGES 
55
WORKING-STORAGE SECTION.
01 ACBX.
05
FILLER
PIC
05
CBXVER
PIC
05
CBXLEN
PIC
05
CMD-CODE
PIC
05
FILLER
PIC
05
RESP-CODE
PIC
05
CID
PIC
05
DBID
PIC
05
FNR
PIC
05
FILLER
PIC
05
ISN
PIC
05
FILLER
PIC
05
ISL
PIC
05
FILLER
PIC
05
ISQ
PIC
05
COPT1
PIC
05
COPT2
PIC
05
COPT3
PIC
05
COPT4
PIC
05
COPT5
PIC
05
COPT6
PIC
ACBX
S9(4)
X(2)
S9(4)
X(2)
S9(4)
S9(4)
X(4)
S9(8)
S9(8)
S9(8)
S9(8)
S9(8)
S9(8)
S9(8)
S9(8)
X(1)
X(1)
X(1)
X(1)
X(1)
X(1)
COMP VALUE
VALUE
COMP VALUE
VALUE
COMP VALUE
COMP VALUE
VALUE
COMP VALUE
COMP VALUE
COMP VALUE
COMP VALUE
COMP VALUE
COMP VALUE
COMP VALUE
COMP VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
+0.
'F2'.
+192.
SPACES.
+0.
+0.
SPACES.
+0.
+0.
+0.
+0.
+0.
+0.
+0.
+0.
SPACE.
SPACE.
SPACE.
SPACE.
SPACE.
SPACE.
56
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
05
COPT7
COPT8
ADD1
ADD2
ADD3
ADD4
ADD5
ADD6
FILLER
FILLER
ERR-OFFSET
ERR-CHAR
RESP-SUB
ERR-BUFFID
ERR-BUFFSEQ
SUB-RESP
SUB-RESP-SUB
SUB-RESP-TXT
LCOMPR
LDECMP
CMDTIME
USER-AREA
FILLER
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
X(1)
X(1)
X(8)
S9(8)
X(8)
X(8)
X(8)
X(8)
S9(8)
S9(8)
S9(8)
S9(4)
X(2)
X(1)
X(3)
S9(4)
S9(4)
X(4)
S9(16)
S9(16)
S9(16)
X(16)
X(24)
COMP
COMP
COMP
COMP
COMP
COMP
COMP
COMP
COMP
COMP
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
SPACE.
SPACE.
SPACES.
+0.
SPACES.
SPACES.
SPACES.
SPACES.
+0.
+0.
+0.
+0.
SPACES.
SPACE.
SPACES.
+0.
+0.
SPACES.
+0.
+0.
+0.
SPACES.
SPACES.
ACBX
Cont.
57
ABD BLOCK FOR FB
01 ABDFB.
05
05
05
05
05
05
05
05
05
05
05
05
05
05
FBLEN
FBVER
FBID
FBRSV1
FBLOC
FBRSV2
FILLER
FILLER
FBSIZE
FBSEND
FBRECV
FILLER
FBADDR
FBCONT
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
S9(4)
X(2)
X(1)
X(1)
X(1)
X(1)
S9(8)
S9(8)
S9(16)
S9(16)
S9(16)
S9(8)
S9(8)
X(20)
COMP VALUE +48.
VALUE 'G2'.
VALUE 'F'.
.
VALUE SPACE.
.
COMP VALUE +0.
COMP VALUE +0.
COMP VALUE +0.
COMP VALUE +0.
COMP VALUE +0.
COMP VALUE +0.
COMP VALUE +0.
VALUE SPACES.
58
ABD BLOCK FOR RB
01 ABDRB.
05
05
05
05
05
05
05
05
05
05
05
05
05
05
*
01 CB-RES
01 CB-REE
RBLEN
RBVER
RBID
RBRSV1
RBLOC
RBRSV2
FILLER
FILLER
RBSIZE
RBSEND
RBRECV
FILLER
RBADDR
RBCONT
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC S9(8)
PIC S9(8)
S9(4)
X(2)
X(1)
X(1)
X(1)
X(1)
S9(8)
S9(8)
S9(16)
S9(16)
S9(16)
S9(8)
S9(8)
X(50)
COMP VALUE +48.
VALUE 'G2'.
VALUE 'R'.
.
VALUE SPACE.
.
COMP VALUE +0.
COMP VALUE +0.
COMP VALUE +0.
COMP VALUE +0.
COMP VALUE +0.
COMP VALUE +0.
COMP VALUE +0.
VALUE SPACES.
COMP VALUE +0.
COMP VALUE +0.
59
PROCEDURE DIVISION.
MAIN-PARAGRAPH.
MOVE X'00' TO FBRSV1.
MOVE X'00' TO RBRSV1.
ENSURE FIELDS SET
MOVE X'00' TO FBRSV2.
TO BINARY ZEROES
MOVE X'00' TO RBRSV2.
*
MOVE 168
TO DBID.
MOVE 'OP'
TO CMD-CODE.
PERFORM CALLACBX.
*
MOVE 168
TO DBID.
MOVE 16
TO FNR.
MOVE 'L3'
TO CMD-CODE.
MOVE 'L3XX'
TO CID.
MOVE 'AE'
TO ADD1.
MOVE 10
TO FBSIZE.
MOVE 10
TO FBSEND.
MOVE 'AC.'
TO FBCONT.
MOVE 50
TO RBSIZE.
MOVE 50
TO RBSEND.
PERFORM CALLACBXD 2000 TIMES.
60
CLOSE-ER-UP.
MOVE 168
TO DBID.
MOVE 'CL'
TO CMD-CODE.
PERFORM CALLACBX.
STOP RUN.
CALLACBX.
CALL 'ADABAS' USING ACBX.
IF RESP-CODE NOT EQUAL TO 0 PERFORM ERR-RTN.
DISPLAY 'CMD ' CMD-CODE ' RSP.CD ' RESP-CODE.
CALLACBXD.
CALL 'ADABAS' USING ACBX, CB-RES, CB-REE, ABDFB, ABDRB.
IF RESP-CODE = 3 THEN
GO TO CLOSE-ER-UP.
IF RESP-CODE NOT EQUAL TO 0 GO TO ERR-RTN.
DISPLAY 'ISN=' ISN ' RB=' RBCONT.
ERR-RTN.
DISPLAY '------ERROR FOR ACBX ---------'.
DISPLAY 'CMD: ' CMD-CODE.
DISPLAY 'FNR: ' FNR.
DISPLAY 'ISN: ' ISN.
DISPLAY 'RSP: ' RESP-CODE.
DISPLAY 'SUB: ' RESP-SUB.
61
ACBX EXAMPLE FILE CONTAINS 20,000 RECORDS
1062 DS RABNS
READ IN 20b PER RECORD
USE MLF
V7:
MLF LIMIT 32K
32K RB / RECORD.SIZE = 1600
32K IB / 16b HDR
= 2048
13 CALLS
V8 ACBX:
RB LEN = 400,000
MB LEN = 320,000
ILL
= 20,000
1 CALL
62
COMPATIBILITY V7/8 NUC/SVC/LNK
SVC – V8
PGM
LINK
V7
PGM
LINK
V8
 REQUIRED
NUC – V7
NUC – V8
ACB CALLS
!! ACBX CALLS REQUIRE ALL V8 COMPONENTS !!
63
EXTENTS NEW LIMITS
EXTENT TYPE
DDDATARnn
DDASSORnn
LIMIT
99
99
DSST
>5
FILE EXTENTS
(AC,NI,UI,DS,AC2)
FCB SPACE
EG. ADAREP FILE nnn (ASSO.BLKSIZE = 4136)
Free space available for file extents:
At least
233 extents
64
V8 QUICK NOTES. FDT INCREASE
V7
ASSO
BLOCK
1
I. FIELD NAME’s
ASSO
BLOCK
2
II. SEARCH INDEX
ASSO
BLOCK
3
ASSO
BLOCK
4
4B / FDT
10b / FIELD
V8: 20b / FIELD
III. SPECIAL NAMES Eg. SUPER,SUB DE
SUPER,SUB FIELDS
V8: x Blocks / FDT
65
V8 QUICK NOTES. FDT INCREASE Eg.
V8
1
V7
1
I.
(many fields)
2
2
II.
3
III.
(many specials)
ADACNV
TOVERS=81
3
4
II.
4
4B / FDT
I.
(many fields)
5
6
III.
(many specials)
66
V8 QUICK NOTES. FDT INCREASE Eg.
ADAREP PHYSICAL LAYOUT:
FROM
BLK
1306 1338 1339 1342 1347 1372 1374 : : :
1507 1508 1513 1518 -
TO
DEV TABLE
BLK BLKS TYPE TYPE FILE
1337
32 3390 PPT
0
1338
1 3390 DSST
0
1341
3 3390 AC
1
1346
5 3390 UI
1
1371
25 3390 NI
1
1373
2 3390 AC
16
1413
40 3390 NI
16
1507
1
1512
5
1517
5
2682 1165
VOLSER
NUMBER
ADA080
ADA080
ADA080
ADA080
ADA080
ADA080
ADA080
V7
BEFORE
1-30:
CONTROL
BLOCKS
31-285:
FCB’s
286-1305:
FDT’s
3390 AC
10 ADA080
3390 NI
10 ADA080
3390 UI
10 ADA080
3390 UNUSED 0 ADA080
67
V8 QUICK NOTES. FDT INCREASE Eg.
ADAREP PHYSICAL LAYOUT:
FROM
TO
DEV TABLE
BLK
BLK BLKS TYPE TYPE FILE
286 - 289
4 3390 FDT
1
346 - 349
4 3390 FDT
16
354 - 357
4 3390 FDT
18
1306 - 1337
32 3390 PPT
0
1338 - 1338
1 3390 DSST
0
1339 - 1341
3 3390 AC
1
1342 - 1346
5 3390 UI
1
1347 - 1371
25 3390 NI
1
1372 - 1373
2 3390 AC
16
1374 - 1413
40 3390 NI
16
: : :
1507 - 1507
1 3390 AC
10
1508 - 1512
5 3390 NI
10
1513 - 1517
5 3390 UI
10
1518 - 1522
5 3390 FDT
10
1523 - 2682 1160 3390 UNUSED 0
VOLSER
NUMBER
ADA080
ADA080
ADA080
ADA080
ADA080
ADA080
ADA080
ADA080
ADA080
ADA080
V8
AFTER
1-30:
CONTROL
BLOCKS
31-285:
FCB’s
ADA080
ADA080
ADA080
ADA080  5 BLOCKS
ADA080
68
V8 MISCELLANEOUS
1. GCB IS 2 BLOCKS (RABN 1 AND 2)
2. FDT FIELD OPTION: NB (NO BLANK COMPRESSION)
3. z/OS SVC IMPROVEMENTS.
- PERFORMANCE IMPROVMENTS
- SHIFT FROM SRB TO TCB USAGE (NOTE IN MEASUREMENTS)
- ALL SERVERS MUST BE APF-AUTHORIZED:
MPM’s
ENTIRE NETWORK
NATURAL GLOBAL BUFFER POOL
ETC.
ELSE:
U0253 ABEND
ADAS33 APF Authorization is required
69
BACK TO JUST
ADABAS
70
LITTLE KNOWN FEATURES: SYNS AND 7X24
WHAT ARE SYNS FUNCTIONS?
1.
2.
3.
4.
5.
6.
SIMPLE /FAST
FILE / DATABASE CHANGES
LITTLE IO
TYPICALLY FCB CHANGES
VIA ADADBS OR AOS
ADARES REGENERATES TO TARGET
REQUIRE:
NO ACC USE
NO UPD USE
71
LITTLE KNOWN FEATURES: SYNS AND 7X24
WHAT ARE SYNS FUNCTIONS?
GROUP 1
ALLOCATE
DEALLOCATE
ASSOPFAC
DATAPFAC
CHANGE
DSREUSE
ISNREUSE
MAXLRECL
MAXDS,NI,UI,AC
NEWFIELD
PGMREFRESH
RELEASE
RENAME
USERISN ON/OFF
GROUP 2
DECREASE DB
INCREASE DB
DELETE
RECOVER
REFRESH
RENUMBER
GROUP 3 (V8)
MUPEX
RECORDSPANNING ON
72
LITTLE KNOWN FEATURES: SYNS AND 7X24
WHAT ARE SYNS FUNCTIONS?
GROUP 1
ALLOCATE
DEALLOCATE
ASSOPFAC
DATAPFAC
CHANGE
DSREUSE
ISNREUSE
MAXLRECL
MAXDS,NI,UI,AC
NEWFIELD
PGMREFRESH
RELEASE
RENAME
USERISN ON/OFF
REQUIRE:
NO ACC USE
NO UPD USE
ELSE
RSP.CD. 48
NEW / IMPROVED :
RELEASE
DSREUSE
ISNREUSE
NEWFIELD
AOS
ONLY
73
LITTLE KNOWN FEATURES: SYNS AND 7X24: RELEASE
AOS
F File maintenance
D Release descriptor
Descriptor Name ..
File Number ......
File Name ........
Password .........
In Parallel ......
Enter 'RELEASE' to
BA
18
VEHICLES
YES
confirm ..
74
LITTLE KNOWN FEATURES: SYNS AND 7X24: xxREUSE
AOS
F File maintenance
M Modify file parameters
FILE
FILE
ASSO
DATA
MAX.
NO. ... 18
NAME .. VEHICLES
PFAC .......... 3
PFAC .......... 3
RECL .......... 10792
NEW FILE NAME ......
NEW FILE NO. .......
USER ISN ...........
FILE PASSWORD ......
ALPHANUM ENCODING ..
WIDECHAR ENCODING ..
MAX. ALLOCATION
UI BLKS PER EXTENT ..
NI BLKS PER EXTENT ..
DS BLKS PER EXTENT ..
VEHICLES
18
ISN REUSE .............
WITH RESET .....
OFF
IN PARALLEL ....
DS REUSE ..............
WITH RESET .....
IN PARALLEL ....
0
MIXED DS DEVICE .......
0
PROGRAM REFRESH .......
0
0
0
ON_
___
YES
ON_
___
YES
OFF
OFF
75
LITTLE KNOWN FEATURES: SYNS AND 7X24: NEWFIELD
AOS
F File maintenance
C
Define/modify FDT
A
Add new field(s)
File = 18
(VEHICLES)
In Parallel .. YES
Enter Password if file is security protected ...
Level I Name I Length I Format I Options
I
-----------------------------------------------------01 I ZZ I
10_ I
A
I NU __ __ __ __ __ I
__ I __ I
___ I
_
I __ __ __ __ __ __ I
: : :
76
ADARES REGENERATE. REVISIT
WHY?
ORIGINAL
DB
ADARES
PLOG(s)
PLOG(s)
PLOG(s)
1. DB RECOVERY (AFTER RESTORE)
2. FILE(s) RECOVERY (AFTER RESTORE)
NO OUTAGE:
3. RE-BLOCK DATABASE
4. CONVERT FILE TO 4b ISN
5. CONVERT FILE TO FRWRD INDEX COMPR
6. REORDER / MOVE FILES
7. INTEGRITY CHECKS / REPAIR
8. TESTING / APPLICATIONS CONVERSIONS
9. DISASTER RECOVERY / MIRRORING
RESTORED
DB / FILE(s)
RECORD LEVEL
“EVENT REPLICATOR”:
REBUILD FILES FOR PERFORMANCE
77
ADARES REGENERATE. OPTIONS
DB LEVEL
or
FILE LEVEL
VS.
EOF PLOG
or
TOCP
DB / EOF
ADARES REGENERATE
ADARES PLOGNUM=nnnn
DB / TOCP
ADARES
ADARES
ADARES
ADARES
REGENERATE
PLOGNUM=nnnn
TOCP=cccc
TOBLK=bbbbb
ADARES
ADARES
ADARES
ADARES
ADARES
FILE / TOCP
REGENERATE
FILE=fff,fff
PLOGNUM=nnnn
TOCP=cccc
TOBLK=bbbbb
FILE / EOF
ADARES REGENERATE
ADARES FILE=fff,fff
ADARES PLOGNUM=nnnn
//DDSIIN DD
DSN=PLOG.A
DSN=PLOG.B
: : :
78
ADARES REGENERATE. EOF PLOG
DB LEVEL
EOF PLOG
or
or
VS.
FILE LEVEL
TOCP
DB LEVEL IMPLIES AUTOBACKOUT
//DDSIIN DD
DSN=PLOG.A
DSN=PLOG.B
: : :
(OPTION)
REGENERATE NOAUTOBACKOUT
(OPTION)
FILE LEVEL IMPLIES NO AUTOBACKOUT REGENERATE CONTINUE
THEREFORE / IPSO FACTO:
“DB LEVEL REGENERATE” = “FILE LEVEL CONTINUE”
“DB LEVEL NOAUTOBACKOUT = “FILE LEVEL REGENERATE
79
ADARES REGENERATE. EOF PLOG
DB LEVEL
//DDSIIN
1 UPD F1
//DDKARTE *
2 UPD F2
ADARES REGENERATE
ADARES PLOGNUM=nnnn
3
ET
5 UPD F2
6 C1-HERE
APPLY
4 UPD F1
OR
//DDKARTE *
ADARES
ADARES
ADARES
ADARES
7 UPD F1
8 UPD F2
9
ET
11 UPD F2
EOF
REGENERATE
FILE=1,2,3,4
PLOGNUM=nnnn
CONTINUE
BACK
10 UPD F1
FILE LEVEL
ALL UPDATES BACKOUT’ED
OUT TO LAST ET
80
ADARES REGENERATE. EOF PLOG
ADARES REGENERATE
ADARES PLOGNUM=nnnn
ADARES NOAUTOBACKOUT
2 UPD F2
3
ET
5 UPD F2
6 C1-HERE
7 UPD F1
8 UPD F2
9
ET
APPLY
4 UPD F1
DB LEVEL
//DDKARTE *
//DDSIIN
1 UPD F1
OR
//DDKARTE *
FILE LEVEL
ADARES REGENERATE
ADARES FILE=1,2,3,4
ADARES PLOGNUM=nnnn
10 UPD F1
11 UPD F2
EOF
ALL UPDATES APPLIED TO EOF
? DATA INTEGRITY ? BI/AI/DVT/SPANNED ?
81
ADARES REGENERATE. TOCP=
DB LEVEL
EOF PLOG
or
or
VS.
FILE LEVEL
TOCP
//DDSIIN DD
DSN=PLOG.A
DSN=PLOG.B
: : :
(OPTION, TOCP ONLY)
TOCP= IMPLIES NO AUTOBACKOUT
REGENERATE AUTOBACKOUT
Note: TOCP has precedence over DB or FILE level
DB LEVEL
OR
FILE=
or
FILE=,CONTINUE
VS.
TOCP=,TOBLK=
or
TOCP=,TOBLK=,
AUTOBACKOUT
82
ADARES REGENERATE. TOCP=,DB LEVEL
//DDSIIN
1 UPD F1
3
ET
4 UPD F1
APPLY
2 UPD F2
//DDKARTE *
DB LEVEL
ADARES REGENERATE
ADARES PLOGNUM=nnnn
ADARES TOCP=HERE,TOBLK=bb
5 UPD F2
6 C1-HERE
7 UPD F1
8 UPD F2
9
ET
ALL UPDATES APPLIED UP TO
CHECKPOINT ‘HERE’
10 UPD F1
11 UPD F2
EOF
83
ADARES REGENERATE. TOCP=,DB LEVEL
//DDSIIN
1 UPD F1
3
ET
5 UPD F2
6 C1-HERE
BACK
4 UPD F1
APPLY
2 UPD F2
//DDKARTE *
ADARES
ADARES
ADARES
ADARES
DB LEVEL
REGENERATE
PLOGNUM=nnnn
TOCP=HERE,TOBLK=bb
AUTOBACKOUT
7 UPD F1
8 UPD F2
9
ET
10 UPD F1
ALL UPDATES BACKED OUT TO
LAST ET BEFORE CKPT
11 UPD F2
EOF
84
ADARES REGENERATE. TOCP=,FILE LEVEL
//DDSIIN
1 UPD F1
3
APPLY
2 UPD F2
ET
4 UPD F1
5 UPD F2
6 C1-HERE
7 UPD F1
8 UPD F2
9
ET
10 UPD F1
11 UPD F2
EOF
FILE LEVEL
//DDKARTE *
ADARES REGENERATE
ADARES FILE=1
ADARES PLOGNUM=nnnn
ADARES TOCP=HERE,TOBLK=bb
FILE LEVEL
//DDKARTE *
ADARES REGENERATE
ADARES FILE=1,CONTINUE
ADARES PLOGNUM=nnnn
ADARES TOCP=HERE,TOBLK=bb
FILE LEVEL
//DDKARTE *
ADARES REGENERATE
ADARES FILE=1
ADARES PLOGNUM=nnnn
ADARES TOCP=HERE,TOBLK=bb
ADARES AUTOBACKOUT
ALL UPDATES FOR FILE 1 APPLIED UP TO
CHECKPOINT ‘HERE’
85
ADARES REGENERATE. TOCP=,FILE LEVEL
//DDSIIN
1 UPD F1
3
ET
5 UPD F2
6 C1-HERE
BACK
4 UPD F1
APPLY
2 UPD F2
FILE LEVEL
//DDKARTE *
ADARES REGENERATE
ADARES FILE=1,CONTINUE
ADARES PLOGNUM=nnnn
ADARES TOCP=HERE,TOBLK=bb
ADARES AUTOBACKOUT
7 UPD F1
8 UPD F2
9
ET
10 UPD F1
11 UPD F2
EOF
ALL UPDATES FOR FILE 1 BACKED OUT
TO LAST ET BEFORE CHECKPOINT
86
ADARES REGENERATE. FILE vs DB LEVEL
REGEN #1
PAUSE
WORK
DB LEVEL
ADARES REGENERATE
ADARES PLOGNUM=nnnn
OR
ADARES NOAUTOBACKOUT
REGEN #2
DB LEVEL:
LOCKS DB
NO ACCESS
NO ADAEND/HALT
FILE LEVEL
ADARES REGENERATE
ADARES FILE=1,2,3,4
ADARES PLOGNUM=nnnn
FILE LEVEL:
NO LOCKS
FULL ACCESS
ADAEND/HALT
PAUSE: DATA INTEGRITY, BI/AI/DVT/SPANNED
87
ADARES REGENERATE. FILE vs DB LEVEL
USE FILE or DB LEVEL REGENERATE ?
PERFORMANCE: THE SAME
FILE LEVEL MUCH MORE FLEXIBLE TO STOP/START REGENS
FILE LEVEL ALLOWS TO REMOVE/ADD FILES FROM REGEN LIST
88
ADARES REGENERATE. FILE LEVEL JCL
//DDKARTE DD *
ADARES REGENERATE
ADARES PLOGNUM=nnnn
//
DD DSN=ADABAS.CNTL(FILES)
ADABAS.CNTL(FILES):
ADARES
ADARES
ADARES
: : :
ADARES
FILE=001
ADARES
FILE=002
ADARES
FILE=003 OR ADARES
: : :
FILE=255
ADARES
FILE=001,002,003,004
FILE=005,006,007,008
FILE=009,010,011,012
FILE=252,253,254,255
89
ADARES REGENERATE. TOCP=,CHOICES
PROGRAM
CMD = C1
CID = THIS
CPNAME=THIS
UTILITIES
AOS TOGGLE REUSE
(IN PARALLEL)
CPNAME=SYNS
TIME BASED
ADARUN INTNAS=secs
Dflt=3600
CPNAME=SYNS
90
ADARES REGENERATE. CHECKPT REPORT
ADARES COPY UTICPLIST
*
*
CPTYPE=4F - REUSE DS=ON
FOR FILE 241
CPNAME=SYNS, CPBLK=3, SESSION=22, JOBNAME=MYUSER
*
*
CPTYPE=4F - REUSE DS=OFF FOR FILE 241
CPNAME=SYNS, CPBLK=4, SESSION=22, JOBNAME=MYUSER
NOTE: SYNP,SYNV and UTILITY SYNS
ADARES ADAREP CPLIST
CP CP USER DATE
NAME TYP TYP
SYNS 60
2006-08-04
SYNS 5B EXU 2006-08-04
SYNC 01
2006-08-04
THIS 00 ET 2006-08-04
SYNS 4F ET 2006-08-04
SYNS 4F ET 2006-08-04
TIME
PLOG BLOCK VOLSER
NR
NR
NR
10:37:06 21
1232 DUAL
02:42:49 21
1233 DUAL
10:34:46 22
1 DUAL
11:45:22 22
2 DUAL
11:48:54 22
3 DUAL
11:49:06 22
4 DUAL
JOBNAME
ADABAS
ADAEND
AD168NUC
MYUSER
MYUSER
MYUSER
91
ADARES REGENERATE. NOTES
ADARES CAN BE RERUN IF PARMS DO NOT CHANGE !
Eg. NOAUTOBACKOUT to No NOAUTOBACKOUT
SYNS CHECKPOINTS ARE APPLIED BY ADARES
SYNP CHECKPOINTS ARE NOT (COND.CODE 4)
ADARES SHOULD ONLY BE RUN MPM, NOT SINGLE USER MODE
ADARES SHOULD USE MTR=YES
NOTE: ENSURE ADARUN NAB >= 16 X NT
92
RUNS
93
534
521
508
495
482
469
456
443
430
417
404
391
378
365
352
339
326
313
300
287
274
261
248
235
222
209
196
183
170
157
144
131
118
105
92
79
66
53
40
27
14
1
TIME (MINUTES)
ADARES REGENERATE. MTR=YES
30
25
20
15
MTR=NO ->
10
MTR=YES ->
5
0
ADARES REGENERATE. BACKOUT
UPDATES . . .
ADASAV
RESTORE
ADARES
REGNERATE
GOAL
CHKPT
EOF.PLOG
ADARES
BACKOUT
94
ADARES REGENERATE. BACKOUT
JCL:
STEP-1
COPY TO TAPE
STEP-2
ADARES BACKOUT
BACKWARD READABLE TAPE
IBM APAR’s
TAPE COMPRESSION
BACKOUT THE BACKOUT ??
BACKS OUT TO ??
95
UNIQUE DESCRIPTORS (UQ DE).
ADAINV
ADACMP
1,AA,04,A,DE,UQ
CMD=A1 / N1 / N2
FB=AA.
RB=C11
VALUE CNT ISN’s
RSP.CD.
198
B311 / 1 / 23
B344 / 1 / 1
C111 / 1 / 34
:::
Z323 / 1 / 33
ASSO INVERTED LIST
NOTE: VALUE CHECK MADE AGAINST NI VALUE
96
UQ DE.
OLDE PROBLEM, IN THEORY
1,AA,04,A,DE,UQ
ASSO INVERTED LIST
VALUE CNT ISN’s
USER 1
USER 2
C11 / 1 / 1
A1 FB=AA. RB=D11
D11 / 1 / 1
N1 FB=AA. RB=C11
C11 / 1 / 6
D11 / 1 / 1
TIMEOUT / BT
C11 / 2 / 1,6
NOT
UQ !
SOLUTION
97
UQ DE. LDEUQP
SAG MANUAL
Range: 0 – 16M
Default: 5000
PRACTICAL RANGE
Unique Descriptor Pool
5K - 100K
ONE ENTRY PER A1,E1 UQ.DE FOR EACH OPEN TRANSACTION.
ONLY BEFORE IMAGE REQUIRED (IN CASE OF BACKOUT).
ALL A1/N1/N2 CHECK INVERTED LIST AND LDEUQP
TOO BIG ? ??
TOO SMALL ? RSP.CODE 197
98
UQ DE. LDEUQP
FORMULA= 1. 2 * HI-WATER MARK
2. FOR UQ.DE’S:
(AVG. CONCURRENT TRANSACTIONS)
* (AVG. DELETE/UPDATES PER TRANSACTION)
* (15 + AVG.UQ.DE.LENGTH)
UQ.DE. HEADER:
RESERVED
POINTER TO U.Q.E.
FILE NUMBER
UQ.DE. NAME
UQ.DE. FORMAT
UQ.DE.LENGTH
99
UQ DE. LDEUQP
HI-WATER MARK
Pool / Queue
I Size
I Used I %Used I
------------------------------------------------: : :
Unique DE Pool(DUQ) I
50000 I
4300 I
8.6 I
OP. CONS.CMD DRES
SHUTDOWN DDPRINT
ADADBS DRES
AOS
DOES NOT DISPLAY
DOES DISPLAY
DOES DISPLAY
DOES DISPLAY
NOTE: ADADBS REFRESHSTAT DOES NOT RESET
100
UQ DE. LDEUQP PERFORMANCE ISSUES
1. FILL
1000
2000
4000
LDEUQP WITH
ENTRIES
ENTRIES
ENTRIES
2.EACH ENTRY FOR
FILE X, UQ.DE=AA
RUN PGM UPDATE BB
(NON UQ DE)
RUN PGM UPDATE DD
(UQ DE)
RUN PGM UPDATE AA
(UQ DE)
MEASURE RELATIVE ADABAS CPU
101
UQ DE. LDEUQP PERFORMANCE ISSUES
4000 ENTRIES
3
RELATIVE ADABAS CPU TIME
17x
2.5
2
2000 ENTRIES
10x
1.5
7x
1
1000 ENTRIES
6x
5x
0.5
3x
0
BB
BB
DD,UQ
DD,UQ
AA,UQ
AA,UQ
102
UQ DE. REMOVAL
FDT
1,AA,04,A,DE,UQ
(UQ BIT SET)
1. AOS RELEASE (PARALLEL)
2. ADAINV
FILE OUTAGE
OR
ZAP FDT
OR
SAG CE / EP / ER
103
UQ DE. REMOVAL
FDT FNR 19
1. DETERMINE FDT BLOCKS
1,ND,09,A,DE,UQ
(UQ BIT SET)
2. DETERMINE OFFSET INTO FDT
3. LOCK FILE (IF DATABASE UP)
4. ENSURE BLOCK NOT IN LBP
(IF DATABASE UP)
5. ADAZAP FDT
(USE DIFFERENT SVC IF DB UP)
6. UNLOCK FILE
7. (OPT) VERIFY WITH ADAREP
104
UQ DE. REMOVAL 1. DETERMINE FDT BLOCKS
ADABAS V8
ADAREP PHYSICAL LAYOUT:
FROM
TO
DEV TABLE
BLK
BLK BLKS TYPE TYPE FILE
: : :
1518 - 1522
5 3390 FDT
10
ADABAS V7:
FDT1 = 31 + MAXFILES + ( FNR – 1 ) x 4
FDTN = FDT1 + 3
Eg. V7 FNR = 19 MAXFILES = 255
FDT1 = 31 + 255 + (19 – 1 ) x 4 = 358
FDTN = 358 + 3
= 361
105
2. ADARPRI ASSO RABN 358 - 361 DDDRUCK (RABN 358):
FIND ‘ND’
V7 10b elements
0000 01AE0174 22C1C640 01010000 000C26C2 *.Þ.È.AF ..
..B*
0010 E7230100 00000016 22D3C14B 01010000 *X..
..LA... *
: : :
0140 00000142 22D5C409 01090000 014C22D5 * .â.ND... .<.N*
DE FLAG 6TH BYTE, OFFSET 0149
V8 20b elements
0000 0000033E 000002E8 22C1C600 00000040 * .. .Y.AF
*
: : :
0280 02840000 00000000 22D5C400 00000009 *.D
.ND
.*
0290 01090000 02980000 00000000 22D5D700 *.. .Q
.NP *
 DE FLAG 10TH BYTE, OFFSET 0291
106
UQ DE. REMOVAL 5. ADAZAP
DE FLAG = X’09’ 0000 1001
UQ BIT = X’08’ 0000 1000
//DDCARD
DD *
ADARUN SVC=XXX
ADARUN PROGRAM=ADAZAP
: : :
//DDKARTE
DD
*
ADAZAP MC=********
ADAZAP ASSO RABN=358,OFFSET=X'0149' OR = X’0291’
ADAZAP
VER=X'09'
ADAZAP
REP=X'01'
107
UQ DE. PROGRAM ISSUES
1. FOR UQ UPDATES, KEEP TRANSACTIONS SMALL
2. IF COMPRESSION DEFINED AS NU, BLANKS ARE NOT CHECKED
3. BEWARE OF FIELDS AT END OF RECORD TREATED AS NU
4. REALLY, REALLY JUSTIFY
108
EXCP vs EXCPVR
“VR” Page frames containing the IO control blocks are page-fixed
TO USE:
ALL ADABAS LOADLIBS (STEPLIB) ARE APF-AUTHORIZED
TO VERIFY, DDPRINT
ADAI65 msg:
EXCPVR IS BEING USED FOR THIS RUN
Or
EXCPVR IS NOT BEING USED FOR THIS RUN
IF EXCPVR, THEN ADARUN
PGFIX = NO / YES ? RELEASE PAGES AFTER IO COMPLETE?
109
EXCP vs EXCPVR
TO TEST:
1. START NUC WITH APF-LIBS OR NOT
2. RUN PROGRAM (64K IO’S, 1.1M COMMANDS)
3. END NUC
4. MEASURE (SECONDS):
TCB
SRB
CMDTIME
DURATION
ALTERNATE EXCP/EXCPVR
RUN EACH 5 TIMES
(VERSION 7.4.4)
110
EXCP vs EXCPVR RESULTS
SRB
TCB
40.5
4.1
40
4.05
39.5
4
39
3.95
38.5
3.9
38
3.85
37.5
3.8
37
3.75
36.5
3.7
3.65
36
1
2
3
4
1
5
CMDTIME
16.5
2
3
4
5
DURATION
150
148
16
146
144
15.5
142
15
140
138
14.5
136
134
14
132
13.5
130
1
2
3
4
5
1
2
ABOUT 2% BETTER WITH EXCPVR
3
4
5
111