VSAM-failistruktuuri analüüs andmete moderniseerimiseks

VSAM-failistruktuuri analüüs andmete moderniseerimise projektide jaoks

Andmete migreerimine ei saa toimuda isoleeritult, see peab arenema paralleelselt COBOL-rakendustega, mis neid andmekogumeid loevad ja kirjutavad. See piirang määratleb kogu VSAM-i moderniseerimise väljakutse. VSAM (Virtual Storage Access Method) ei ole lihtsalt failivorming. See on programmide vaheline andmeleping, kaudne spetsifikatsioon, mis on defineeritud kusagil peale FD-kirjete ja SELECT-klauslite, mis reguleerib seda, kuidas iga ettevõtte süsteemi programm oma kõige olulisemaid äriandmeid loob ja tarbib. Üks kirje paigutuse muudatus, mis ei kajastu igas programmis, mis seda kirjet loeb, põhjustab andmete rikkumist, mis ei pruugi ilmneda enne, kui regulatiivne aruanne töötab andmetel, mis ei tähenda enam seda, mida tarbiv programm eeldas.

VSAM-andmete moderniseerimisel edukad organisatsioonid ei ole need, kes alustavad sihtskeemist. Nad on need, kes alustavad täieliku ja tõenduspõhise arusaamaga sellest, mida VSAM-failid sisaldavad, kuidas need on üles ehitatud, millised programmid neile juurde pääsevad, milliste mustrite abil ja millised implitsiitsed lepingud eksisteerivad tootjate ja tarbijate vahel. See arusaamine ehk VSAM-failistruktuuri analüüs on iga järgneva otsuse eeltingimus: millised VSAM-andmestikud vastavad relatsioonitabelitele, millised nõuavad erinevaid sihtarhitektuure, millised kirjepaigutused vajavad täpsust säilitavaid andmetüübi teisendusi ja millised jagatud andmestikud tuleb migreerida koordineeritud üksustena, mitte iseseisvalt.

Jagatud andmekogumid vajavad koordineeritud migratsiooni

SMART TS XL ekstraheerib automaatselt kõik kirje paigutuse detailid, mida sihtskeemi kujundus nõuab.

SAAGE LISATEAVET…

Neli VSAM-organisatsiooni ja mida igaüks neist vajab

VSAM-andmestikud jagunevad nelja erinevasse organisatsiooni. Igal neist on erinev struktuuriline iseloom, erinev tüüpiline juurdepääsumuster ja erinev loomulik vastendus tänapäevastele sihtarhitektuuridele. Kõikide VSAM-andmestike identne käsitlemine, igaüks neist massiliselt relatsioonitabeliks teisendades, loob sihtmärgid, mis mõnede andmestike puhul toimivad, kuid teiste puhul halvasti või funktsionaalselt ebaõnnestuvad.

KSDS ehk võtmejärjestatud andmestik on VSAM-i kõige levinum korraldus. Kirjed on füüsiliselt järjestatud primaarvõtme (primaarvõtme) abil, mis võimaldab nii otsest juurdepääsu võtme abil kui ka järjestikust juurdepääsu võtmete järjekorras. KSDS-failidel on valikuliselt alternatiivsed indeksid ehk sekundaarsed võtmeteed, mis võimaldavad otsingut muude väljade kui primaarvõtme abil. KSDS-i loomulik sihtmärk on relatsioonitabel, kus primaarvõti saab primaarvõtmeks ja alternatiivsed indeksid SQL-indeksiteks.

ESDS ehk kirjete järjestatud andmestik (Entry-Sequenced Data Set) salvestab kirjeid nende kirjutamise järjekorras. Võtit pole, kirjeid adresseeritakse nende füüsilise baidinihke järgi (RBA: Relative Byte Address). ESDS-faile kasutatakse tavaliselt logilaadsete andmete jaoks: auditeerimisjäljed, tehingupäevikud, sündmuste vood. ESDS-i loomulik sihtmärk on ainult lisamiseks mõeldud relatsioontabel, sündmuste voog (Kafka teema) või aegridade andmebaas, olenevalt sellest, kuidas tarbivad programmid andmetele juurde pääsevad.

RRDS ehk suhtelise kirje andmestik salvestab fikseeritud pikkusega kirjeid, mis on adresseeritud suhtelise kirjenumbri järgi. Iga faili pesa vastab kirjenumbrile; pesad võivad olla tühjad (kustutatud). RRDS-faile kasutatakse otsese juurdepääsuga stsenaariumide korral, kus kirjenumber on rakenduse jaoks oluline, sageli lihtsate otsingutabelite või räsipõhise salvestusruumina. Loomulik sihtmärk on numbrilise järjestuse identifikaatoriga relatsioonitabel või mälusisene otsingustruktuur, kui andmestik on väike ja seda sageli kasutatakse.

LDS ehk lineaarne andmekogum on baitide kaupa adresseeritav salvestusruum, mille kirjestruktuur pole VSAM-ile nähtav. Seda kasutavad rakendused (tavaliselt DB2, Java töökoormused või kohandatud programmid), mis haldavad oma sisemist vormingut VSAM-i baitivahemikus. LDS-faile ei saa analüüsida standardsete COBOL FD kirjete kaudu, nende struktuur eksisteerib ainult rakenduse kihis, mis neid kirjutab.

Iga andmestiku analüüsi väljund peab tuvastama, millist organisatsiooni see kasutab, sest organisatsioon määrab kõik järgnevad etapid: sihtarhitektuuri, juurdepääsumustri ja konkreetse analüüsi, mis on vajalik selle struktuuri mõistmiseks.

Kirje paigutuse analüüsi probleem

Kirjete paigutus on VSAM-i struktuurianalüüsi analüütiliselt kõige keerulisem dimensioon. Erinevalt relatsiooniskeemist, kus igal veerul on määratletud tüüp, nimi ja andmebaasimootori poolt kehtestatud piirang, puudub VSAM-i kirjetel ennast kirjeldav struktuur. Paigutus eksisteerib täielikult COBOL FD-kirjes ja FD-kirjed on harva lihtsad.

FD kanded ja COPY liikmed

VSAM-andmestiku kirjestruktuur on määratletud COBOL DATA DIVISIONi kirjes FILE DESCRIPTION (FD). Hästi hooldatud koodibaasides viitab FD kirje COPY liikmele, jagatud koopiaraamatule, mis määratleb kirje paigutuse ja mida iga andmestikule juurde pääsev programm lisab:

kobol

       FILE SECTION.
       FD  CUSTOMER-FILE
           LABEL RECORDS ARE STANDARD
           RECORD CONTAINS 250 CHARACTERS.
       01  CUSTOMER-RECORD.
           COPY CUSTMSTR.

KOOPIA liige CUSTMSTR määratleb tegeliku väljapaigutuse. Kui 47 programmi sisaldavad CUSTMSTR, siis 47 programmi jagavad sõltuvust selle määratletud kirjepaigutusest. Välja ümbernimetamine CUSTMSTR mõjutab kõiki 47. See on andmetele rakendatud kopeeritud raamatu sidumise probleem: VSAM-kirjete paigutus on jagatud sõltuvus, mida ei saa muuta ilma iga seda kasutava programmi koordineerimata.

Migratsiooni analüüsiks tuleb iga FD kirje jälgida selle koopiaraamatuni ja iga koopiaraamat tuleb kaardistada iga programmiga, mis seda sisaldab. Jagatud paigutusega sõltuvusgraafik on migratsiooni ulatuse mõistmise alus.

UUENDAB: Mitu paigutust, üks kirje

. REDEFINES klausel on koht, kus VSAM-kirjete analüüs muutub tõeliselt keeruliseks. REDEFINES võimaldab erinevatel väljainterpretatsioonidel sama füüsilise salvestusruumi katta. VSAM-kirje, mis sisaldab tehingutüübi koodi, võib REDEFINES-i abil ülejäänud baite erinevalt tõlgendada, olenevalt sellest koodist:

kobol

       01  TRANSACTION-RECORD.
           05  TXN-TYPE        PIC X(2).
           05  TXN-COMMON-DATA PIC X(48).
           05  TXN-DETAIL      REDEFINES TXN-COMMON-DATA.
               10  TXN-PAYMENT.
                   15  PAY-AMOUNT     PIC S9(11)V99 COMP-3.
                   15  PAY-CURRENCY   PIC X(3).
                   15  PAY-METHOD     PIC X(2).
                   15  FILLER         PIC X(28).
           05  TXN-WITHDRAWAL  REDEFINES TXN-COMMON-DATA.
               10  WDR-AMOUNT     PIC S9(11)V99 COMP-3.
               10  WDR-ACCOUNT    PIC 9(12).
               10  WDR-BRANCH     PIC 9(5).
               10  FILLER         PIC X(18).

Sellel plaadil pole üks, vaid kolm paigutust, olenevalt TXN-TYPESihtrelatsiooniskeemis nõuab see tavaliselt kas polümorfset tabeli kujundust (üks lai tabel iga variandi jaoks nullitavate veergudega), normaliseeritud kujundust (vanemrida pluss tüübispetsiifilised alamread) või JSON-veergu, mis sisaldab variandiandmeid. Ühtegi neist otsustest ei saa teha ilma analüüsimata, mida TXN-TYPE väärtused eksisteerivad andmetes ja milliseid UUENDUSLIKKE variante tegelikult kasutatakse.

Täielik kirjepaigutuse analüüs peab:

  • Tuvastage iga FD-kirje iga REDEFINES-hierarhia
  • Määrake, milline REDEFINES variant on millistel tingimustel aktiivne (nõuab programmi loogika analüüsi, mitte ainult FD analüüsi)
  • Dokumenteerige iga variandi väljatüübid, pikkused ja pakitud kümnendsüsteemi täpsus.
  • Soovitage sihtskeemi jaoks sobivat normaliseerimisstrateegiat

COMP-3 ja numbriline täpsus

COBOL-id PIC S9(11)V99 COMP-3 (pakitud kümnendsüsteemil) on spetsiifilised täpsuse ja skaala omadused, millel puudub otsene vaste SQL-i standardsetes andmetüüpides. V tähistab kaudset kümnendkohta, väärtus salvestatakse täisarvuna, mille kaudse skaala on kaks kohta pärast koma. COMP-3 pakib kaks kümnendnumbrit baidi kohta, kusjuures viimane poolbait sisaldab märki.

Kui see väli migreeritakse relatsioonandmebaasi, on õige SQL-sihtmärk DECIMAL(13, 2), mitte FLOAT, mis tooks kaasa ümardamisvead, mitte INTEGER, mis kaotaks kümnendkohad. Finantssüsteemide puhul, kus COMP-3 väljad sisaldavad rahasummasid, ei ole täpsusnõue läbiräägitav. Migratsioon, mis teisendab PIC S9(11)V99 COMP-3 Sihtskeemis ujukomatüübile üleminek tekitab ümardusvigu, mis kuhjuvad partiitöötluste vahel ja võivad mõjutada regulatiivset aruandlust.

Enne sihtskeemi kujundamise alustamist tuleb iga FD-kirje iga COMP-3 väli dokumenteerida täpse täpsuse, skaala ja märgikonventsiooniga.

VSAM-i juurdepääsumustrite analüüsimine COBOL-allikas

FD kirje kirjeldab kirje sisu. COBOL PROCEDURE DIVISION kirjeldab, kuidas programm seda kasutab. Mõlemad on vajalikud täielikuks struktuurianalüüsiks. Juurdepääsumustri analüüs uurib iga failile juurdepääsu verbi igas programmis, mis andmestikku puudutab.

SELECT-klausel: esimene signaal

ENVIRONMENT DIVISIONi SELECT-klausel määrab, kuidas COBOL-programm VSAM-failile juurde pääseb:

kobol

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT CUSTOMER-FILE
               ASSIGN TO CUSTFILE
               ORGANIZATION IS INDEXED
               ACCESS MODE IS DYNAMIC
               RECORD KEY IS CUST-PRIME-KEY
               ALTERNATE RECORD KEY IS CUST-ALT-KEY
                   WITH DUPLICATES
               FILE STATUS IS WS-CUST-STATUS.

See SELECT-klausel näitab:

  • ORGANIZATION IS INDEXED → KSDS
  • ACCESS MODE IS DYNAMIC → programm kasutab nii järjestikust kui ka juhuslikku juurdepääsu
  • ALTERNATE RECORD KEY IS CUST-ALT-KEY WITH DUPLICATES → alternatiivne indeks on olemas ja see programm kasutab seda

Dünaamiline juurdepääsurežiim on eriti oluline: programm, mis pääseb KSDS-ile juurde dünaamilises režiimis, võib kasutada READ võtmega otsese juurdepääsu saamiseks ja READ NEXT Järjestikuse skaneerimise jaoks positsioneeritud punktist. Mõlemad juurdepääsumustrid tuleb sihtkohas kopeerida, mis võib relatsiooniskeemis vajada nii otsese otsingu (primaarvõtme päring) kui ka vahemiku skaneerimise (järjestatud läbimine) tuge.

Juurdepääsuverbid ja nende migratsioonimõjud

Iga failile juurdepääsu verb näitab programmi ja VSAM-andmestiku vahelise suhtluse erinevat dimensiooni:

LOE (otse): READ CUSTOMER-FILE KEY IS WS-CUST-KEY, otsene võtmeotsing. Kaardid SELECT ... WHERE primary_key = ?Enamik KSDS-programme kasutab seda mustrit; see teisendub otse relatsiooniliseks indekseeritud otsinguks.

LOETUD (järjestikune): READ CUSTOMER-FILE NEXT RECORD, järjestikune skaneerimine praegusest asukohast. Kaardid sihtkohta SELECT ... ORDER BY primary_key kursori positsioneerimisega. Kaudne järjestussõltuvus ehk programmid, mis tuginevad järjestikuse töötlemise jaoks VSAMi loomulikule võtmejärjekorrale, tuleb sihtkohas selgesõnaliselt säilitada.

ALGUS: START CUSTOMER-FILE KEY >= WS-SEARCH-KEY järgnevad READ NEXT, vahemiku skaneerimine osalisest võtmepositsioonist. Seostub vahemiku päringuga: SELECT ... WHERE primary_key >= ? ORDER BY primary_keySTART-i kasutavad programmid määravad järjestikuse skaneerimise jaoks alumise piiri; see on KSDS-failide jaoks kriitiline juurdepääsumuster, millel puudub lihtne vaste, välja arvatud juhul, kui sihttabelil on sama võtmete järjestus.

KIRJUTA: Lisab uue kirje võtme järgi. Seob INSERT INTOKui VSAM-failil on alternatiivsed indeksid, peab kirjutamine säilitama järjepidevuse nende indeksitega; VSAM-is on see automaatne; relatsioonandmebaasis on vaja kas andmebaasi päästikut või rakendustaseme koodi samaväärsete teiseste indeksitabelite säilitamiseks.

ÜMBERKIRJUTA: Värskendab kirjet kohapeal. Kirje peab olema hetkel ootel (pärast lugemist ooteloleku kavatsusega). Seostab kirjega UPDATE ... WHERE primary_key = ?REWRITE on lugemis-muuda-kirjutamismuster; migratsioon peab säilitama tehingu terviklikkuse nii lugemise kui ka kirjutamise ajal.

KUSTUTA: Eemaldab kirje võtme järgi. KSDS-failides on DELETE füüsiline kustutamine. Programmid, mis eeldavad, et kustutatud pesa pole tulevaste järjestikuste skannimiste jaoks saadaval, sõltuvad sellest füüsilisest kustutamise käitumisest. Pehme kustutamine (loogilise kustutamise lipp) sihtkohas ei anna samaväärset käitumist, kui iga tarbivat programmi ei värskendata loogiliselt kustutatud kirjete filtreerimiseks.

Alternatiivse indeksi kasutamine: varjatud sõltuvus

KSDS-failide alternatiivsed indeksid on VSAM-i migreerimisel ühed kõige sagedamini tähelepanuta jäetud sõltuvused. Alternatiivne indeks võimaldab programmil KSDS-ile juurde pääseda muu välja kui algvõtme abil. Alternatiivne indeks on ise eraldi VSAM-i andmestik (PATH), mida tuleb baasklastriga sünkroonis hoida.

Programm, mis pääseb ligi CUSTOMER-FILE oma alternatiivse võtme kaudu CUST-ALT-KEY omab sõltuvust, mis on nähtamatu, kui analüüsitakse ainult baasklastri FD kirjet. Migratsioon peab:

  1. Tuvastage, millised programmid milliseid alternatiivvõtmeid kasutavad (nähtav SELECT-klauslis) ALTERNATE RECORD KEY deklaratsioonid)
  2. Iga alternatiivvõtme kaardistamine sihttabeli samaväärse SQL-indeksiga
  3. Veenduge, et sihttabeli INSERT ja DELETE toimingud säilitavad automaatselt alternatiivse indeksi ekvivalenti, tavaliselt SQL-i unikaalsete või mitteunikaalsete indeksite kaudu, mida andmebaasimootor läbipaistvalt haldab.

Analüüs peab loetlema iga KSDS-i andmestiku kõik alternatiivsed indeksid ja kaardistama iga indeksi seda tarbivate programmidega.

Jagatud andmestiku probleem: kaudsed andmelepingud

VSAM-faile jagatakse sageli mitme programmi ja JCL-tööetapi vahel. See jagamine loob kaudseid andmelepinguid ehk programmidevahelisi kokkuleppeid kirjete paigutuse, võtmevahemike ja juurdepääsumustrite kohta, mis ei eksisteeri kusagil mujal kui koodis endas.

Jagatud andmestiku sõltuvusel on kaks dimensiooni:

Tootja-tarbija suhted. Programm A kirjutab kirjeid, mida programm B loeb. Programmi A loodud kirjete paigutus, võtmeväärtused ja järjestus peavad täpselt vastama sellele, mida programm B eeldab tarbida. Kui A ja B migreeritakse iseseisvalt erinevatele sihtskeemidele ilma jagatud andmelepingut koordineerimata, on tulemuseks vaikne andmete korruptsioon: B lugemised sihtandmebaasis õnnestuvad, kuid tagastavad andmed vormingus, mida B loogika õigesti ei käsitle.

Samaaegne juurdepääs erinevate tööetappide vahel. JCL-töövoog võib sisaldada mitut etappi, millest igaüks käivitab sama VSAM-andmestiku suhtes järjest erinevat programmi. 1. etapp kirjutab, 2. etapp loeb ja teisendab, 3. etapp kirjutab tulemused. Migreerimine peab säilitama selle järjestikuse sõltuvuse – järjekord, milles programmid jagatud andmestikule juurde pääsevad ja seda muudavad, on osa süsteemi käitumuslikust spetsifikatsioonist.

Täielik jagatud andmestiku analüüs peab:

  • Loetlege kõik VSAM-andmestikud ja kõik programmid, mis sellele juurde pääsevad
  • Liigita iga programmi ligipääs tootja (WRITE/REWRITE/DELETE), tarbija (READ) või mõlemana
  • Dokumenteerige JCL-töö kontekst, milles iga programm töötab, millises etapis, millises töös ja millises ajastaja sõltuvusahelas.
  • Tuvastage tootja-tarbija paarid, kus tootja väljundvorming peab täpselt vastama tarbija oodatavale sisendvormingule

Seda analüüsi ei saa teha üksikut programmi eraldi uurides. See nõuab programmide ja JCL-ide vahelist struktuurianalüüsi.

Eelmigratsiooni tulemused: mida analüüs peab andma

Andmete moderniseerimise planeerimiseks piisav VSAM-i struktuurianalüüs annab kuus tulemust:

Tulemus 1: VSAM-i andmestiku inventuur

Iga keskkonnas olev VSAM-andmestik koos järgmisega: andmestiku korraldus (KSDS/ESDS/RRDS/LDS), keskmine ja maksimaalne kirjete pikkus, hinnanguline kirjete arv (JCL SPACE parameetrite või kataloogikirjete põhjal), võtmestruktuur (primary võtme nihe, pikkus; alternatiivsed võtmestruktuurid) ja see, kas andmestikul on alternatiivsed indeksid.

Tulemus 2: Kirjepaigutuse kataloog

Iga andmestiku, iga FD-kirje ja sellele viidatud koopiaraamatute kohta koos: kõigi väljadefinitsioonidega, sh REDEFINES-hierarhiatega, iga COMP-3 väljaga selle täpse täpsuse ja skaalaga, iga binaarväljaga (COMP/COMP-5) selle baidipikkusega, iga muutuva pikkusega elemendiga (ESINEB SÕLTUVALT oma juhtväljast) ja iga REDEFINES-i poolt kaudse tingimusliku või paigutuse variandiga.

Tulemus 3: Juurdepääsumustrite klassifikatsioon programmi järgi

Iga andmestikule juurde pääseva programmi kohta: SELECT-klausli omadused (korraldus, juurdepääsurežiim, alternatiivse võtme kasutamine), kasutatud juurdepääsuverbide täielik komplekt (LOE/START/KIRJUTA/KIRJUTA ÜMBER/KUSTUTA), kas programm kasutab järjestikust juurdepääsu ja sõltub võtmete järjestusest, milliseid alternatiivseid indekseid programm kasutab ja kas programmil on lugemis-muudmise-kirjutamise mustrid (impliitsed tehingunõuded).

Tulemus 4: Jagatud andmestiku kaart

Suunatud graaf, kus sõlmed on VSAM-andmestikud ja -programmid ning servad esindavad juurdepääsusuhteid koos nende tüübiga (lugemine/kirjutamine). Graafik näitab iga tootjat, iga tarbijat, tootja-tarbija paari ja iga juurdepääsu JCL-tööjada konteksti.

Tulemus 5: Sihtskeemi soovitused

Iga VSAM-andmestiku puhul on soovitatav sihtarhitektuur selle korralduse ja juurdepääsumustri põhjal järgmine:

VSAM-i tüüpPeamine juurdepääsumusterSoovitatav sihtmärk
KSDS, ainult otsevõtmega juurdepääsPunktiotsingud primaarvõtme järgiRelatsioontabel, indekseeritud
KSDS koos START/READ NEXT nupugaVahemiku skaneeringud võtme järjekorrasRelatsioonitabel klastrite indeksiga
KSDS alternatiivsete indeksitegaMitme teekonnaga võtmega juurdepääsMitme indeksiga relatsioonitabel
ESDS, ainult lisamiseksJärjestikune lisamine, võtit poleAinult lisatav tabel, sündmuste voog või logi
ESDS koos RBA juurdepääsugaBaidi nihke positsioneerimineObjektide salvestamine metaandmete indeksiga
RRDSSalvesta numbrile juurdepääsRelatsioonitabel järjestusveeruga
Suur KSDS (massandmed, analüüs)Täielikud järjestikused skaneeringudKolonnmälu või andmejärv
LDSRakenduse hallatav sisemine vormingNõuab rakenduskihi analüüsi

Tulemus 6: Täppistundlik põlluregister

Iga COMP-3, COMP, COMP-5 ja ujukomavälja iga andmekogum koos selle COBOL-definitsiooni, õige SQL-andmetüübi vastenduse ja lipuga iga välja jaoks, mille vastendus nõuab enne ja pärast migreerimist täpsuse valideerimist.

Mis teeb VSAM-analüüsi relatsiooniskeemi analüüsist erinevaks?

Meeskonnad, kellel on kogemusi relatsioonandmebaaside vahelise migreerimisega, alahindavad mõnikord VSAM-analüüsi, kuna nad rakendavad skeemi migreerimise mentaalset mudelit: DDL-i eraldamine, skeemi ümberkujundamine, andmete migreerimine. VSAM-il puudub andmebaasi mõttes DDL. Skeem on jaotatud lähtekoodi, FD-kirjete, märkmike, SELECT-klauslite ja PROCEDURE DIVISION-loogika vahel, mis määrab, milline REDEFINES-variant on iga kirje jaoks aktiivne.

Kolm omadust muudavad VSAM-analüüsi struktuurilt erinevaks:

Skeem asub koodis. VSAM-andmestiku kirjepaigutus on määratletud COBOL-i lähtekoodis, mitte andmebaasi kataloogis. Selle leidmiseks on vaja lähtekoodi parsida. Selle muutmiseks on vaja koordineerida iga programmi, mis koodiraamatut jagab. Kõigi selle variantide mõistmiseks on vaja analüüsida programmi loogikat, mitte ainult FD-kirjet.

Juurdepääsumustrid on programmi käitumises kaudselt olemas. Relatsioonandmebaas avaldab päringumustrid EXPLAIN-plaanide ja päringulogide kaudu. VSAM-i juurdepääsumustrid on nähtavad ainult failile juurde pääsevate programmide PROTSEDUURIJAOTISES. Selleks, et mõista, kas programm sõltub võtmejärjestusest, alternatiivse indeksi juurdepääsust või vahemiku skaneerimisest, on vaja koodianalüüsi.

Jagatud andmekogumid loovad peidetud lepinguid. Relatsioonandmebaasis on skeem andmebaasi tasemel artefakt, mida kõik tarbijad jagavad ja näevad. VSAM-is on kirjepaigutus manustatud iga programmi märkmikku. Kahel programmil võivad olla erinevad koopiad nominaalselt samast kirjepaigutusest ja selle erinevuse avastamiseks tuleb võrrelda märkmike definitsioone programmide vahel, mitte kontrollida üksikut skeemidefinitsiooni.

Kuidas SMART TS XL Teostab VSAM-i struktuurianalüüsi

SMART TS XL'S staatilise koodi analüüs Parsib iga COBOL-allikas eksisteeriva VSAM-struktuuri elementi: FD-kirjed, COPY-liikme laiendused, SELECT-klausli deklaratsioonid (organisatsioon, juurdepääsurežiim, primaar- ja alternatiivvõtme spetsifikatsioonid) ja iga failile juurdepääsu verb PROCEDURE DIVISION-is. Iga VSAM-andmestiku jaoks loob analüüs juurdepääsumustri klassifikatsiooni, täieliku REDEFINES-resolutsiooniga kirjete paigutuse ja täpsete metaandmetega COMP-3 väljaregistri.

Rakenduse sõltuvuste kaardistamine loob jagatud andmestiku kaardi: iga programm, mis pääseb juurde igale VSAM-andmestikule, liigitatakse juurdepääsutüübi järgi, kusjuures on tuvastatud tootja-tarbija suhted ja lahendatud koopiaraamatu jagamise graafik. Kui 47 programmi jagavad koopiaraamatut, mis määratleb VSAM-kirjete paigutuse, muudab sõltuvuskaart kõik 47 nähtavaks enne migreerimisotsuse tegemist, mitte pärast seda, kui paigutuse muudatus on 47 programmi ootamatul viisil rikkunud.

JCL -i laiendusvõimalus pakub operatiivset konteksti: millised JCL-i tööetapid viitavad oma DD-lausetes millistele VSAM-i andmekogumitele, millises järjekorras ja millistes töövoogudes. JCL-i töö tasandil eksisteerivad tootja-tarbija suhted, kus 1. samm kirjutab VSAM-i andmekogumile, mida 3. samm loeb, on JCL-i sõltuvuste analüüsis nähtavad, võimaldades migreerimise järjestamist, mis säilitab partii ajakava poolt jõustatud operatiivse järjekorra sõltuvused.

Mõjuanalüüsi võimalus vastab küsimusele, mis eelneb igale VSAM-i migreerimisotsusele: kui selle andmestiku paigutus muutub, siis millised programmid muutuvad? Mõju ulatus – iga programm, mis jagab asjakohast käsiraamatut, iga JCL-samm, mis viitab andmestikule – loetletakse enne mis tahes migreerimistöö alustamist, pakkudes alust koordineeritud migreerimisplaanile, selle asemel, et avastada mõjutatud programme ükshaaval.

Ettevõtte otsinguvõimalus muudab kogu VSAM-i inventuuri päringutega hõlpsasti leitavaks kogu moderniseerimisprogrammi vältel: leia sekunditega iga programm, mis pääseb juurde konkreetsele VSAM-i andmestikule, iga märkmik, mis määratleb konkreetse kirjepaigutuse, iga programm, mis kasutab START/READ NEXT mustreid (mis näitab järjestamise sõltuvusi), iga COMP-3-na määratletud väli (mis nõuab täpsusega arvestavat sihtmärgi kaardistamist) miljonite COBOL-ridade ulatuses.

Nagu kontekstis kirjeldatud IMS-i ja VSAM-i andmestruktuuride migreerimine koos COBOL-programmidega, andmete migreerimine ja koodianalüüs peavad toimuma paralleelselt. SMART TS XLVSAM-i struktuurianalüüs annab inventuuri, mis muudab selle paralleelsuse käsitletavaks, jagatud kirjete paigutuse, juurdepääsumustrid ja tootja-tarbija suhted, mis määravad, kas andmete migreerimine saab toimuda iseseisvalt või tuleb seda koordineerida programmimuudatustega.

Struktuur, mida sa mõistad, on struktuur, mida sa saad migreerida

VSAM-failistruktuuri analüüs ei ole moderniseerimisprogrammis lisakulu. See on otsuste tegemise alus. Sihtskeemi ei saa kujundada ilma kirjepaigutuse variante teadmata. Migratsiooni ei saa järjestada ilma tootja-tarbija suhteid teadmata. COMP-3 väljade täpsust ei saa säilitada ilma teadmata, millised väljad nõuavad kümnendmurdudega sihttüüpe.

Iga moderniseerimisprogramm, mis selle analüüsi vahele jätab, avastab migreerimise käigus märkamata jäänud asjad, näiteks kui analüüsimata jäänud UUENDUSVARIANT tekitab sihtkohas vigaseid kirjeid, kui jagatud andmestik migreeritakse ilma kõiki selle tarbijaid koordineerimata või kui VSAM-i võtmejärjekorra tulemustele tuginev vahemiku skaneerimine annab sihttabelist määratlemata järjestuse, mis ei ole loodud klasterdatud indeksiga. Need avastused käivitamise ajal maksavad mitu korda rohkem, kui analüüs oleks maksnud planeerimise ajal.

Saa esmalt aru struktuurist. Seejärel migreeri andmed. Järjestus ei ole formaalsus. See on erinevus migratsiooni vahel, mis annab õigeid tulemusi, ja migratsiooni vahel, mis annab andmeid, mis näivad õiged kuni esimese regulatiivse auditi läbiviimiseni.