Presentation is loading. Please wait.

Presentation is loading. Please wait.

ADABAS Little Known Features Natural Conference in Philadelphia, PA October 17-20, 2006 Dieter W. Storr

Similar presentations


Presentation on theme: "ADABAS Little Known Features Natural Conference in Philadelphia, PA October 17-20, 2006 Dieter W. Storr"— Presentation transcript:

1 ADABAS Little Known Features Natural Conference in Philadelphia, PA October 17-20, 2006 Dieter W. Storr

2 October 2006 Dieter W. Storr -- Content ADAM Files Hyperdescriptors Coupling Multi-client Files

3 October 2006 Dieter W. Storr -- ADAM Adabas Direct Access Method How it works Performance issues Read access Write access

4 October 2006 Dieter W. Storr -- ADAM – How to Create ADACMPADAMER ADAULD ADALOD ADAMFILE ADABAS REPORT

5 October 2006 Dieter W. Storr -- ADAM Measurements and evaluations ADAMPARM ADAMOFLOW DSSIZE I/Os with FINDs and value not found, key values - 1 to -99 I/Os with hit rate 100% for ADAM and not ADAM descriptors What happened if poor distribution of ADAM key - Pros and Cons

6 October 2006 Dieter W. Storr -- ADAM

7 October 2006 Dieter W. Storr -- ADAMER Parameters ERROR-076, Mandatory parameter MAXISN missing

8 October 2006 Dieter W. Storr -- ADAMER Parameters ADAMDE=UQ DE or ISN No sub-, super-, hyper-, collation, or phonetic descriptor No MU or PE field No variable length field No NU defined descriptor

9 October 2006 Dieter W. Storr -- ADAMER Parameters BITRANGE=X,Y,Z Bit Truncation for ADAM Keys X= minimum Y = maximum Z = incremental

10 October 2006 Dieter W. Storr -- ADAMER Parameters DATASIZE=n1,n2,n3 Data Storage Size for Estimates n1= min cylinders n2 = max cylinders n3 = increments For example: DATASIZE=100,175,25

11 October 2006 Dieter W. Storr -- ADAMER LOAD ADALOD LOAD FILE=xxx ADALOD ADAMFILE ADAMDE=field | ISN ADALOD ADAMOFLOW=size ADALOD ADAMPARM=number | 0

12 October 2006 Dieter W. Storr -- ADAMER LOAD 16:35:10 ***** P R E D I C T ***** Modify Adabas attributes - File ID TEST-BROY Added at 13:18 Contained in DA. TEST by M197/9 PDBnr PFnr ADAM descriptor definition Field ID * Parm Overflow Additional attributes..* S

13 October 2006 Dieter W. Storr -- ADAMER Disadvantages ADAM key is not unique Determine DS block with ADAM routine Search DS block in buffer pool DS block is not in buffer pool DATA I/O to copy block into buffer pool DS block not found Access via normal descriptor in ASSO

14 October 2006 Dieter W. Storr -- ADAMER Disadvantages ADAM key is not unique – cont’ Search ASSO block in buffer pool ASSO I/O to copy block into buffer pool Found DE with ISN? NO: record not found YES: read AC and translate ISN to RABN AC is normally in buffer pool, no I/O

15 October 2006 Dieter W. Storr -- ADAMER Disadvantages ADAM key is not unique – cont’ Access to DS overflow area DS overflow area not in buffer pool DATA I/O to copy block into buffer pool Record is ready to be displayed

16 October 2006 Dieter W. Storr -- Hyperdescriptors How it works Hyperdescriptor Exits What Approach Pros and Cons

17 October 2006 Dieter W. Storr -- Hyperdescriptor Exit – Nucleus HyperDE Exit ADANUC ASSODATA

18 October 2006 Dieter W. Storr -- Hyperdescriptor Exits DDCARD ADARUN DUALPLS=13500 ADARUN FASTPATH=NO ADARUN FMXIO=16 ADARUN HEX01=HYPEX001 ADARUN HEX02=HYPEX002 ADARUN INTNAS=3432 ADARUN LBP= Assembler routines located on a concatenated ADABAS load library.

19 October 2006 Dieter W. Storr -- Hyperdescriptor Exit – Compress ASSODATA ADACMP HyperDE Exit ADALOD

20 October 2006 Dieter W. Storr -- Hyperdescriptor Exits -- ADACMP DDCARD ADARUN DBID=919,SVC=254 ADARUN DEVICE=9990,LP=65535 ADARUN PROGRAM=ADACMP ADARUN HEX01=HYPEX001 ADARUN MODE=MULTI Exit 1 assembler routine located on a load library, which is part of the ADACMP JCL

21 October 2006 Dieter W. Storr -- Hyperdescriptor Exits – ADACMP DDKARTE ADACMP COMPRESS ADACMP FNDEF='01,AA,7,A,DE,FI' Field AA ADACMP FNDEF='01,AB,15,A,DE,MU,NU' Field AB ADACMP FNDEF='01,GA' Group GA ADACMP FNDEF='02,AC,15,A,NU' Field AC ADACMP FNDEF='02,AD,2,P,FI' Field AD ADACMP FNDEF='02,AE,5,P,NU' Field AE ADACMP FNDEF='02,AF,6,W' Field AF ADACMP COLDE='7,Y1=AF' Collation descriptor Y1 ADACMP SUBDE='BB=AA(1,4)' Subdescriptor BB ADACMP SUPDE='CC=AA(1,4),AD(1,1)' Superdescriptor CC ADACMP HYPDE='1,DD,4,A,MU=AB,AC,AD‘ Hyperdescriptor DD ADACMP PHONDE='EE(AA)' Phonetic descriptor EE ADACMP SUBFN='FF=AA(1,2)' Subfield FF ADACMP SUPFN='GG=AA(1,4),AD(1,1)' Superfield GG

22 October 2006 Dieter W. Storr -- Hyperdescriptor Exit – ADAINV HyperDE Exit ADANUC ASSODATA ADAINV

23 October 2006 Dieter W. Storr -- Hyperdescriptor Exits -- ADAINV DDCARD ADARUN PROGRAM=ADAINV ADARUN HEX01=HYPEX001 ADARUN MODE=MULTI Uses exit located in ADABAS nucleus

24 October 2006 Dieter W. Storr -- Hyperdescriptor Exits – ADAINV DDKARTE ADAINV INVERT FILE=xxx ADAINV TEMPSIZE=100,SORTSIZE=50 ADAINV HYPDE='1,DD,4,A,MU=AB,AC,AD‘ DD is assigned to hyperexit 1 HyperDE DD (A4) consisting of fields AB,AC and AD

25 October 2006 Dieter W. Storr -- Hyperdescriptor Exit

26 October 2006 Dieter W. Storr -- Hyperdescriptor Exit Input

27 October 2006 Dieter W. Storr -- Hyperdescriptor Exit Output

28 October 2006 Dieter W. Storr -- Hyperdescriptor Exit -- Assembler Example ADABAS.ADA742.SRCE(USERHX01) ADABAS.ADA811.SRCE(USERHX01) * SAMPLE HYPER-EXIT ROUTINE TO BE USED TOGETHER WITH * FILE 2 (AUTOMOBILES) TO CREATE THE VALUES FOR THE * HYPERDESCRIPTOR HA: * HYPDE='1,HA,20,A,MU,NU=AA,AB,AC' * WHERE: * FNDEF='1,AA,20,A,NU' * FNDEF='1,AB,20,A,NU' * FNDEF='1,AC,15,A,NU' * THE FIELDS 'AA','AB' AND 'AC' CONTAINS THE 'MAKE','MODEL' * AND THE 'BODY'-DESCRIPTION OF A CAR. THE VALUES OF THOSE * FIELDS MAY CONSIST OF TWO VERBS DELIMITED BY A BLANK * E.G. AA='GENERAL MOTORS'.

29 October 2006 Dieter W. Storr -- Hyperdescriptor Exit – UNIX/Win

30 October 2006 Dieter W. Storr -- Hyperdescriptor Exit – UNIX/Win Control Block

31 October 2006 Dieter W. Storr -- Hyperdescriptor Exit – UNIX/Win The routines should be written in the C programming language. The user must be present as a dynamic shared library. hy_mode = HY_REENTRANT hy_dlng = data transfer buffer length hy_xlng = index transfer buffer length hy_ilng = isn transfer buffer length (0 = not used) hy_plng = periodic transfer buffer length (0 = not used) hy_flng = optional: own FB length (0 = not used) hy_fptr = optional: own FB See ADABAS Manual, User Exits and Hyperexits

32 October 2006 Dieter W. Storr -- Hyperdescriptor Exit Exit only called for update commands, for example STORE, UPDATE Not used for READ / FIND / HISTOGRAM 3.3 / 6.2 / 7.1 / 7.4  SL24

33 October 2006 Dieter W. Storr -- Use of Hyperdescriptors Create "Superdescriptor" from more than 5 / 20 basic fields Example from a German company ADA51: Not clear how to handle NU fields Field is in input parameter but leave the exit w/o filling the output parameter – why NU in hyper definition? Customer wishes better documentation and more examples

34 October 2006 Dieter W. Storr -- Use of Hyperdescriptors Create "Superdescriptor" from variable numbers of basic fields Example from SAG-NA

35 October 2006 Dieter W. Storr -- Use of Hyperdescriptors Create "Superdescriptor" from variable numbers of basic fields and files Example from SAG-NA

36 October 2006 Dieter W. Storr -- Use of Hyperdescriptors Translate from lower to upper case Example from the Swiss government Bern Store info in upper/lower case For search in upper case only

37 October 2006 Dieter W. Storr -- Use of Hyperdescriptors Translate from lower to upper case and “Umlaute” Example from a German company, Bremen ä/Ä = AE, ü/Ü = UE, ß = SS, ö/Ö = OE Store info in upper case Can be sorted Predict: define as HY

38 October 2006 Dieter W. Storr -- Use of Hyperdescriptors Create complementary values Example from SAG-NA Numeric values can be read in descending order Since ADA6 hyperexit is no longer necessary: READ IN DESCENDING ORDER

39 October 2006 Dieter W. Storr -- Use of Hyperdescriptors Create special phonetic descriptors Summarize (compute) fields Create calculation routines Include compressed superdescriptors to build a hyperdescriptor

40 October 2006 Dieter W. Storr -- Use of Hyperdescriptors Create tables to check-out data Build special descriptors for record types (entities) Suppress values Separate words Build word groups

41 October 2006 Dieter W. Storr -- Hyperdescriptor Exit ADA81: For extended MU/PU fields  HEXV8V7 Must be linked with existing hyperdescriptor But: module not found in ADABAS Version (Beta Test II) ADABAS Version (+ L002)

42 October 2006 Dieter W. Storr -- File Coupling Type Logical Coupled Files Physical Coupled Files Soft Coupling Natural Code ADABAS Direct Calls Pros and Cons

43 October 2006 Dieter W. Storr -- File Coupling SALESMEN #S-NR #A-NR #S-NAME #S-COMM AREA #A-NR #S-NR #A-TURNO (0-N) belongs to points to (N C) Search salesmen with a commission of > 30% in an area with a planned turnover of more than 1 million.

44 October 2006 Dieter W. Storr -- File Coupling (Two Views) DDM DBID 0 DDM FNR 235 SALESMEN T L DB Name F Leng S D Re AA S-NR N 5.0 N D 1 AB A-NR N 5.0 N D 1 AC S-NAME A 10 N 1 AD S-COMM N 3.0 N D DDM DBID 0 DDM FNR 236 AREA 1 AA A-NR N 5.0 N D 1 AB S-NR N 5.0 N D 1 AC A-TURNO N 8.0 N D

45 October 2006 Dieter W. Storr -- Coupled Files (Logical) 0010 DEFINE DATA 0020 LOCAL USING LDA12345 /* two views 0030 END-DEFINE 0040 FIND SALESMEN WITH S-COMM = FIND AREA WITH AREA.S-NR = SALESMEN.S-NR 0060 AND A-TURNO > WRITE /* TITLE 'Logical coupled - 2 FINDs' 0080 / 'Logical Coupled - 2 FINDs' 0090 / '=========================' / 0100 / 'S-NR from SALESMEN:' SALESMEN.S-NR 0110 / 'A-NR from SALESMEN:' SALESMEN.A-NR 0120 / 'S-NAME from SALESMEN:' SALESMEN.S-NAME 0130 / 'S-COMM from SALESMEN:' SALESMEN.S-COMM 0140 / 'S-NR from AREA....:' AREA.S-NR 0150 / 'A-NR from AREA....:' AREA.A-NR 0160 / 'A-TURNO from AREA....:' AREA.A-TURNO 0170 / 'ISN from SALESMEN...:' *ISN(0040) 0180 / 'ISN from AREA :' *ISN(0050) 0190 END-FIND 0200 END-FIND

46 October 2006 Dieter W. Storr -- Coupled Files (Logical) Logical Coupled - 2 FINDs ========================= S-NR from SALESMEN: 29 A-NR from SALESMEN: 79 S-NAME from SALESMEN: HUGO00029 S-COMM from SALESMEN: 30 S-NR from AREA....: 29 A-NR from AREA....: 79 A-TURNO from AREA....: ISN from SALESMEN...: 15 ISN from AREA : 15

47 October 2006 Dieter W. Storr -- TEST DBLOG MENU 17:05:35 ***** NATURAL TEST UTILITIES ***** User ZINDWS - DBLOG Menu - Library LBZINDWS Code Function B Begin Logging of Adabas Commands E End and Display Log Records S Snapshot of Specific Adabas Commands. Exit Code.. b Command.. _Skip _ Program.... COUPLLOG DBID..... _FNR _ Line from Low Resp. _High Resp _Line to Optional Buffers for Code B FB.. x RB.. x SB.. x VB.. x IB.. _

48 October 2006 Dieter W. Storr -- Coupled Files (Logical) No Cmd DB FNR Rsp ISN ISQ 1 S S RC 200

49 October 2006 Dieter W. Storr -- Coupled Files (Logical) TEST DBLOG MENU: SALESMEN File 235: Search Buffer:AD,3,U. Value Buffer:030 Format Buffer: AA,005,U,AB,005,U,AC,010,A,AD,003,U. AREA File 236: Search Buffer:AB,5,U,D,AC,8,U,GT. Value Buffer: Format Buffer: AA,005,U,AB,005,U,AC,008,U. S-NR

50 October 2006 Dieter W. Storr -- Coupled Files (Logical) ProsCons No denormalization, tables are still relational Two FIND commands No additional ASSO space

51 October 2006 Dieter W. Storr -- Physical Coupling File numbers < 255 One file can be coupled with up to 18 other files Descriptor (DE, UQ, XI) with identical format and length in both files

52 October 2006 Dieter W. Storr -- Physical Coupling ADABAS UTILITY ~ to couple two files ADAINV COUPLE FILES=235,236 ADAINV DESCRIPTOR=‘AA,AB’ ADAINV TEMPSIZE=3335 ADAINV SORTSIZE=5738 ADAINV LWP=8268K File 235 (SALESMEN) successfully processed File 236 (AREA ) successfully processed

53 October 2006 Dieter W. Storr -- Physical Coupling ADABAS REPORT * File 235 (SALESMEN ) * Coupled Files Descriptor AA coupled with Descriptor AB in file 236 File 236 (AREA ) * Coupled Files Descriptor AB coupled with Descriptor AA in file 235

54 October 2006 Dieter W. Storr -- Physical Coupling 0010 DEFINE DATA 0020 LOCAL USING LDA12345 /* two views 0030 END-DEFINE 0040 FIND SALESMEN WITH S-COMM = AND COUPLED TO AREA 0060 WITH A-TURNO > WRITE 0080 / 'Physical Coupling - 1 FIND' 0090 / 'FIND SALESMEN AND COUPLED TO AREA' 0100 / '=================================' / 0110 / 'S-NR from SALESMEN:' SALESMEN.S-NR 0120 / 'A-NR from SALESMEN:' SALESMEN.A-NR 0130 / 'S-NAME from SALESMEN:' SALESMEN.S-NAME 0140 / 'S-COMM from SALESMEN:' SALESMEN.S-COMM 0150 / 'S-NR from AREA....:' AREA.S-NR 0160 / 'A-NR from AREA....:' AREA.A-NR 0170 / 'A-TURNO from AREA....:' AREA.A-TURNO 0180 / 'ISN from SALESMEN....:' *ISN(0040) 0190 / 'ISN from AREA :' 'n/a' 0200 END-FIND

55 October 2006 Dieter W. Storr -- Physical Coupling Physical Coupling - 1 FIND FIND SALESMEN AND COUPLED TO AREA ================================= S-NR from SALESMEN: 29 A-NR from SALESMEN: 79 S-NAME from SALESMEN: HUGO00029 S-COMM from SALESMEN: 30 S-NR from AREA....: 0 A-NR from AREA....: 0 A-TURNO from AREA....: 0 ISN from SALESMEN....: 15 ISN from AREA : n/a

56 October 2006 Dieter W. Storr -- TEST DBLOG MENU 17:05:35 ***** NATURAL TEST UTILITIES ***** User ZINDWS - DBLOG Menu - Library LBZINDWS Code Function B Begin Logging of Adabas Commands E End and Display Log Records S Snapshot of Specific Adabas Commands. Exit Code.. b Command.. _Skip _ Program.... COUPLPHY DBID..... _FNR _ Line from Low Resp. _High Resp _Line to Optional Buffers for Code B FB.. x RB.. x SB.. x VB.. x IB.. _

57 October 2006 Dieter W. Storr -- Physical Coupling TEST DBLOG MENU: No Cmd DB FNR Rsp ISN ISQ 1 S RC 200 SB:/235/AD,3,U,D,/236/AC,8,U,GT. VB: FB: AA,005,U,AB,005,U,AC,010,A,AD,003,U. RB: HUGO

58 October 2006 Dieter W. Storr -- Physical Coupling Number of ADABAS Calls: ONE S1 (FIND) Direct Programming: File Salesmen: 235 File Area: 236 Command: S5 ???? File Number: 235 Search Buffer: /22/PN,D,/103/TO.

59 October 2006 Dieter W. Storr -- Physical Coupling ProsCons No denormalization, tables are still relational Uncouple utility before maintenance Faster accessMore ASSO space One FIND onlyLonger update time No DATA fields from the soft coupled file(s), in this case AREA

60 October 2006 Dieter W. Storr -- Coupled Files (Soft) 0010 DEFINE DATA 0020 LOCAL USING LDA12345 /* two views 0030 END-DEFINE 0040 FIND SALESMEN WITH S-COMM = AND COUPLED TO AREA VIA S-NR = S-NR 0060 WITH A-TURNO > WRITE 0080 / 'Soft Coupling - 1 FIND' 0090 / 'FIND SALESMEN AND COUPLED TO AREA VIA S-NR = S-NR' 0100 / '=================================================' / 0110 / 'S-NR from SALESMEN:' SALESMEN.S-NR 0120 / 'A-NR from SALESMEN:' SALESMEN.A-NR 0130 / 'S-NAME from SALESMEN:' SALESMEN.S-NAME 0140 / 'S-COMM from SALESMEN:' SALESMEN.S-COMM 0200 END-FIND

61 October 2006 Dieter W. Storr -- Coupled Files (Soft) Soft Coupling - 1 FIND FIND SALESMEN AND COUPLED TO AREA VIA S-NR = S-NR ================================================= S-NR from SALESMEN: 29 A-NR from SALESMEN: 79 S-NAME from SALESMEN: HUGO00029 S-COMM from SALESMEN: 30 S-NR from AREA....: 0 A-NR from AREA....: 0 A-TURNO from AREA....: 0 ISN from SALESMEN....: 15 ISN from AREA : n/a

62 October 2006 Dieter W. Storr -- Coupled Files (Soft) TEST DBLOG MENU: No Cmd DB FNR Rsp ISN ISQ 1 S RC 200 SB:(235,AA,236,AB)/235/AD,3,U,D,/236/AC,8,U,GT. VB: FB:AA,005,U,AB,005,U,AC,010,A,AD,003,U. RB: HUGO

63 October 2006 Dieter W. Storr -- Coupled Files (Soft) Supported since ADABAS (1988) CMD: S1 FNR: 135 SB: (235,AA,236,AB)/235/AD,/236/AC. NATURAL – (<1998) ( FIND … COUPLED TO….. VIA

64 October 2006 Dieter W. Storr -- Coupled Files (Soft) ProsCons No denormalization, tables are still relational No DATA fields from the soft coupled file, in this case AREA Only one ADABAS FIND command (S1) + L1s Reduced interregion communication

65 October 2006 Dieter W. Storr -- Multi-client Files Since ADABAS 5.3.2, July 1994 Functions How to load Pros and cons

66 October 2006 Dieter W. Storr -- Multi-client Files The owner ID is assigned to a user ID. A user ID can have only one owner ID, but an owner ID can belong to more than one user. Each user can access only the subset of records that is associated with the user's owner ID.

67 October 2006 Dieter W. Storr -- Multi-client Files OWNERID Physical File 20 Multiple Logical Files

68 October 2006 Dieter W. Storr -- Loading Multi-client Files ADALOD LOAD FILE=20 ADALOD LOWNERID=2,NUMREC=0 Creates file 20 as a multi-client file. The length of the internal owner ID is two bytes, but no actual owner ID (ETID) is specified. No records are actually loaded in the file (NUMREC=0).

69 October 2006 Dieter W. Storr -- Loading Multi-client Files ADALOD LOAD FILE=20 ADALOD LOWNERID=2,ETID=USER1 Creates file 20 as a multi-client file, load all supplied records, and assign them to user USER1. The length of the internal owner ID is two bytes.

70 October 2006 Dieter W. Storr -- Loading Multi-client Files ADALOD UPDATE FILE=20 ADALOD ETID=USER2 Performs a mass update to add records to file 20, a multi-client file. Load all the new records and assign them to USER2.

71 October 2006 Dieter W. Storr -- Loading Multi-client Files 12:25:16 ***** P R E D I C T ***** Modify Adabas attributes - File ID TEST-BROY Added at 13:18 Contained in DA. TEST by M197/9 PDBnr PFnr Adabas Security definition Access level (0-15) Update level (0-15) Loading attributes Ciphered N (Y,N) LOWNERID (0-8) Refresh from program... N (Y,N) Automatic allocation... Y (Y,N) PLOG Y (Y,N) ISN size * 0 Erase N (Y,N) Index compression N (Y,N)

72 October 2006 Dieter W. Storr -- Loading Multi-client Files

73 October 2006 Dieter W. Storr -- Users Experiences Unload production data by using ADAUNLD and SEL-CRIT= one-byte descriptor Load into test environment with UPDATE and ETID Coupled ETID as OWNER-ID to the user who wants to test. Reset in production Delete the records in the test-environment by coupling the ETID to the userid A Danish user reported in 2002 to use the feature since 8 years. (Source: SAG-L)

74 October 2006 Dieter W. Storr -- Users Experiences Keep the unloaded files on request, so they can re- load the test set with another ETID. Be aware of file changes between the different environments, especially if you keep the unloaded files for a while. Be aware of UQ descriptors if you ADALOD UPDATE the testset.

75 October 2006 Dieter W. Storr -- Users Experiences We are working with multi-client files in development and acceptance environment. It works great and smoothly. A little more maintenance sometimes when it comes to file changes. Then, you have to unload/decompress/compress/load the first set of data. And unload/decompress/compress/update the others. A user from Holland (NL) reported in 1999 on SAG-L:

76 October 2006 Dieter W. Storr -- Thank you! Questions?


Download ppt "ADABAS Little Known Features Natural Conference in Philadelphia, PA October 17-20, 2006 Dieter W. Storr"

Similar presentations


Ads by Google