ADABAS V8 AND MISCELLANEOUS TOPICS

Slides:



Advertisements
Similar presentations
More on File Management
Advertisements

DB-03: A Tour of the OpenEdge™ RDBMS Storage Architecture Richard Banville Technical Fellow.
The Linux Kernel: Memory Management
Free Space and Allocation Issues
Efficient Adabas Access
File Management Chapter 12. File Management A file is a named entity used to save results from a program or provide data to a program. Access control.
File Organizations Sept. 2012Yangjun Chen ACS-3902/31 Outline: File Organization Hardware Description of Disk Devices Buffering of Blocks File Records.
File Management Systems
Chapter 12 File Management
Chapter 12 File Management
CS 4432lecture #61 CS4432: Database Systems II Lecture #6 Professor Elke A. Rundensteiner.
1 - Oracle Server Architecture Overview
CS 333 Introduction to Operating Systems Class 18 - File System Performance Jonathan Walpole Computer Science Portland State University.
Harvard University Oracle Database Administration Session 5 Data Storage.
E.G.M. PetrakisHashing1 Hashing on the Disk  Keys are stored in “disk pages” (“buckets”)  several records fit within one page  Retrieval:  find address.
1.1 CAS CS 460/660 Introduction to Database Systems File Organization Slides from UC Berkeley.
Chapter 5: Working with data sets
With Microsoft Access 2010 © 2011 Pearson Education, Inc. Publishing as Prentice Hall1 PowerPoint Presentation to Accompany GO! with Microsoft ® Access.
1 ADASTRIP-7/01 ADASTRIPADASTRIP Presented by Treehouse Software.
Backup & Recovery 1.
Administration etc.. What is this ? This section is devoted to those bits that I could not find another home for… Again these may be useless, but humour.
I/O Systems ◦ Operating Systems ◦ CS550. Note:  Based on Operating Systems Concepts by Silberschatz, Galvin, and Gagne  Strongly recommended to read.
SQL Server 2008 Implementation and Maintenance Chapter 7: Performing Backups and Restores.
Global Update with Confidence Mary M. Strouse Innovative Users Group May 19, 2009.
Real-Time Concepts for Embedded Systems Author: Qing Li with Caroline Yao ISBN: CMPBooks.
CHP - 9 File Structures. INTRODUCTION In some of the previous chapters, we have discussed representations of and operations on data structures. These.
File Management Chapter 12. File Management File management system is considered part of the operating system Input to applications is by means of a file.
Chapter Oracle Server An Oracle Server consists of an Oracle database (stored data, control and log files.) The Server will support SQL to define.
Chapter 7 Making Backups with RMAN. Objectives Explain backup sets and image copies RMAN Backup modes’ Types of files backed up Backup destinations Specifying.
By Lecturer / Aisha Dawood 1.  You can control the number of dispatcher processes in the instance. Unlike the number of shared servers, the number of.
Extents, segments and blocks in detail. Database structure Database Table spaces Segment Extent Oracle block O/S block Data file logical physical.
Data and its manifestations. Storage and Retrieval techniques.
Architecture Rajesh. Components of Database Engine.
7202ICT – Database Administration
File Processing - Indexing MVNC1 Indexing Jim Skon.
1 CS 430 Database Theory Winter 2005 Lecture 16: Inside a DBMS.
Indexed and Relative File Processing
Renesas Technology America, Inc. Flash!. CPU Rewrite CPU-rewrite is a term that refers to an Renesas MCU’s ability to erase/program its own internal Flash.
1 MULTI-FETCH IN AND OUT OF NATURAL Jim Poole. 2 CONTENTS 1.WHAT’S NOT COVERED 2.OVERALL 3.SYNTAX 4.HOW IT WORKS 5.NATURAL vs ADAMLF 6.UPDATING 7.HOW.
1/14/2005Yan Huang - CSCI5330 Database Implementation – Storage and File Structure Storage and File Structure II Some of the slides are from slides of.
CS333 Intro to Operating Systems Jonathan Walpole.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
Lecture 20 FSCK & Journaling. FFS Review A few contributions: hybrid block size groups smart allocation.
CHAPTER 3-3: PAGE MAPPING MEMORY MANAGEMENT. VIRTUAL MEMORY Key Idea Disassociate addresses referenced in a running process from addresses available in.
© 2009 IBM Corporation IWS z/OS SPEs Auditing enhancements.
Database Applications (15-415) DBMS Internals- Part III Lecture 13, March 06, 2016 Mohammad Hammoud.
Day 28 File System.
ADABAS INTERNALS FOR PROGRAMMERS
Storage and File Organization
CS222: Principles of Data Management Lecture #4 Catalogs, Buffer Manager, File Organizations Instructor: Chen Li.
Adabas Performance Topics
Memory Management Virtual Memory.
Memory Management.
? ? M. RSP.CD M USER RSP.CD: ULD/LOAD RECORD FILE
SIMPLE SYNCHRONIZATION FLIP BETWEEN PRIMARY AND SHADOW
Innovation World 2014 ADABAS 8.3 Jim Poole.
Module 11: File Structure
CHP - 9 File Structures.
CS522 Advanced database Systems
ADABAS V8 (IN ONE HOUR) Jim Poole.
File Management.
Database Applications (15-415) DBMS Internals- Part III Lecture 15, March 11, 2018 Mohammad Hammoud.
Chapter 3 The DATA DIVISION.
Indexing 4/11/2019.
COMP755 Advanced Operating Systems
Internal Representation of Files
CS222/CS122C: Principles of Data Management UCI, Fall 2018 Notes #03 Row/Column Stores, Heap Files, Buffer Manager, Catalogs Instructor: Chen Li.
CSE 542: Operating Systems
Presentation transcript:

ADABAS V8 AND MISCELLANEOUS TOPICS Jim Poole

ADABAS V8 SPANNED RECORDS LOB SUPPORT MUPEX, BEYOND 191 ACBX LINK / SVC / NUC 6. MULTIPLE EXTENTS 7. FDT 8. MISCELLANEOUS

V8 SPANNED RECORDS.WHY 1 PRIMARY RECORD + UP TO 4 SECONDARY RECORDS RECORD SIZE LIMITED BY COMPRESSED RECORD SIZE (RSP.CD 49) : COMPRESSED RECORD DS BLOCKSIZE: 3390: 5,064 8391: 10,796 8393: 27,644 PRIOR 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 V8: NOTE: ACTUAL DATA LIMITED BY BLOCK HEADER, RECORD HEADER, SPAN HEADER

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

V8 SPANNED RECORDS. SET UP ADADBS RECORDSPANNING FILE=fnr,MODE=ON !! REQUIRES EXCLUSIVE FILE USE !! or ADACMP COMPRESS SPAN ? 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

V8 SPANNED RECORDS. ADAREP SPANNED RECS EXIST TOP-ISN = 1,000 MAX-ISN EXPECTED = 20,669 RECORDS LOADED = 1,000 MIN-ISN = 1 TOP AC2 ISN = 1,000 MAX AC2 ISN EXP. = 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

V8 SPANNED RECORDS. REMOVAL ADADBS RECORDSPANNING FILE=fnr,MODE=OFF TIMELIMIT= (DFLT=60) !! REQUIRES EXCLUSIVE FILE USE !! SCAN ALL DS TO ENSURE NO SPANNED RECORDS EXIST IF TIMELIMIT EXCEEDED, ADADBS ABORTS ? CE ? : CHECK AC2 VERSUS DS ?? NOTE: SAME CHECKPOINT AS MODE=ON

V8 SPANNED RECORDS. INTERNALS NO SPANNED RECORDS DS RABN: BH RH fields FREE SPACE BLOCK HEADER 4b 2b – INCLUSIVE USED BLOCK LENGTH 2b – x’0004’ BH RECORD HEADER 6b 2b – INCLUSIVE RECORD LENGTH 4b – ISN RH FIELDS: LENGTHS MU/PE COUNTERS EMPTY FLD COUNTS VALUES fields

V8 SPANNED RECORDS. INTERNALS ONE SPANNED RECORD DS RABN: BH RH fields RH fields fields RH fields fields FS 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 RH

V8 SPANNED RECORDS. Eg. 1 INTERNALS MODE=ON -IBL -IRL ---ISN---- DS RABN X 0000 0E820004 0E7E0000 00049999 9FF4E7F4 0010 F0F7F9F8 F1404040 40000F00 414FD540 : : : UPDATE A FEW 100 MORE BYTES: 0000 2A050004 2A010000 00000000 00040081 0010 00000001 00000004 99999FF4 E7F4F0F7 : : : DS RABN X ---ISN---- INDICATOR -IRL PRI. ISN NEXT ISN 0000 07AA0004 07A60000 00000000 00010041 0010 00000000 00000004 80FCC1C1 C1C1C1C1 : : : DS RABN Y INDICATOR ---ISN---- -IRL NEXT ISN PRI. ISN

V8 SPANNED RECORDS. Eg. 2 INTERNALS ASSO DATA (hdrs) ISN IND NEXT PRI AC (7) PRI 7 x81 7 7 AC2 (7) (21) (22) SEC 7 x41 21 7 21 x41 22 7 SEC SEC 22 x41 0 7 1. PRI ISN IN AC 2. SEC ISN’s IN AC2 3. SEC ISN MAY EQUAL PRI ISN NOTES:

V8 SPANNED RECORDS. UPDATE to 1st SPAN 1ST UNUSED DS EXTENT: … … REC5-PRI REC5-SEC A1 OR N1/N2 12K BYTES REC-5, REC6 OR REC-6, REC5 OR REC5 “ POP – N – SPAN “ FOR 1ST SPANNED RECORD:

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

V8 SPANNED RECORDS. UPDATES PLOG PLOG ALWAYS CONTAINS PRIMARY RECORD (BI / AI) PLOG ONLY CONTAINS SECONDARY RECS IF UPDATED PLOG UPD: PRIMARY SECONDARY-1 SECONDARY-2 BI/AI PRI PRIMARY SECONDARY-1 SECONDARY-2 UPD: BI/AI PRI BI/AI SEC2 PRIMARY SECONDARY-1 SECONDARY-2 UPD: BI/AI PRI BI/AI SEC1

V8 SPANNED RECORDS. PROGRAM PERFORMANCE FILE 241 / 19,968 RECORDS / SPANNED PRI + SEC FDT: AA . . . . . ZZ FOR EXAMPLE CREATE FILE USED UNUSED DS BEFORE 1064 BLKS UDPATE EACH REC TO PRI + SEC EMPTY UNUSED DS AFTER 1064 BLKS USED 39,936 BLKS “ POP-N-SPAN”

V8 SPANNED RECORDS. PROGRAM PERFORMANCE FILE 241 / 19,968 RECORDS / SPANNED PRI + SEC FDT: AA . . . . . ZZ FOR EXAMPLE NUC UP, RUN PGM, NUC DOWN L3,FB=AA. CPU 3.65 SEC ASSO IO 104 DATA IO 19968 DB L3,FB=ZZ. CPU 5.79 SEC ASSO IO 129 DATA IO 39934 DB L2,FB=ZZ. CPU 5.65 SEC ASSO IO 107 DATA IO 40998 DB L2,FB=AA. CPU 5.18 SEC ASSO IO 87 DATA IO 40998 DB

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

V8 SPANNED RECORDS. ISSUES / CONCERNS 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

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

V8 SPANNED RECORDS. ISSUES / CONCERNS 3. INCREASE ADARUNs: NISNHQ / NH LWP (FOR LARGER DVT) LP, DUALPLS and RESULTANT SIZE OF WORK AND PLOGs

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)

V8 SPANNED RECORDS. ISSUES / CONCERNS PRI + SPAN OR PRI + SPAN n. PERFORMANCE AND IO OF ADAULD ADAORD ADAINV

END OF SPANNED ON TO LOB

LOB SUPPORT. EMPLOYEES FILE LOB FIELD DATA FCB FNR 10 FCB FNR 11 PICTURES .JPG .TIF WORD DOC PPT PDS MEMBERS ETC,ETC < 2G

LOB SUPPORT: STRUCTURE Flags, leng BASEFILE: DS.REC. FLD1, FLD2 . . . LOB FIELD . . LOBFILE: IL SEG 1 SEG 2 SEG 19 19-SLOTS AC LOB. EG 200K DS Blksize=10,796 EG. 19 SEGMENTS IBL-IRL-ISN-HDR-DATA DS 19 RECS

ADACMP FNDEF='01,AA,8,A,NU,DE‘ ADACMP FNDEF='01,L1,0,A,LB,NU‘ LOB’s CREATING. ADACMP ADACMP: ADACMP COMPRESS ADACMP FILE=10 : : : ADACMP FNDEF='01,AA,8,A,NU,DE‘ ADACMP FNDEF='01,L1,0,A,LB,NU‘ CHAR. LOB ADACMP FNDEF='01,L2,0,A,LB,NV,NB‘ BINARY LOB X'00000004' DDEBAND LOB DATA MUST BE ADDED LATER VIA PROGRAM

LOB’s CREATING. ADALOD 1 ADALOD LOAD FILE=010 ADALOD LOBFILE=11 : : : ADALOD “ BASE FILE “ ADALOD LOAD FILE=010 ADALOD LOBFILE=11 : : : SIZE FILE (DS,NI,UI,AC) MINUS LOB SPACE

ADALOD NISIZE=,UISIZE= ADALOD rest of parms: very small LOB’s CREATING. ADALOD 2 ADALOD “ LOB FILE “ ADALOD LOAD FILE=11,LOB ADALOD BASEFILE=10 ADALOD DSSIZE= ADALOD MAXISN= ADALOD NISIZE=,UISIZE= ADALOD 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

LOB’s CREATING. ADALOD 2 EG. AVLOBS= 600K E.R. = 100,000 D.BLOCKSIZE = 10,796 A.BLOCKSIZE = 4,136 FOR EXAMPLE 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

LOB’s CREATING. EXISTING FILES ADADBS NEWFIELD FNDEF=. . . ADALOD LOBFILE NOTE: MUST DO ADADBS FIRST !

------------------ ------------------- : : : 10 LOBFILE-BASE . L . . LOB’s CREATING. ADAREP PART 1 **************** * FILE OPTIONS * . CONTAINS LOB FIELDS . . PRIVILEGED USE . . . LOB FILE FILE NAME ------------------ ------------------- : : : 10 LOBFILE-BASE . L . . 11 LOBFILE-LOB . . . L

FILE WITH I ASSOCIATED I LOB FIELDS I LOB FILE I 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

FDT not printed - this file is a LOB file 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

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

LOB’s TESTING RULES OF ENGAGEMENT: 0. NATURAL 4.2.1 USE SMALL LOB’S (? SLOB’s ?) UNDER 32K FTP TO MAINFRAME, A SMALL JPG PIC STORE IN ADABAS READ FROM ADABAS FTP FROM MAINFRAME BACK TO PC TO VERIFY SEE SERVLINE24 TECH DOC 542357 FOR NATURAL ZAPS

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

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

DISPLAY *ISN AA-FIELD L@L1-FIELD L1-FIELD END 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 L1-FIELD END

LU > MAX LOB/SIZE (RSP.CD. 152) NAB > LU (RSP.CD. 254) LOB’s ADARUN PARMS INCREASE: LBP/LFIOP LU > MAX LOB/SIZE (RSP.CD. 152) NAB > LU (RSP.CD. 254) NH/NISNHQ > BPL * ? (RSP.CD. 46) LP/WORKSIZE > ? (RSP.CD. 9-15) DUALPLS > ? LDEUQP > (RSP.CD. 197)

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)?

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

MUPEX. DEFINING EXISTING FILE (NO PE DE’s): ADADBS MUPEX FILE=nnn MUPECOUNT=2 LOADING NEW FILE: ADACMP COMPRESS MUPEX MUPECOUNT=1|2 X’0B’ OR X’000B’ DDEBAND EXISTING FILE (PE DE’s): 1. RELEASE PE DE’S 2. ADADBS MUPEX 3. ADAINV PE DE’S Eg. OCC.CNT=11

------------------ ------------------- : : : 16 EMPLOYEES . T . . 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

MUPEX. DS INTERNALS OCC CNTR DS RECORD: . . . 01 L-VALUE . . . UPDATE TO 191 OCC: BF UPDATE TO 192 OCC: C0 02 00C0 C0 – 2B FLAG 02 – LENGTH 00C0 - COUNT UPDATE TO 193 OCC: C0 02 00C1 UPDATE TO 200 OCC: C0 02 00C8 UPDATE TO 1 OCC: C0 02 0001 NOTE: COUNT NEVER RETURNS TO PRE-2B CONDITION !

RELEASE S1 / MUPEX / ADAINV S1 MUPEX. INVERTED LIST 01,PZ,PE. 02,PA,03,A,DE. 02,PB,01,1. SUPDE=S1=AA(1,3),PB(1,1),ZZ(1,3) FDT PE DE ONLY Eg. NI ELEMENT: EXCLUSIVE LENGTH COMPRESSED VALUE PE OCCURANCE CNT ISN QTY ISN’s KEY: 04 F1F1F1 09 05 PA: 08 C1C1C1F1E9E9E9 09 05 S1: RELEASE S1 / MUPEX / ADAINV S1 05 F1F1F1 0009 PA: 09 C1C1C1F1E9E9E9 0009 05 S1:

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

MUPEX CONVERTING BACK. UPDATE ALL RECORDS TO LESS THAN 192 OCCURANCES. ADACMP DECOMPRESS ? MASSAGE FILE TO REMOVE EXTRA BYTE ? ADACMP COMPRESS ADALOD IF CHANGE ENHANCEMENTS EXISTED: ? UPDATE BACK TO 1 BYTE ? ? ADADBS MUPEX FILE=nnn,MUPECOUNT=1 ?

MUPEX PE DE ISSUES FOR EXAMPLE 2700 FILES 1000 CONTAIN MU/PE 170 CONTAIN PE-DE FOR EXAMPLE DISCUSSION / SOLUTIONS: 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 

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 NI-ELEMENT VALUE C1C1C1C101 AAAA OCC = 1 C1C1C1C102 AAAA OCC = 2 C1C1C1C1C00200C0 AAAA OCC = 192 C1C1C1C1C101 AAAAA OCC = 1 C1C1C1C1C102 AAAAA OCC = 2 C1C1C1C1C1C00200C0 AAAAA OCC = 192 FOR EXAMPLE: ?? MORE DE BYTES ?? ?? 1 / 2 BYTE MESS LATER ON ??

DIRECT CALL CHANGES ADABAS THE OLDE 80 BYTES of data ADARUN RSP.CD LU= 152 NAB= 254,253 80 BYTES of data FBL,RBL,SBL,VBL,IBL (2b = 32K limit) ACB: UP TO 1 EACH: FB,RB,SB,VB,IB BUFFERS:

!! SEE COMMAND REFERENCE MANUAL !! ACBX THE NEW CALL ‘ADABAS’ USING ACBX, . . . , ABD1,ABD2,ABD3,ABD4, . . . !! SEE COMMAND REFERENCE MANUAL !! 192 BYTES Eg. FB => 48 BYTES Eg. RB => 48 BYTES ACBX: Eg. SB => 48 BYTES Eg. IB => 48 BYTES Eg. VB => 48 BYTES ABD’ s: Eg. MB => 48 BYTES Eg. FB2 => 48 BYTES Eg. RB2 => 48 BYTES “ANY SEQUENCE, MULTIPLES” NOTE: V8 ADALINK REQUIRED, ELSE RSP.CODE 253-11

ACBX FEATURES: 4 BYTE DBID AND 4 BYTE FNR 4 BYTE ISN AND 8 BYTE ISN OPTIONS 8 COMMAND OPTIONS (FROM 2) 6 ADDITIONS (FROM 5) ENHANCE ERROR FIELDS 8 BYTE COMPRESSED/DECOMPRESSEC REC LENGTH MORE ACCURATE CMDTIME

ABD’s ADBAS BUFFER DESCRIPTIONS 8 BUFFER TYPES (FROM 5 IN V7) FORMAT BUFFER RECORD BUFFER VALUE BUFFER SEARCH BUFFER ISN BUFFER MULTIFETCH BUFFER MLF HDR’S (PRF NOT SUPPORTED) USER BUFFER PERFORMANCE BUFFER FOR REVIEW

ABD’s CONTENTS: | 48 BYTES | TYPE ( F,R,S,V,I,M,U) LOCATION (PTR OR AT END) SIZE OF DATA (xBL) SIZE TO SEND (xBL) SIZE RECEIVED | x BL | BUFFER DATA (IF LOCAL)

SAMPLE COBOL PROGRAM ON NEXT PAGES  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 

ACBX WORKING-STORAGE SECTION. 01 ACBX. 05 FILLER PIC S9(4) COMP VALUE +0. 05 CBXVER PIC X(2) VALUE 'F2'. 05 CBXLEN PIC S9(4) COMP VALUE +192. 05 CMD-CODE PIC X(2) VALUE SPACES. 05 RESP-CODE PIC S9(4) COMP VALUE +0. 05 CID PIC X(4) VALUE SPACES. 05 DBID PIC S9(8) COMP VALUE +0. 05 FNR PIC S9(8) COMP VALUE +0. 05 FILLER PIC S9(8) COMP VALUE +0. 05 ISN PIC S9(8) COMP VALUE +0. 05 ISL PIC S9(8) COMP VALUE +0. 05 ISQ PIC S9(8) COMP VALUE +0. 05 COPT1 PIC X(1) VALUE SPACE. 05 COPT2 PIC X(1) VALUE SPACE. 05 COPT3 PIC X(1) VALUE SPACE. 05 COPT4 PIC X(1) VALUE SPACE. 05 COPT5 PIC X(1) VALUE SPACE. 05 COPT6 PIC X(1) VALUE SPACE. ACBX

ACBX Cont. 05 COPT7 PIC X(1) VALUE SPACE. 05 ADD1 PIC X(8) VALUE SPACES. 05 ADD2 PIC S9(8) COMP VALUE +0. 05 ADD3 PIC X(8) VALUE SPACES. 05 ADD4 PIC X(8) VALUE SPACES. 05 ADD5 PIC X(8) VALUE SPACES. 05 ADD6 PIC X(8) VALUE SPACES. 05 FILLER PIC S9(8) COMP VALUE +0. 05 ERR-OFFSET PIC S9(8) COMP VALUE +0. 05 ERR-CHAR PIC S9(4) COMP VALUE +0. 05 RESP-SUB PIC X(2) VALUE SPACES. 05 ERR-BUFFID PIC X(1) VALUE SPACE. 05 ERR-BUFFSEQ PIC X(3) VALUE SPACES. 05 SUB-RESP PIC S9(4) COMP VALUE +0. 05 SUB-RESP-SUB PIC S9(4) COMP VALUE +0. 05 SUB-RESP-TXT PIC X(4) VALUE SPACES. 05 LCOMPR PIC S9(16) COMP VALUE +0. 05 LDECMP PIC S9(16) COMP VALUE +0. 05 CMDTIME PIC S9(16) COMP VALUE +0. 05 USER-AREA PIC X(16) VALUE SPACES. 05 FILLER PIC X(24) VALUE SPACES. ACBX Cont.

ABD BLOCK FOR FB 01 ABDFB. 05 FBLEN PIC S9(4) COMP VALUE +48. 05 FBVER PIC X(2) VALUE 'G2'. 05 FBID PIC X(1) VALUE 'F'. 05 FBRSV1 PIC X(1) . 05 FBLOC PIC X(1) VALUE SPACE. 05 FBRSV2 PIC X(1) . 05 FILLER PIC S9(8) COMP VALUE +0. 05 FBSIZE PIC S9(16) COMP VALUE +0. 05 FBSEND PIC S9(16) COMP VALUE +0. 05 FBRECV PIC S9(16) COMP VALUE +0. 05 FBADDR PIC S9(8) COMP VALUE +0. 05 FBCONT PIC X(20) VALUE SPACES. ABD BLOCK FOR FB

ABD BLOCK FOR RB 01 ABDRB. 05 RBLEN PIC S9(4) COMP VALUE +48. 05 RBVER PIC X(2) VALUE 'G2'. 05 RBID PIC X(1) VALUE 'R'. 05 RBRSV1 PIC X(1) . 05 RBLOC PIC X(1) VALUE SPACE. 05 RBRSV2 PIC X(1) . 05 FILLER PIC S9(8) COMP VALUE +0. 05 RBSIZE PIC S9(16) COMP VALUE +0. 05 RBSEND PIC S9(16) COMP VALUE +0. 05 RBRECV PIC S9(16) COMP VALUE +0. 05 RBADDR PIC S9(8) COMP VALUE +0. 05 RBCONT PIC X(50) VALUE SPACES. * 01 CB-RES PIC S9(8) COMP VALUE +0. 01 CB-REE PIC S9(8) COMP VALUE +0. ABD BLOCK FOR RB

ENSURE FIELDS SET TO BINARY ZEROES PROCEDURE DIVISION. MAIN-PARAGRAPH. MOVE X'00' TO FBRSV1. MOVE X'00' TO RBRSV1. MOVE X'00' TO FBRSV2. MOVE X'00' TO RBRSV2. * MOVE 168 TO DBID. MOVE 'OP' TO CMD-CODE. PERFORM CALLACBX. 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. ENSURE FIELDS SET TO BINARY ZEROES

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.

ACBX EXAMPLE FILE CONTAINS 20,000 RECORDS 1062 DS RABNS READ IN 20b PER RECORD USE MLF MLF LIMIT 32K 32K RB / RECORD.SIZE = 1600 32K IB / 16b HDR = 2048 13 CALLS V7: RB LEN = 400,000 MB LEN = 320,000 ILL = 20,000 V8 ACBX: 1 CALL

COMPATIBILITY V7/8 NUC/SVC/LNK SVC – V8 PGM LINK V7  REQUIRED NUC – V7 NUC – V8 PGM LINK V8 ACB CALLS !! ACBX CALLS REQUIRE ALL V8 COMPONENTS !!

EXTENTS NEW LIMITS EXTENT TYPE LIMIT DDDATARnn 99 DDASSORnn 99 DSST > 5 FILE EXTENTS FCB SPACE (AC,NI,UI,DS,AC2) Free space available for file extents: At least 233 extents EG. ADAREP FILE nnn (ASSO.BLKSIZE = 4136)

V8 QUICK NOTES. FDT INCREASE ASSO BLOCK 1 I. FIELD NAME’s V8: 20b / FIELD 10b / FIELD ASSO BLOCK 2 II. SEARCH INDEX ASSO BLOCK 3 III. SPECIAL NAMES Eg. SUPER,SUB DE SUPER,SUB FIELDS ASSO BLOCK 4 V8: x Blocks / FDT 4B / FDT

V8 QUICK NOTES. FDT INCREASE Eg. 1 I. (many fields) V7 1 I. (many fields) 2 2 ADACNV TOVERS=81 3 II. 3 III. (many specials) 4 4 II. 5 III. (many specials) 4B / FDT 6

V8 QUICK NOTES. FDT INCREASE Eg. BEFORE ADAREP PHYSICAL LAYOUT: 1-30: CONTROL BLOCKS 31-285: FCB’s 286-1305: FDT’s FROM TO DEV TABLE VOLSER BLK BLK BLKS TYPE TYPE FILE NUMBER 1306 - 1337 32 3390 PPT 0 ADA080 1338 - 1338 1 3390 DSST 0 ADA080 1339 - 1341 3 3390 AC 1 ADA080 1342 - 1346 5 3390 UI 1 ADA080 1347 - 1371 25 3390 NI 1 ADA080 1372 - 1373 2 3390 AC 16 ADA080 1374 - 1413 40 3390 NI 16 ADA080 : : : 1507 - 1507 1 3390 AC 10 ADA080 1508 - 1512 5 3390 NI 10 ADA080 1513 - 1517 5 3390 UI 10 ADA080 1518 - 2682 1165 3390 UNUSED 0 ADA080

V8 QUICK NOTES. FDT INCREASE Eg. AFTER ADAREP PHYSICAL LAYOUT: 1-30: CONTROL BLOCKS 31-285: FCB’s FROM TO DEV TABLE VOLSER BLK BLK BLKS TYPE TYPE FILE NUMBER 286 - 289 4 3390 FDT 1 ADA080 346 - 349 4 3390 FDT 16 ADA080 354 - 357 4 3390 FDT 18 ADA080 1306 - 1337 32 3390 PPT 0 ADA080 1338 - 1338 1 3390 DSST 0 ADA080 1339 - 1341 3 3390 AC 1 ADA080 1342 - 1346 5 3390 UI 1 ADA080 1347 - 1371 25 3390 NI 1 ADA080 1372 - 1373 2 3390 AC 16 ADA080 1374 - 1413 40 3390 NI 16 ADA080 : : : 1507 - 1507 1 3390 AC 10 ADA080 1508 - 1512 5 3390 NI 10 ADA080 1513 - 1517 5 3390 UI 10 ADA080 1518 - 1522 5 3390 FDT 10 ADA080 1523 - 2682 1160 3390 UNUSED 0 ADA080  5 BLOCKS

V8 MISCELLANEOUS 1. GCB IS 2 BLOCKS (RABN 1 AND 2) 2. FDT FIELD OPTION: NB (NO BLANK COMPRESSION) 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

BACK TO JUST ADABAS

LITTLE KNOWN FEATURES: SYNS AND 7X24 WHAT ARE SYNS FUNCTIONS? 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

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 RECORD- SPANNING ON

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

LITTLE KNOWN FEATURES: SYNS AND 7X24: RELEASE FOR EXAMPLE AOS F File maintenance D Release descriptor Descriptor Name .. BA File Number ...... 18 File Name ........ VEHICLES Password ......... In Parallel ...... YES Enter 'RELEASE' to confirm ..

LITTLE KNOWN FEATURES: SYNS AND 7X24: xxREUSE FOR EXAMPLE AOS F File maintenance M Modify file parameters FILE NO. ... 18 FILE NAME .. VEHICLES ASSO PFAC .......... 3 MAX. ALLOCATION DATA PFAC .......... 3 UI BLKS PER EXTENT .. 0 MAX. RECL .......... 10792 NI BLKS PER EXTENT .. 0 DS BLKS PER EXTENT .. 0 NEW FILE NAME ...... VEHICLES NEW FILE NO. ....... 18 ISN REUSE ............. ON_ WITH RESET ..... ___ USER ISN ........... OFF IN PARALLEL .... YES DS REUSE .............. ON_ FILE PASSWORD ...... WITH RESET ..... ___ IN PARALLEL .... YES ALPHANUM ENCODING .. 0 MIXED DS DEVICE ....... OFF WIDECHAR ENCODING .. 0 PROGRAM REFRESH ....... OFF

LITTLE KNOWN FEATURES: SYNS AND 7X24: NEWFIELD FOR EXAMPLE 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 : : :

ADARES REGENERATE. REVISIT ORIGINAL DB WHY? DB RECOVERY (AFTER RESTORE) 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 ADARES PLOG(s) RESTORED DB / FILE(s) “EVENT REPLICATOR”: REBUILD FILES FOR PERFORMANCE RECORD LEVEL

ADARES REGENERATE. OPTIONS //DDSIIN DD DSN=PLOG.A DSN=PLOG.B : : : DB LEVEL or FILE LEVEL EOF PLOG TOCP VS. ADARES REGENERATE ADARES PLOGNUM=nnnn ADARES TOCP=cccc ADARES TOBLK=bbbbb ADARES FILE=fff,fff DB / EOF DB / TOCP FILE / EOF FILE / TOCP

ADARES REGENERATE. EOF PLOG //DDSIIN DD DB LEVEL or FILE LEVEL EOF PLOG TOCP VS. DSN=PLOG.A DSN=PLOG.B : : : REGENERATE NOAUTOBACKOUT (OPTION) DB LEVEL IMPLIES AUTOBACKOUT REGENERATE CONTINUE (OPTION) FILE LEVEL IMPLIES NO AUTOBACKOUT “DB LEVEL REGENERATE” = “FILE LEVEL CONTINUE” “DB LEVEL NOAUTOBACKOUT = “FILE LEVEL REGENERATE THEREFORE / IPSO FACTO:

ADARES REGENERATE. EOF PLOG ADARES PLOGNUM=nnnn //DDKARTE * ADARES FILE=1,2,3,4 ADARES CONTINUE DB LEVEL FILE LEVEL OR UPD F1 UPD F2 ET C1-HERE //DDSIIN 1 2 3 4 5 6 7 8 9 10 11 EOF APPLY BACK ALL UPDATES BACKOUT’ED OUT TO LAST ET

ADARES REGENERATE. EOF PLOG ADARES PLOGNUM=nnnn ADARES NOAUTOBACKOUT //DDKARTE * ADARES FILE=1,2,3,4 DB LEVEL FILE LEVEL OR UPD F1 UPD F2 ET C1-HERE //DDSIIN 1 2 3 4 5 6 7 8 9 10 11 EOF APPLY ALL UPDATES APPLIED TO EOF ? DATA INTEGRITY ? BI/AI/DVT/SPANNED ?

ADARES REGENERATE. TOCP= //DDSIIN DD DB LEVEL or FILE LEVEL DSN=PLOG.A DSN=PLOG.B : : : EOF PLOG or TOCP VS. (OPTION, TOCP ONLY) TOCP= IMPLIES NO AUTOBACKOUT REGENERATE AUTOBACKOUT Note: TOCP has precedence over DB or FILE level DB LEVEL FILE= or FILE=,CONTINUE TOCP=,TOBLK= TOCP=,TOBLK=, AUTOBACKOUT OR VS. FOR EXAMPLE

ADARES REGENERATE. TOCP=,DB LEVEL UPD F1 UPD F2 ET C1-HERE //DDSIIN 1 2 3 4 5 6 7 8 9 10 11 EOF //DDKARTE * DB LEVEL APPLY ADARES REGENERATE ADARES PLOGNUM=nnnn ADARES TOCP=HERE,TOBLK=bb ALL UPDATES APPLIED UP TO CHECKPOINT ‘HERE’

ADARES REGENERATE. TOCP=,DB LEVEL UPD F1 UPD F2 ET C1-HERE //DDSIIN 1 2 3 4 5 6 7 8 9 10 11 EOF //DDKARTE * DB LEVEL APPLY ADARES REGENERATE ADARES PLOGNUM=nnnn ADARES TOCP=HERE,TOBLK=bb ADARES AUTOBACKOUT BACK ALL UPDATES BACKED OUT TO LAST ET BEFORE CKPT

ADARES REGENERATE. TOCP=,FILE LEVEL //DDKARTE * FILE LEVEL UPD F1 UPD F2 ET C1-HERE //DDSIIN 1 2 3 4 5 6 7 8 9 10 11 EOF ADARES REGENERATE ADARES FILE=1 ADARES PLOGNUM=nnnn ADARES TOCP=HERE,TOBLK=bb APPLY //DDKARTE * FILE LEVEL ADARES REGENERATE ADARES FILE=1,CONTINUE ADARES PLOGNUM=nnnn ADARES TOCP=HERE,TOBLK=bb //DDKARTE * FILE LEVEL 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’

ADARES REGENERATE. TOCP=,FILE LEVEL UPD F1 UPD F2 ET C1-HERE //DDSIIN 1 2 3 4 5 6 7 8 9 10 11 EOF APPLY //DDKARTE * FILE LEVEL ADARES REGENERATE ADARES FILE=1,CONTINUE ADARES PLOGNUM=nnnn ADARES TOCP=HERE,TOBLK=bb ADARES AUTOBACKOUT BACK ALL UPDATES FOR FILE 1 BACKED OUT TO LAST ET BEFORE CHECKPOINT

ADARES REGENERATE. FILE vs DB LEVEL ADARES PLOGNUM=nnnn ADARES NOAUTOBACKOUT ADARES FILE=1,2,3,4 DB LEVEL FILE LEVEL OR DB LEVEL: LOCKS DB NO ACCESS NO ADAEND/HALT FILE LEVEL: NO LOCKS FULL ACCESS ADAEND/HALT PAUSE WORK REGEN #2 PAUSE: DATA INTEGRITY, BI/AI/DVT/SPANNED

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

ADARES REGENERATE. FILE LEVEL JCL //DDKARTE DD * ADARES REGENERATE ADARES PLOGNUM=nnnn // DD DSN=ADABAS.CNTL(FILES) ADABAS.CNTL(FILES): ADARES FILE=001 ADARES FILE=002 ADARES FILE=003 : : : ADARES FILE=255 ADARES FILE=001,002,003,004 ADARES FILE=005,006,007,008 ADARES FILE=009,010,011,012 : : : ADARES FILE=252,253,254,255 OR

ADARES REGENERATE. TOCP=,CHOICES CMD = C1 CID = THIS CPNAME=THIS PROGRAM AOS TOGGLE REUSE (IN PARALLEL) CPNAME=SYNS UTILITIES ADARUN INTNAS=secs Dflt=3600 CPNAME=SYNS TIME BASED

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 CP CP USER DATE TIME PLOG BLOCK VOLSER JOBNAME NAME TYP TYP NR NR NR SYNS 60 2006-08-04 10:37:06 21 1232 DUAL ADABAS SYNS 5B EXU 2006-08-04 02:42:49 21 1233 DUAL ADAEND SYNC 01 2006-08-04 10:34:46 22 1 DUAL AD168NUC THIS 00 ET 2006-08-04 11:45:22 22 2 DUAL MYUSER SYNS 4F ET 2006-08-04 11:48:54 22 3 DUAL MYUSER SYNS 4F ET 2006-08-04 11:49:06 22 4 DUAL MYUSER ADARES ADAREP CPLIST

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

ADARES REGENERATE. MTR=YES MTR=NO -> MTR=YES ->

ADARES REGENERATE. BACKOUT ADASAV RESTORE ADARES REGNERATE UPDATES . . . GOAL ADARES BACKOUT CHKPT EOF.PLOG

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 ??

UNIQUE DESCRIPTORS (UQ DE). B311 / 1 / 23 B344 / 1 / 1 C111 / 1 / 34 : : : Z323 / 1 / 33 VALUE CNT ISN’s ASSO INVERTED LIST 1,AA,04,A,DE,UQ ADAINV ADACMP CMD=A1 / N1 / N2 FB=AA. RB=C11 RSP.CD. 198 NOTE: VALUE CHECK MADE AGAINST NI VALUE

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 C11 / 2 / 1,6 TIMEOUT / BT NOT UQ ! SOLUTION

Unique Descriptor Pool UQ DE. LDEUQP PRACTICAL RANGE Unique Descriptor Pool 5K - 100K SAG MANUAL Range: 0 – 16M Default: 5000 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

UQ DE. LDEUQP FORMULA= 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

UQ DE. LDEUQP HI-WATER MARK Pool / Queue I Size I Used I %Used I FOR EXAMPLE 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 DOES NOT DISPLAY SHUTDOWN DDPRINT DOES DISPLAY ADADBS DRES DOES DISPLAY AOS DOES DISPLAY NOTE: ADADBS REFRESHSTAT DOES NOT RESET

UQ DE. LDEUQP PERFORMANCE ISSUES FOR EXAMPLE FILL LDEUQP WITH 1000 ENTRIES 2000 ENTRIES 4000 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 MEASURE RELATIVE ADABAS CPU

UQ DE. LDEUQP PERFORMANCE ISSUES 4000 ENTRIES RELATIVE ADABAS CPU TIME 17x 2000 ENTRIES 10x 1000 ENTRIES 7x 6x 5x 3x BB DD,UQ AA,UQ

UQ DE. REMOVAL FDT 1,AA,04,A,DE,UQ AOS RELEASE (PARALLEL) (UQ BIT SET) ADAINV FILE OUTAGE OR ZAP FDT SAG CE / EP / ER

UQ DE. REMOVAL FDT FNR 19 DETERMINE FDT BLOCKS 1,ND,09,A,DE,UQ DETERMINE OFFSET INTO FDT LOCK FILE (IF DATABASE UP) 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 1,ND,09,A,DE,UQ (UQ BIT SET)

UQ DE. REMOVAL 1. DETERMINE FDT BLOCKS FROM TO DEV TABLE BLK BLK BLKS TYPE TYPE FILE : : : 1518 - 1522 5 3390 FDT 10 ADAREP PHYSICAL LAYOUT: ADABAS V8 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

2. ADARPRI ASSO RABN 358 - 361 DDDRUCK (RABN 358): FIND ‘ND’ 0000 01AE0174 22C1C640 01010000 000C26C2 *.Þ.È.AF .. ..B* 0010 E7230100 00000016 22D3C14B 01010000 *X.. ..LA... * : : : 0140 00000142 22D5C409 01090000 014C22D5 * .â.ND... .<.N* V7 10b elements DE FLAG 6TH BYTE, OFFSET 0149 0000 0000033E 000002E8 22C1C600 00000040 * .. .Y.AF * : : : 0280 02840000 00000000 22D5C400 00000009 *.D .ND .* 0290 01090000 02980000 00000000 22D5D700 *.. .Q .NP * V8 20b elements  DE FLAG 10TH BYTE, OFFSET 0291

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' ADAZAP VER=X'09' ADAZAP REP=X'01' OR = X’0291’

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

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 PGFIX = NO / YES ? RELEASE PAGES AFTER IO COMPLETE? IF EXCPVR, THEN ADARUN

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)

EXCP vs EXCPVR RESULTS SRB TCB CMDTIME DURATION ABOUT 2% BETTER WITH EXCPVR