U moet deze herstelmethoden onderzoeken wanneer u die vsam 100-fout krijgt.
Only admnistrator owned posts can execute the[includeme]
shortcode. This message is shown only to administrators.
Voordat u mijn alternatieve directorysite (AIX) en pad maakt, wilt u mijn cluster opstarten.
Table of Contents
Wat gebeurt er als we een leeg VSAM-bestand openen?
Wat kan er gebeuren als u een leeg VSAM-bestand opent terwijl u een COBOL-programma met alleen invoer gebruikt? Een VSAM-bestand dat op zijn beurt nooit een item bevat, wordt ontoegankelijk bekeken. Een open invoerpoging is mislukt. Als u open staat voor uitvoer, schrijft COBOL de dummy-verkrijging permanent naar zijn bestand en verwijdert het vervolgens.
De statuscode van het VSAM-document geeft de status van de bewerking aan. VSAM-bestanden vereisen in ieder geval dat de invoer eerst in de initialisatie wordt geladen voordat het bestand kan worden gestart tijdens invoerverwerking of update. Dit is hoogstwaarschijnlijk omdat wanneer het bestand wordt geopend, VSAM een dubbelcontrolecommando terugzet om de volledige end-of-file-aanwijzer op nul te zetten. Als dit bestand definitief is geladen, zal de controle mislukken omdat al het relatieve byte-adres voor hoog gebruik (RBA) (HI-USEDRBA) altijd nul kan zijn. Daarom moeten de VSAM-bestanden worden “geladen” om RBA HI-USED in te stellen op een andere waarde dan 0%. Dit wordt ongetwijfeld gedaan door een specifiek item naar het VSAM-hoofdbestand te schrijven in de modus “Download” en eventueel alle items weg te laten om het bestand weer op te schonen wanneer de RBA HI-USED-waarde gloednieuw blijft, niet-nul.
Een VSAM-bestand dat nooit synoniemen heeft gehad, wordt als ontoegankelijk beschouwd. Een poging om de inhoud zonder twijfel te openen is mislukt. Een leeg bestand kan alleen soms worden geopend voor uitvoer. Als je het opent dat nodig is voor uitvoer, zal COBOL waarschijnlijk een dummy-ingang naar dit bestand schrijven en vervolgens het volgende verwijderen.
VSAM maakt onderscheid tussen georganiseerde nulgegevens (dwz gegevens die nooit een record hebben gehad) en in wezen niet-traceerrecords (dwz een invoer toevoegen aan KSDS en daarna verwijderen ). . Het verschil is dat dat elke schrijfactie naar de VSAM-dataset omvat, de hint wordt bijgewerkt om de meest gebruikte RBA te delen. Als je misschien nog nooit eerder informatie hebt geschreven, dus je hebt er gegevens van gemaakt, de aanwijzer doet er niet echt toe en veroorzaakt daarom problemen met VSAM als je dit testament probeert te implementeren om de uiteindelijke gegevens te bepalen die je kunt gebruiken. Elk programma dat dat VSAM-bestand probeert te openen voor pakketinvoer voordat er zeker iets voor het bestand is gemaakt, zal een stoornis veroorzaken en code 35 retourneren omdat VSAM in plaats van beschikbaar is.
Initialiseer VSAM-bestandsstatus (programma)
Hoe los ik een open VSAM-fout op?
VSAM OPEN-foutoplossing en definitieve programmaverificatie Bestandskenmerken van het bedrijf (sequentieel, relatief of geïndexeerd) Eerste oude sleutel. Alternatieve registratiesleutels.
- Om VSAM te initialiseren, kunt u het heel goed beschikbaar maken in de modus voor één uitvoer in combinatie met het tijdens de initialisatie in het programma te sluiten, wat vaak uw probleem kan oplossen. Open het dan nog een keer in I/O-modus.
- Schrijf een stap in de JCL die de VSAM REPRO en andere items uit de platte bestandsversie verwijdert. Stel dat deze belangrijke stap moet worden gedaan voordat de computersoftware VSAM.VSAM
gebruikt
InitialiserenBestandsstatus ophalen (handmatig)
- Open een bepaald VSAM-bestand in EDIT-modus in één bestandsbeheerder.
- Voeg een item in het VSAM-bestand in en sla op.
- Verwijder de zeer hoge mate van en sla het op om het VSAM-bestand handmatig te initialiseren.
//STEP010 EXEC PGM=IDCAMS //SYSPRINT DD //SYSOUT sysout=* DD SORTEREN SIS=* //SYSIN DD * VERWIJDER XXXXX.TEST.VSAM VERWIJDER CLUSTER SET CLUSTER (NAAM(XXXXX.TEST.VSAM) - VOLUME(* *) . . . . . . . ! . ! . . UNIEK UNIEK PROMOTIE OPTIES(3 3) - CILINDER(7 7)) - GEGEVENS(NAAM(XXXXX.TEST.VSAM.GEGEVENS) - TOETSEN (29 0) - OPNAMEGROOTTE (35 35) - ICIS(4096)). . . . . . . . INDEX(NAAM(XXXXX.TEST.VSAM.INDEX) - NOIMBED NOREPLICATE) /* //STEP020 EXEC PGM=IDCAMS //In DD DSN=XXXXX.TEST.PS,DISP=SHR //EXTERNE DD DSN=XXXXX.TEST.VSAM,DISP=SHR //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SINUS * dd REPRO INFILE(INF) OUTFILE(OUTF) COUNT(1) /*VSAM-bestandsstatus
Bestandsstatus | Beschrijving | ||
00 | SUCCES | ||
02 | EXTRA SLEUTEL, ALTINDEX NIET UNIEK | ||
04 | LEES, ONJUISTE RECORD LENGTE | ||
05 | OPEN, BESTAND BESTAAT NIET | ||
SLUIT voldoende reden voor REEL of NO REWIND voor niet-tape-opnames. | |||
10 | END OF FILE | 13 | Bestand niet gevonden |
14 | Proberen - verplaats een zeer relatieve limietinvoer LEES | ||
16 | VSAM-bestandstoegangsfout | ||
19 | |||
20 | ONGELDIGE VSAM KSDS- OF RRDS-SLEUTEL | ||
21< /td > < td>SEQUENTIEFOUT BIJ HET SCHRIJVEN OF WIJZIGEN VAN DE SLEUTEL BIJ OVERSCHRIJVEN | |||
22 | |||
OPSLAAN STREMENT NIET GEVONDEN of BESTAND NIET GEVONDEN | |||
24< /td> | Ongeldige primaire - sleutel buiten de fi le. | 28 | Mislukt dat zal helpen om record uit te breiden |
30 | |||
Permanente I/O-fout - bestandsopslagbeperking is groter dan | |||
OPEN, BESTAND BESTAAT NIET | |||
37 | Fout bij openen afbeelding vanwege beschikbare modus | ||
38 | Proberen een VERGRENDELD bestand te OPENEN | ||
39 < /td> | LOGISCHE FOUT | ||
41 | BESTAND REEDS OPENEN | ||
42 | SLUITEN OPEN BESTAND ZONDER | ||
43 | VERWIJDEREN OF OVERSCHRIJVEN EN NIET EERST GOED LEZEN | ||
44 | Poging om tekens van verschillende lengte te herschrijven | ||
46 | SEQUENTIEEL LEZEN ZONDER POSITIONERING | ||
LEES BESTAND NIET ALS INPUT/IN/OUT EN OPEN | |||
48 | OPEN RECORD zonder IN INPUT MODE | 49 | VERWIJDEREN OF OVERSCHRIJVEN OPEN bezit IN I/O-MODUS |
90 | Fout bij openen, LEZEN, LOGBOEK of SLUITEN van bewerking | ||
91 | Kon wachtwoord of autorisatie niet invoeren | ||
92 | |||
94 | VOLGENDE LEZEN NA EINDE VAN HET BESTAND / ZONDER OPSLAG INSTRUCTIE D VOOR SEQUENTIE | ||
95 | Ongeldige of onvolledige bestandsinformatie | ||
96 | ONTBREKEN DD-VERKLARING IN JCL | ||
97 | OPEN OK, BESTANDSINTEGRITEIT GECONTROLEERD | ||
98 | Bestand vergrendeld - fout bij openen | ||
99 | Record vergrendeld - Z kon record niet bereiken | ||
100 | Ongeldige download | ||
160 | Bestandsinvoer kan mogelijk leeg zijn | ||
Apparaattype niet ondersteund |
Resolutie VSAM-mapstatus
- De commit-lengte verbindt geen eigenschappen waarvan de attributen kunnen worden ingesteld op de lengte van de lodge.
- Dit is een rapport met variabele bloklengte, maar je hebt het motorblok met vaste lengte in de FD-clausule overschreden. Meestal treedt dit de navigatiefout op bij het lezen van gegevens uit een lijst of het schrijven naar een zinvol bestand.
- Wijs de uitstekende recordlengte toe door de parameter in DCB van uw bestand te gebruiken en deze af te stemmen op gewoonlijk de lengte in de in FD-clausule van uw COBOL-programma.
Wat is de betekenis van VSAM-bestandsstatus 23?
23. Record echt gevonden of map niet gevonden. uur A. De sleutel bevindt zich buiten het bestand.
[includeme]
shortcode. This message is shown only to administrators.