Presentation is loading. Please wait.

Presentation is loading. Please wait.

ADABAS INTERNALS FOR PROGRAMMERS

Similar presentations


Presentation on theme: "ADABAS INTERNALS FOR PROGRAMMERS"— Presentation transcript:

1 ADABAS INTERNALS FOR PROGRAMMERS
Jim Poole

2 CONTENTS BY THE NUMBERS 3 DIRECT CALL EQUIVALENTS TO NATURAL/SQL 4
DIRECT CALL BASICS DIRECT CALL PATH INTERNALS OVERVIEW DATA STORAGE ASSOCIATOR OVERVIEW ADDRESS CONVERTER INVERTED LISTS WORK OVERVIEW GLOSSARY OF POOLS,QUEUES,TABLES,DB.PARMS OTHER KEY ADARUNS (AND RSP CODES) FB,IFB,(DE)COMPRESSION COMMAND PROCESSING ANALYZE CODE DDLOG

3 BY THE NUMBERS V4,V5,V6,V7 -> V8
THE MAX: RECORDS PER FILE: M or 4.3G (3-BYTE,4-BYTE(ISN) FILES PER DATABASE: or 65K or (1B,2B FNR) DECOMPRESSED LRECL: K COMPRESSED LRECL: DATASTORAGE BLKSIZE MINUS 4 3390= = (V8 SPANNED BLOCKS) FIELDS PER FILE: *36-10=926 4*ASSOBLKSIZE FOR FLDS,DEs,etc MU/PE OCCURRANCES: (V8 65K) SUPERDE PARENT FIELDS: 1 TO 20 FIELD TYPES: (SEE UTILITIES MANUAL: ADACMP)

4 DIRECT CALL EQUIVALENTS TO NATURAL/SQL
COMMAND NATURAL NATIVE SQL OP (IMPLICIT AT SIGNON) CONNECT CL (IMPLICIT AT SIGNOFF) DBCLOSE L1/L4 (CID) GET READ BY ISN (read records from FIND) READ ISN READ ISN with SEQUENCE L2/L5 CID READ PHYSICAL (default READ) L3/L6 CID READ LOGICAL (READ BY DE values) L9 CID HISTOGRAM NOTE 1: L4,L5,L6 ARE READ WITH HOLD NOTE 2: CID IS COMMAND ID REQUIRED (CID) IS OPTIONAL DEPENDING ON FUNCTION

5 DIRECT CALL TO NATURAL/SQL cont.
COMMAND NATURAL NATIVE SQL S1/S4 (CID) FIND S2 (CID) FIND SORTED BY FIND with ORDER BY clause S9 (CID) (sorted by) SORT S8 (CID) (compare ISN lists) COMPARE A1/A4 (CID) UPDATE E1/E4 (CID) DELETE N1 (CID) STORE INSERT N2 (CID) STORE USING NUMBER INSERT WHERE ISN= NOTE 2: CID IS COMMAND ID REQUIRED (CID) IS OPTIONAL DEPENDING ON FUNCTION

6 DIRECT CALL TO NATURAL/SQL cont.
COMMAND NATURAL NATIVE SQL ET END TRANSACTION COMMIT WORK BT BACKOUT TRANSACTION ROLLBACK WORK RC (CID) RELEASE (close loop) CLOSE RI RELEASE RELEASE ISN HI (put ISN on hold) HOLD ISN RE GET TRANSACTION DATA READ USERDATA NOTE 2: CID IS COMMAND ID REQUIRED (CID) IS OPTIONAL DEPENDING ON FUNCTION

7 DIRECT CALL BASICS CALL ADABAS USING CONTROL-BLOCK,
SEE ADABAS COMMAND REF MANUAL CALL ADABAS USING CONTROL-BLOCK, FORMAT-BUFFER, RECORD-BUFFER SEARCH-BUFFER, VALUE-BUFFER ISN-BUFFER CONTROL-BLOCK (req) BYTES FORMAT-BUFFER (opt) FIELDS TO READ/UPDATE RECORD-BUFFER (opt) VALUES RETURNED/UPDATED SEARCH-BUFFER (opt) SEARCH CRITERIA VALUE-BUFFER (opt) SEARCH VALUES ISN-BUFFER (opt) ISNs RESULTING FROM SEARCH

8 DIRECT CALL BASICS (CONTROL-BLOCK)
OFF SET LEN FIELD 00 2 RESERVED 02 2 COMMAND CODE L1,S1,ET, etc 04 4 COMMAND ID USED FOR: -ISN LIST ID -SEQ CMD PTR -ID IFB Eg HEX: NATURAL 1100 STATEMENT NO. PGM LEVEL CARDINAL NO. 0A 2 RESPONSE CODE 08 FILE NUMBER 1B DBID, 1B FNR 0C 4 ISN 10 ISN LOWER LIMIT 14 ISN QUANTITY

9 DIRECT CALL BASICS (CONTROL-BLOCK)
OFF SET LEN FIELD 18 2 FORMAT BUFFER LENGTH 1A 2 RECORD BUFFER LENGTH 1C 2 SEARCH BUFFER LENGTH 1E 2 FORMAT BUFFER LENGTH 20 2 ISN BUFFER LENGTH 22 1 COMMAND OPTION 1 23 COMMAND OPTION 2 24 8 ADDITIONS 1 L3,L6,L9 SEQ DE S2,S SORT Des S ISN LIST CIDs

10 DIRECT CALL BASICS (CONTROL-BLOCK)
OFF SET LEN FIELD 2C 4 ADDITIONS 2 COMPRESSED LRECL DECOMPRESSED LRECL RSP SUB-CODE 30 8 ADDITIONS 3 PASSWORD 38 8 ADDITIONS 4 CIPHER 40 8 ADDITIONS 5 GLOBAL FORMAT ID if First 2 bits set to 11 48 4 COMMAND TIME 4C 4 USER AREA

11 DIRECT CALL BASICS (FORMAT BUFFER)
BA,020,A,PP,10,U. EG. EG. BA,PP. EG. LJ,018,A,LKC,3,U,LK ,094,A. ELEMENTS (SEPARATED BY COMMAS): FIELD-NAME /OCC/, LENGTH , FORMAT FIELD-NAME /OCC1-OCC1/ FIELD-NAME “C”

12 DIRECT CALL BASICS (SEARCH BUFFER)
AS,018,A. EG. AS,018,A,D,BB,10,U EG. EG. AS,S,AS,D,BB. EG. (CID1),D,AB,3,U. ELEMENTS (SEPARATED BY COMMAS): FIELD-NAME or CID SAMPLE CONNECTORS: D - AND O - SAME DE R - DIFFERENT DE S THRU N NOT used with THRU

13 DIRECT CALL PATH ADABAS PROGRAM ADALINK 148 151 152 254 255 RSP CODES
CALL ADABAS ADALINK DETERMINE DBID DETERMINE CMD TYPE CREATE ADABAS USERID RSP CODES SVC/ ROUTER DB ID TABLE ADABAS BUILD CQE MOVE UB TO NAB NOTE: UB = CB+FB+RB+SB+VB+IB

14 INTERNALS OVERVIEW CMD.Q. CMD.Q. TBQ TBQ TBI TBI THREADS THREADS
NC=20-200 CMD.Q. NC=20-200 USR-CID-INFO LQ=20-400K TBQ USR-CID-INFO LQ=20-400K TBQ USR-CID-INFO LI=20-100K TBI USR-CID-INFO LI=20-100K TBI NT=5-30 THREADS NT=5-30 THREADS CQE SELECT CQE SELECT LS= LWP=1-5M WORK POOL LFP=.5-5M FORMAT POOL USER.Q NU= USR-CID-INFO BUFFER POOL ATTACHED BUFFERS LBP=30-100M ASSO BLKSIZE=2544 ASSO BLKSIZE=2544 DATA BLKSIZE=5064 DATA BLKSIZE=5064 WORK BLKSIZE=5724 NAB=20-200 HOLD.Q FCB FDT PART 2 NH=4K-60K UI PART 3 RECs MI NI PLOGS AC BLKSIZE=5724

15 DATA STORAGE (DS) FILE A | FILE B| FILE C | unused | FILE D | unused . . . . . . RABN 1 RABN 2 RABN 3 RABN N NOTES: FIXED ALLOCATION FIXED BLOCKSIZE (3390= =10796) EACH FILE IS A RANGE OF DATASTORAGE RABNS RABN = BLOCK = RELATIVE ADABAS BLOCK NUMBER

16 DS RABN HDR RECORD RECORD RECORD FREE SPACE REC LEN Fields…
Block length X 0004 PAD (DSST) DSST: PER DS BLOCK: SPACE FROM LAST REC TO PAD

17 ? DS RABN: UPDATE RECORD HDR RECORD RECORD RECORD (DSST) PAD HDR
DSST: PER DS BLOCK: SPACE FROM LAST REC TO PAD

18 ? ? ? DS RABN: ADD RECORD HDR RECORD RECORD RECORD (DSST) PAD RECORD
DSST: PER DS BLOCK: SPACE FROM LAST REC TO PAD

19 DS RABN: REUSE DS ? SET BY DBA (AOS,ADADBS)
USED FOR NEW RECORDS AND POPPED RECORDS OFF: GO TO 1ST UNUSED DS RABN ON: SCAN DSST (UP TO X ENTRIES) IF SPACE USE IT IF NO SPACE, GO TO 1ST UNUSED DS RABN NEXT DSST SCAN, NEXT ENTRY ? 1ST UNUSED DSST: PER DS BLOCK: SPACE FROM LAST REC TO PAD

20 DS RABN: PROBLEM/TIPS READ EMPLOYEES PHYSICAL
COST-ADJUSTMENT = 2 * COST ADJUSTMENT UPDATE SAME LOOP ? ? ? ? ? ? ? ? READ EMPLOYEES PHYSICAL IF YEAR > 99 THEN end-program-logic IF YEAR < 60 THEN YEAR = YEAR ELSE YEAR = YEAR UPDATE SAME LOOP ? ? ? ? ? ? ? ?

21 DS RECORD 2B 4B IRL ISN FIELD 1 FIELD 2 FIELD 3 FIELD N
IRL = Inclusive Record Length ISN = Internal Sequence Number RECORD COMPRESSED AT THE FIELD LEVEL FIELD: L/VALUE COMPRESSED, NULL SUPPRESSED FIELDS (NU) VALUE FIXED LENGTH FIELDS (FI) EFC BYTE EMPTY FIELD COUNTER, X FIELDS EMPTY MU/PE C MU/PE OCCURRENCE COUNTER

22 FIELD COMPRESSION/ TIPS
NU – NULL SUPPRESS CAUTION ON DE, AND SOURCE FOR DE – DEFAULT COMPRESSION FI – FIXED COMPRESSION IF NEVER EVER GOING TO CHANGE LENGTH Eg. YY TO CHANGE COMPRESSION OPTION: 1. ADACMP DECOMPRESS FILE 2. ADACMP COMPRESS FILE 3. ADALOD FILE

23 PUT FREQUENTLY USED FIELDS UP FRONT
DS RECORD AGAIN/TIPS 2B 4B IRL ISN FIELD 1 FIELD 2 LAST EMPTY FIELD 1. DECOMPRESS UNTIL LAST FIELD REQUESTED. PUT FREQUENTLY USED FIELDS UP FRONT 2. EMPTY FIELDS AT END OF RECORD ARE TREATED AS NU CHANGING FIELD LENGTHS IS EASY (NU,dflt) ADDING NEW FIELDS IS EASY INSERTING NEW FIELDS IS NOT FOR NEW PE’S 02,XA,1,A,NU 02,XN,1,P,NU

24 ASSOCIATOR OVERVIEW FCBs | FDTs | DSST | FILE-X AC | FILE-X UI/MI | FILE-X NI |unused . . . . . . RABN 1 RABN 2 RABN 3 RABN N NOTES: FIXED BLOCKSIZE - (3390= =4136) FCB – FILE CONTROL BLOCK FILE OPTIONS (eg. REUSE-DS, REUSE-ISN) POINTER TO ALL FILE EXTENTS FDT - FIELD DEFINITION TABLE. FIELDS, FORMAT,LENGTHS,OPTIONS,TYPE,etc

25 ADDRESS CONVERTER (AC)
ISN ENTRY DS RABN 1 DS RABN 2 DS RABN 5 DS RABN 8 1 2 ONE PER FILE, RANGE OF ASSO RABNS ONE ENTRY PER POSSIBLE ISN 3 BYTES ASSO BLOCK (2544) = 848 ENTRIES EACH ENTRY CONTAINS DS RABN OR 0 COMPACT: 20M RECORD FILE IN 24K ASSO BLOCKS E. FAST ACCESS: OFFSET ADDRESSING 3 4 5 6 7 8 9 10 11 12 13 14

26 AC: REUSE ISN/TIPS SET BY DBA (AOS,ADADBS) USED FOR NEW RECORDS
OFF: GO TO TOPISN + 1: ON: SCAN FCB AND AC (UP TO 1 AC BLOCK) IF ISN AVAILABLE, USE IT IF NO ISN, GO TO TOPISN + 1 NEXT AC SCAN, NEXT AC BLOCK TOPISN = 222,222 STORE EMPLOYEES WRITE *ISN ISN = ? ? ? ? ? ? ? ?

27 INVERTED LISTS THE CONCEPTUAL VIEW VALUE CNT ISN LIST UQ-DE MU-DE
SUB-DE PE-DE SUPER-DE NU-DE HYPER-DE PHONETIC-DE L ADAM 3 2 , 5 , 10 L ANSEL 1 3 L AXEL 200 1,4,6,20,. . .,1020 L BAIN 3 11, 12,70 L BEERE 39 7,9,13,…,2010 L BINN 3 8,15,3010 SORTED BY VALUE BY ISN 1 INVERTED LIST PER DESCRIPTOR

28 INVERTED LISTS A MORE ACCURATE VIEW FCB <= ( 1 BLOCK AT HIGHEST)
UI => MI => NI => MULTI-LEVEL INDEX ( 3 – 15 ) BUILT OF ASSO NI AND UI/MI RABN RANGES EACH RABN CONTAINS: a. 2 BYTE FIELD DEFINING USED BYTES b. 2 BYTE LEVEL INDICATOR c. X ELEMENTS d. PAD

29 NI: NORMAL INDEX BLOCKS
BLK LEN 01 NI-ELEMENT PAD DE LEN DE-VALUE ISN COUNT ISNa ISNb ISNc ISNx 1Byte X Bytes Bytes Bytes Each EACH NI BLOCK IS UNIQUE TO ONE DESCRIPTOR. WITHIN EACH NI, SORTED BY VALUE BY ISN TWO SUCCESSIVE NI BLOCKS MAY NOT BE IN SEQUENCE. DE-VALUEs ARE COMPRESSED IF COUNT (ISQ) > 127, THEN 2b COUNT USED

30 NI: NORMAL INDEX BLOCKS
?? HOW MUCH PER BLOCK ?? NI ELEMENT = 1 + VAL.LEN + (1or2) + (3or4)xN MEAN COMPRESSED DE-LENGTH=10 / 3b ISN / UQ.DE (ISQ=1) DEVICE BLKSIZE FORMULA MAX ELEMENTS PER BLOCK (2544-4) / ( * 1 ) (4136-4) / ( * 1 ) EXAMPLE 1 MEAN COMPR DE-LEN=40 / 3b ISN / MAX ISNs PER BLOCK ?? DEVICE BLKSIZE FORMULA MAX ISNs PER BLOCK ((2544-4) - ( )) / ((4136-4) - ( )) / USING 4b ISNs USING 4b ISNs EXAMPLE 2

31 MI: MAIN INDEX BLOCKS MI-ELEMENT PAD DE-VALUE ISN PTR TO NI RABN
BLK LEN 02 MI-ELEMENT PAD DE LEN DE-VALUE ISN PTR TO NI RABN 1Byte X Bytes or 4 Bytes Bytes EACH MI BLOCK IS UNIQUE TO ONE DESCRIPTOR. WITHIN EACH MI, SORTED BY VALUE BY ISN TWO SUCCESSIVE MI BLOCKS MAY NOT BE IN SEQUENCE. DE-VALUEs ARE COMPRESSED NI RABN PTR IS NI BLOCK WHOSE FIRST ELEMENT CONTAINS THIS DE-VALUE/ISN

32 MI: MAIN INDEX BLOCKS MI NI NI NI ADAM BAIN ADAM 3 2,5,10 ANSEL 1 AXEL
BAIN MI NI ADAM 3 2,5,10 ANSEL 1 AXEL 200 1,4,6,20,111,222,. . .,1020 PAD NI BEERE 39 7,9,13,…,2010 BINN 3 8,15,3010 BAIN 11,12,70 PAD NI

33 MI: NORMAL INDEX BLOCKS
?? HOW MUCH PER BLOCK ?? MI ELEMENT = 1 + VAL.LEN + (3or4) + 3 MEAN COMPRESSED DE-LENGTH=10 / 3b ISN DEVICE BLKSIZE FORMULA MAX NI BLOCKS (2544-4) / ( ) (4136-4) / ( ) EXAMPLE

34 UI: UPPER INDEX BLOCKS UI-ELEMENT PAD DE NAME FLAG DE-LEN DE-VALUE ISN
BLK LEN 03- 15 UI-ELEMENT PAD DE NAME FLAG DE-LEN DE-VALUE ISN PTR TO RABN 2b b b X Bytes or4 Bytes bytes EACH U BLOCK CAN HAVE MULTIPLE DESCRIPTORS. WITHIN EACH UI, SORTED BY DE BY VALUE BY ISN TWO SUCCESSIVE UI BLOCKS MAY NOT BE IN SEQUENCE. DE-VALUEs ARE COMPRESSED RABN PTR IS TO LOWER BLOCK WHOSE FIRST ELEMENT CONTAINS THIS DE-VALUE/ISN MULTIPLE LEVELS OF UI BLOCKS ARE POSSIBLE

35 DE VALUES SPANNING BLOCKS
MI ADAM ADAM 12345 BAKER 128 NI ???? NI ADAM 700 1,4,6,20,111,222, ,12000 PAD NI ADAM 2 12345,50000 ANSEL 1 12 PAD HISTOGRAM MAY READ MULTIPLE NI BLOCKS

36 DE VALUES SPANNING BLOCKS
MAX 832 ISNs/BLK (3390,3b ISN) MI/NI ESTIMATION IF MI: ADAM BAIN ISN MAX ISNQ FOR ADAM IS ?? IF MI: ADAM BAIN ISN MAX ISNQ FOR ANSEL IS ?? IF MI: ADAM BAIN ISN MAX ISNQ FOR ADAM IS ?? 12345 IF MI: ADAM BURK ISN MAX ISNQ FOR BAIN IS ?? BAIN 12345

37 UPDATING INVERTED LISTS
UI MD MD MX NY NI MI UI MX 50/50 BLOCK SPLIT UPDATE NEXT HIGHEST MD MI MD NY NI MD MX MD MX MD MX

38 UPDATING INVERTED LISTS
INVOICES EXAMPLE DE=INVOICE NO. SORTED ASCENDING B. SORTED DESCENDING BY INVOICE NO. BY INVOICE NO. READ WORK FILE STORE CUSTOMER-FILE READ WORK FILE STORE CUSTOMER-FILE

39 FIC (FORWARD INDEX COMPRESSION
ADABAS 7 OPTION AT FILE LEVEL DONE AT FILE LOAD OR REORDER FIC ONLY WITHIN BLOCK 40-60% ASSO SAVINGS FASTER READS OF INVERTED LISTS / ASSOCIATOR NO FIC FIC 6 BARKER 6 BARNES 6 BARNEY 4 BARR 7 BARRETT 4 BARRY 7 0 BARKER 4 3 NES 2 5 Y 2 3 R 4 4 ETT 2 4 Y 33 BYTES 21 BYTES

40 WORK OVERVIEW I II III ADARUN LP= USED FOR: BACKOUTS, AUTORESTART
CONTAINS: BEFORE/AFTER IMAGES OF RECORDS DVTs (DESCRIPTOR VALUE TABLE) ET,BT,BUFFER FLUSHES, etc. TOO SMALL: RSP CD 9 – 15 , 8 II ADARUN LWKP2= (or FORMULA) USED FOR: COMPLEX FINDS CONTAINS: INTERMEDIATE ISN AND BIT STRINGS TOO SMALL: DELAYED FINDS, RSP.CD 74 III WORKSIZE – LP – LWKP2 USED FOR: RESULTANT ISN LISTS CONTAINS: RESULTANT ISN LISTS TOO SMALL: RSP.CD 73 CYLS

41 INTERNALS OVERVIEW AGAIN
CMD.Q. NC=20-200 LS= LWP=1-5M WORK POOL USR-CID-INFO LQ=20-400K TBQ LI=20-100K TBI LFP=.5-5M FORMAT POOL BUFFER POOL LBP=30-100M HOLD.Q NH=4K-60K SECURITY POOL LCP= UQ DE POOL LDEUQP= CQE SELECT NT=5-30 THREADS USER.Q NU= NAB=20-200 ATTACHED BUFFERS ASSO BLKSIZE=2544 ASSO BLKSIZE=2544 DATA BLKSIZE=5064 DATA BLKSIZE=5064 WORK BLKSIZE=5724 FCB FDT PART 2 UI PART 3 RECs MI NI PLOGS AC BLKSIZE=5724

42 GLOSSARY OF P,T,Q ADARUN NAME-DEFINITION RC NC 151
(CQ)COMMAND QUEUE- DB CALLS IN TRANSIT (WAIT,IN,RETURN NAB 255 ATTACHED BUFFERS – USER BUFFERS PER CQ ELEMENT NT THREADS – WHERE CMD IS ACTUALLY EXECUTED NU 72 (UQ) USER QUEUE – ONE ELEMENT PER USER NH (HQ) HOLD QUEUE – FILE/ISNS ON HOLD 9-1 LQ 70 (TBQ) TABLE OF SEQUENTIAL COMMANDS – FOR L3/6,L2/5,L9 BY USER-CID, POINTER FOR USER SEQUENTAIL PROCESS LI 71 (TBI) TABLE OF RESULTANT ISN LISTS – FOR Sx,L1/4 BY USER-CID LWP 88 WORK POOL – PER THREAD, WORK AREA FOR COMMANDS LFP 42 (FP)FORMAT POOL – INTERNAL FORMAT BUFFERS,BY USER-CID LBP IO BUFFER POOL – MOST FREQUENT ASSO/DATA BLOCKS LDEUQP 197 UNIQUE DESCRIPTOR POOL – IN FLIGHT UPDATED UQ DEs LCP SECURITY POOL 204

43 OTHER KEY ADARUNS SPACE/COUNT LIMITS ADARUN NAME-DEFINITION RC
NQCID 46 MAX CIDs PER USER NISNHQ 47 MAX FNR/ISNs ON HOLD PER PER USER NSISN MAX ISNs PER ENTRY IN TBI (ISN LIST) TABLE LU 152 MAX SPACE FOR USER BUFFERS ON A COMMAND (64K) LS 1 MAX SPACE FOR WORK POOL (LWP) ON A COMMAND SWITCHES NONDES 68 ARE NON DESCRIPTOR SEARCHES ALLOWED?

44 OTHER KEY ADARUNS (cont)
TIMERS ADARUN NAME-DEFINITION RC TT TRANSACTION TIME LIMIT 9-2 TNAE 9-3 NON-ACTIVITY TIME LIMIT FOR ET USERS TNAX 9-3 NON-ACTIVITY TIME LIMIT FOR EXU USERS TNAA 9-3 NON-ACTIVITY TIME LIMIT FOR ACCESS ONLY USERS CT 254 COMMAND NOT RETURNED TO USER WITHIN TIME TLSCMD 7 TIME LIMIT EXCEEDED FOR SEARCH/FIND COMMAND

45 FB,IFB,(DE)COMPRESSION
FORMAT BUFFER, INTERNAL FORMAT BUFFER I. USER FB IFB BB CC AA HD CPU BB,CC,AA. TRANSLATE ( IFB Len = *F ) II. IFB BB CC AA HD USER RB CPU BB-VALUE,CC-VAL.,AA-VAL. DE.COMPRESS AA-BB-CC-DD---- DS COMPRESSED RECORD

46 FB,IFB,(DE)COMPRESSION
FORMAT TRANSLATION CAN BE CPU INTENSIVE COMPRESSION/DECOMPRESSION CAN BE CPU INTENSIVE 1. FIELD SEQUENCE DOES NOT MATTER IN FILE DESIGN: FREQUENTLY USED FIELDS SHOULD BE UP FRONT (DECOMPRESS/COMPRESS UP TO LAST FIELD IN IFB) 3. LIMIT VIEWS TO JUST DESIRED FIELDS

47 FB,IFB,(DE)COMPRESSION
3. LIMIT VIEWS TO JUST DESIRED FIELDS EXAMPLE 20 FIELD VIEW CASE 1 SPECIFIC CASE 2 GENERIC 214 FIELD VIEW INCREASE BUFFER LENGTH BYTES BYTES ELAPSED TIME MIN MIN % USER CPU % DATABASE CPU %

48 TRANSL. SCAN OVERWRITES CPU ONE IFB / VIEW / USER ONE IFB / VIEW
FB,IFB,GFID,LFP CPU . . . GLOBAL FORMAT ID, Le FORMAT POOL TRANSL. SCAN OVERWRITES USER FB CPU IFB FORMAT POOL IF CID /= 0/b (AND NO GFID) IFB STORED IN LFP FOR RE-USE ONE IFB / VIEW / USER IF GFID, GLOBAL IFB STORED IN LFP FOR RE-USE ONE IFB / VIEW

49 FB,IFB,GFID,LFP UQ GFIDs FORMAT POOL
UQE: USER IFBs CHAINED / MOST FREQUENT IFBs IN UQE GFIDs CHAINED USE CID TO SAVE ON FORMAT TRANSLATIONS RELEASE CIDs (RC) WHEN DONE USE GFIDs FOR COMMON VIEWS DO NOT USE GFIDs FOR VIEWS RARELY USED

50 NATURAL GFID RUN SOURCE => NO GFID EX OBJECT => GFID DEFAULT: OPTION: 0010 OPTIONS GFID=OFF USE ON LOW-SHARE PROGRAMS

51 COMMAND PROCESSING COMMON USAGE CMD X X X ? X X X X X X X ? X X X X X
IO STRUCTURES MEMORY CMD FCB UI-n MI NI AC DS W1 W2 W3 TBQ TBI LWP HQ L2/5 X X X ? L3/6 X X X X X X X ? L9 X X X X X L1/4 X X X ? ? ? RC ? ? UPD X ? ? ? X X X X Sx X X X X ? ? ? ? ? ? ? HI/RI X OP/CL ET X X BT X ? ? ? ? X X X X – USED ? – MAY USE

52 COMMAND PROCESSING NOTES
UI-n - MAY BE MULTIPLE IO DEPENDING ON INDEX LEVELS W1,W2,W3 - PARTS OF WORK DATASET DS - (DE)COMPRESSION OF RECORD REQUIRES IFB,FDT,FP LWP – SCRATCH AREA FOR ALL COMMANDS (DVT,IFB,etc), X ONLY IF USER MAY BE OVER 32K HQ ? – USED IF REQUEST TO PUT REC ON HOLD (L5,L6,L4,S4) UPD – COMMANDS MAY BE A1,E1,N1/N2 Sx - COMMANDS MAY BE S1,S2,S4,S8,S9 ET/BT,OP/CL – ASSUME RESTART DATA NOT BEING USED

53 X CMD PROC. RC TBQ III W RELEASE CID RESOURCES CID TBI FP IFB
IF CID IS: IF COPT1/2 IS: X’ ’ ALL X’ ’ USER CIDs NON-BLANK THIS NON-ZERO CID ONLY Blanks -- TBQ,TBI,FP F FP I TBI S TBS G TBQ,TBI,FP >= X TBQ,TBI >= X NOTE: FOR OTHER OPTIONS (eg. GFIDs) SEE MANUAL

54 CMD PROC. UPDs USES BEFORE/AFTER IMAGE (BI/AI) OF DS COMPRESSED RECORD
DVT – DESCRIPTOR VALUE TABLE FIRST, BUILD DS AI. IF DS BI = DS AI, THEN NO UPDATE, RSP.CD=0 SECOND, BUILD BI/AI FOR DVT ENTRIES ONLY FOR CHANGED DESCRIPTOR VALUES ELSE: NOTE: ET/BT, NO WORK IF NO CHANGES

55 ???? CMD PROC. UPDs EXAMPLE BATCH JOB 2 MILLION RECORD FILE
1 MILLION UPDATES ZERO UPDATES ON PLOG ????

56 ANALYZE CODE APPLICATION ADABAS NATURAL DDLOG COMMAND LOGS
APAS/INSIGHT REVIEW TRIM HOMEGROWN + ADABAS IO + ADABAS DURATION + SQL, DIRECT CALLS, etc

57 DDLOG TEST DBLOG ON TEST DBLOG SHOW TEST DBLOG OFF TEST DBLOG MENU B X
Code Function B Begin Logging of ADABAS Commands E End and Display Log Records S Snapshot of Specific ADABAS Commands . Exit Code .. _ Command .. __ Skip _____ Program .... ____ DBID _____ FNR _____ Line from Low Resp . _____ High Resp _ Line to Optional Buffers for Code B FB .. _ RB .. _ SB .. _ VB .. _ IB .. _ X B

58 DDLOG 0010 FIND DAFILE CODE= 'GN13' 0020 DISPLAY *ISN ABFLD CODE RLFLD
0030 END M No Cmd DB FNR Rsp ISN ISQ CID CID(Hex) OP Pgm Line _ 1 RC F ATEST _ 2 S ??? POOLTEST 0010 _ 3 L ??? N POOLTEST 0010 _ 4 L ??? N POOLTEST 0010 _ 5 L ??? N POOLTEST 0010 _ 6 L ??? N POOLTEST 0010 _ 7 L ??? N POOLTEST 0010 _ 8 RC ??? SI POOLTEST 0010 _ 9 RC F POOLTEST 0030 _ 10 RC F POOLTEST 0030 M: C-CONTROL BLOCK F-FORMAT BUFFER R-RECORD BUFFER S-SEARCH BUFFER V-VALUE BUFFER I-ISN BUFFER

59 DDLOG M: C-CONTROL BLOCK
_ SEQ NO PROGRAM .. POOLTEST LINE Command Code .. S1 Command ID CB Start D5 Response Code ISN FNR first .. 00 ISN Low Limit ISN Quantity FNR last ... F1 FB Length B RB Length D SB Length VB Length IB Length Command Opts .. Additions Command Time Additions ?? D User Area Additions Additions Global FID .... F8B848F2D73609F1

60 DDLOG M: S-SEARCH BUFFER M: F-FORMAT BUFFER
_ Seq No Search Buffer 0000 * C1C46BF4 6BC14B * AD,4,A * 0010 * * * M: F-FORMAT BUFFER _ Seq No Format Buffer 0000 * C1C26BF0 F0F36BD7 6BC1C46B F0F0F46B * AB,003,P,AD,004, * 0010 * C16BD9D3 6BF0F0F6 6BE44B * A,RL,006,U *

61 TEST FOR EACH NEW RELEASE
ANALYZE CODE TEST FOR EACH NEW RELEASE OF ADABAS AND NATURAL


Download ppt "ADABAS INTERNALS FOR PROGRAMMERS"

Similar presentations


Ads by Google