Zum Inhalt springen

„Partitioned Data Set“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[ungesichtete Version][ungesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Keine Bearbeitungszusammenfassung
Überarbeitung kompletter Artikel zu Inhalt und Layout samt einiger Einzelnachweise
Zeile 2: Zeile 2:


== PDS ==
== PDS ==
Bei einem Partitioned Data Set wird der Dataset in einzelne Partitionen (Member genannt) eingeteilt. Jedes PDS besteht aus einem Verzeichnis (directory) und den einzelnen PDS-Members und umfasst mindestens eine Spur (track).
Bei einem Partitioned Data Set wird der Dataset in einzelne Partitionen (Member genannt) eingeteilt. Jedes PDS besteht aus einem Verzeichnis (directory) und den einzelnen PDS-Members. Im weitesten Sinne ist eine PDS Datei eine [[Containerdatei]].


Beim Anlegen eines PDS wird die Anzahl Directory-Blöcke angegeben, und somit die maximale Größe des Verzeichnisses festgelegt.
Beim Anlegen eines PDS beträgt die Mindestgröße eine Spur (track), es wird die Anzahl der Directory-Blöcke angegeben, und somit die maximale Größe des Verzeichnisses festgelegt.


Die Benennung erfolgt wie auch bei anderen [[Dataset]]s. Durch Anhängen des Membernamens in Klammern kann direkt auf das Member zugegriffen werden.
Die Benennung erfolgt wie auch bei anderen [[Dataset]]s. Durch Anhängen des Membernamens in Klammern kann direkt auf das Member zugegriffen werden.
Zeile 10: Zeile 10:
Beispiel: <code>TSO.MVS.CLIST(TEST)</code>
Beispiel: <code>TSO.MVS.CLIST(TEST)</code>


Dabei bezeichnet der letzte Qualifier vor der Klammer in der Regel den Typ der enthaltenen Member. Hierbei handelt es sich aber um reine Namenskonventionen. Oft benutzt sind z.&nbsp;B.:
Dabei bezeichnet der letzte Qualifier vor der Klammer in der Regel den Typ der enthaltenen Member. Hierbei handelt es sich aber um reine Namenskonventionen. Oft benutzt sind z.B.:
{| class="wikitable"
|+
!Letzter Qualifier
!Inhalt
|-
|[[CLIST]]
|enthält ausführbare [[Time-Sharing Option|TSO]]-Befehle
|-
|CNTL
|enthält ausführbare Batch-Jobs ([[Job Control Language|JCL]])
|-
|LOAD
|enthält ausführbare Programme ([[Lademodul]]) Oft wird auch LOADLIB verwendet. Die Änderungen LPALIB und LINKLIB stellen Sonderfälle der LOAD Bibliotheken für Systemzwecke dar
|-
|TEXT
|enthält Textdateien
|-
|COBOL
|[[Cobol]]-Quelltexte
|-
|PLI
|[[PL/I]]-Quelltexte
|-
|C
|[[C (Programmiersprache)|C]]-Quelltexte
|-
|ASM
|[[Assemblersprache|Assembler]]-Quelltexte
|-
|PARMLIB
|Konfigurationsdateien für das [[Betriebssystem]] und Softwareprodukte
|}


* [[CLIST]] – enthält ausführbare [[Time-Sharing Option|TSO]]-Befehle
* CNTL – enthält ausführbare Batch-Jobs ([[Job Control Language|JCL]])
* LOAD – enthält ausführbare Programme ([[Lademodul]]) Oft wird auch LOADLIB verwendet. Die Änderungen LPALIB und LINKLIB stellen Sonderfälle der LOAD Bibliotheken für Systemzwecke dar.
* TEXT – enthält Textdateien
* COBOL – [[Cobol]]-Quelltexte
* PLI – [[PL/I]]-Quelltexte
* C – C-Quelltexte
* ASM – Assembler-Quelltexte
* PARMLIB – Konfigurationsdateien für das Betriebssystem und Softwareprodukte


Beim Update eines Members wird dieses am Ende des PDS neu geschrieben. Der Platz, den das Member vorher einnahm, kann vorerst nicht benutzt werden. Erst ein sogenannter „Compress“ (IEBCOPY-Utility) schiebt die Member wieder zusammen und gibt den Platz frei.
Beim Update eines Members wird dieses am Ende des PDS neu geschrieben. Der Platz, den das Member vorher einnahm, kann vorerst nicht benutzt werden. Erst ein sogenannter „Compress“ [[IEBCOPY|(IEBCOPY]] Hilfsprogramm (sog. [[Dienstprogramm|Utility]])) schiebt die Member wieder zusammen und gibt den Platz frei. Dieser PDS Datei spezifische Vorgang darf nicht mit einer [[Datenkompression]] verwechselt werden.


Wenn das Directory voll ist, können keine weiteren Member im PDS gespeichert werden. Üblicherweise wird diese Situation mit Umkopieren und Rename gelöst. Es gibt aber auch ein Freewareprogramm zur Directory-Vergrößerung.
Wenn das Directory voll ist, können keine weiteren Member im PDS gespeichert werden. Üblicherweise wird diese Situation mit Umkopieren und Rename gelöst. Es gibt aber auch ein Freewareprogramm zur Directory-Vergrößerung.
Zeile 30: Zeile 53:


== PDSE – Version 2 ==
== PDSE – Version 2 ==
PDSE/V2 ist eine Weiterentwicklung von PDSE/V1. Neben besserer Performance und Speichereffizienz besteht der Hauptvorteil der Möglichkeit mehrere Versionen je Member verwalten zu können. Mit der Einführung von PDSE/V2 wurde der Funktionsumfang vom IEBCOPY Programm, [[ISPF]] und auch der [[Job Control Language|JCL]] Syntax Umfang erweitert, um PDSE/V2 verarbeiten zu können.<ref>{{Internetquelle |autor=Thomas Reed |url=https://share.confex.com/share/124/webprogram/Handout/Session16957/SHARE%20Seattle%202015%20Using%20Member%20Generations.pdf |titel=PDSE Version 2: Member GenerationsPractical User Applications |abruf=2022-03-13 |format=PDF |sprache=en}}</ref>
PDSE/V2 ist eine Weiterentwicklung von PDSE/V1. Neben besserer Performance und Speichereffizienz besteht der Hauptvorteil in der Möglichkeit mehrere Versionen je Member verwalten zu können. Mit der Einführung von PDSE/V2 wurde der Funktionsumfang vom [[IEBCOPY]] Programm, [[ISPF]] und auch der [[Job Control Language|JCL]] Syntax Umfang erweitert, um PDSE/V2 verarbeiten zu können.<ref>{{Internetquelle |autor=Thomas Reed |url=https://share.confex.com/share/124/webprogram/Handout/Session16957/SHARE%20Seattle%202015%20Using%20Member%20Generations.pdf |titel=PDSE Version 2: Member GenerationsPractical User Applications |abruf=2022-03-13 |format=PDF |sprache=en}}</ref>


'''Beispiel: Anlegen PDSE/V2 Dataset mit JCL per [[IEFBR14]]''':
'''Beispiel: Anlegen PDSE/V2 Dataset mit JCL per [[IEFBR14]]''':
<syntaxhighlight lang="asm">
<syntaxhighlight lang="jcl">
//JOB1 JOB (12345),MSGCLASS=X,NOTIFY=SYSPROG1
//JOB1 JOB (12345),MSGCLASS=X,NOTIFY=SYSPROG1
//ALLOC EXEC PGM=IEFBR14
//ALLOC EXEC PGM=IEFBR14
//PDSE2 DD DSN=TREED.PDSE.GENS,
//PDSE2 DD DSN=TREED.PDSE.GENS,
// DSNTYPE=(LIBRARY,2),MAXGENS=10,
// DSNTYPE=(LIBRARY,2),MAXGENS=10,
// RECFM=FB,LRECL=80,
// RECFM=FB,LRECL=80,
// UNIT=SYSALLDA,SPACE=(CYL,(1,1,1)),
// UNIT=SYSALLDA,SPACE=(CYL,(1,1,1)),
// DISP=(,CATLG,DELETE)
// DISP=(,CATLG,DELETE)
</syntaxhighlight>
</syntaxhighlight>


== Bearbeitung PDS und PDSE Dateien ==
Folgende gängige Methoden zur PDS / PDSE Datei Verarbeitung finden in der Praxis Anwendung:
* Zuordnung physische Datei zu logischem Namen in [[Job Control Language|JCL]] ist weder nur auf Dataset Ebene (ohne Memberangabe) möglich oder heruntergebrochen bis auf Memberebene (Datasetangabe mit Member)
* Verwendung des [[IEBCOPY]] Hilfsprogramms (sog. [[Dienstprogramm|Utility]])
* Für Online Anwender unter [[Time-Sharing Option|TSO]] kann [[ISPF]] verwendet werden
* Die [[Application Programming Interface|APIs]] von ISPF können sowohl in [[Programmiersprache|Programmiersprachen]] wie [[Assemblersprache|Assembler]], [[COBOL]], [[PL/I]], [[C (Programmiersprache)|C]] als auch in [[Skriptsprache|Scriptsprachen]] ([[CLIST]], [[REXX]]) verwendet werden. Damit ist ein einfacher Zugriff aus Programmen auf PDS / PDSE Dateien möglich.<ref>{{Internetquelle |url=https://www.ibm.com/docs/en/zos/2.1.0?topic=services-invoking-ispf-program-functions |titel=Invoking ISPF services with program functions |werk=IBM |sprache=en |abruf=2022-08-15}}</ref><ref>{{Internetquelle |url=https://www.ibm.com/docs/en/zos/2.1.0?topic=sis-library-access-services |titel=Library access services |werk=IBM |hrsg=IBM |sprache=en |abruf=2022-08-15}}</ref>
* [[IBM]] File Manager for z/OS<ref>{{Internetquelle |url=https://www.ibm.com/products/file-manager-for-zos |titel=IBM File Manager for z/OS |werk=https://www.ibm.com |sprache=en |abruf=2022-08-16}}</ref>
* Diverse kommerzielle Produkte von [[Drittanbieter|Drittanbietern]] wie PDSMAN von [[Broadcom]]<ref>{{Internetquelle |url=https://techdocs.broadcom.com/us/en/ca-mainframe-software/traditional-management/ca-pdsman-pds-library-management/7-7/administrating/what-is-pdsman.html |titel=PDSMAN® PDS LIBRARY MANAGEMENT 7.7 |werk=Broadcom |datum=2022-06-03 |sprache=en |abruf=2022-08-15}}</ref>
* Diverse [[Freeware]] Tools<ref>{{Internetquelle |url=https://www.cbttape.org/freepds.htm |titel=PDS command package |sprache=en |abruf=2022-08-15}}</ref> <br />
== Literatur ==
== Literatur ==



Version vom 16. August 2022, 17:56 Uhr

Ein Partitioned Data Set (PDS oder PDSE), umgangssprachlich oft auch als Library oder auch als PO-Datei (partitioned organized) bezeichnet, ist eine Dateiorganisationsform (Dateiformat) auf IBM-Großrechnern.

PDS

Bei einem Partitioned Data Set wird der Dataset in einzelne Partitionen (Member genannt) eingeteilt. Jedes PDS besteht aus einem Verzeichnis (directory) und den einzelnen PDS-Members. Im weitesten Sinne ist eine PDS Datei eine Containerdatei.

Beim Anlegen eines PDS beträgt die Mindestgröße eine Spur (track), es wird die Anzahl der Directory-Blöcke angegeben, und somit die maximale Größe des Verzeichnisses festgelegt.

Die Benennung erfolgt wie auch bei anderen Datasets. Durch Anhängen des Membernamens in Klammern kann direkt auf das Member zugegriffen werden.

Beispiel: TSO.MVS.CLIST(TEST)

Dabei bezeichnet der letzte Qualifier vor der Klammer in der Regel den Typ der enthaltenen Member. Hierbei handelt es sich aber um reine Namenskonventionen. Oft benutzt sind z.B.:

Letzter Qualifier Inhalt
CLIST enthält ausführbare TSO-Befehle
CNTL enthält ausführbare Batch-Jobs (JCL)
LOAD enthält ausführbare Programme (Lademodul) Oft wird auch LOADLIB verwendet. Die Änderungen LPALIB und LINKLIB stellen Sonderfälle der LOAD Bibliotheken für Systemzwecke dar
TEXT enthält Textdateien
COBOL Cobol-Quelltexte
PLI PL/I-Quelltexte
C C-Quelltexte
ASM Assembler-Quelltexte
PARMLIB Konfigurationsdateien für das Betriebssystem und Softwareprodukte


Beim Update eines Members wird dieses am Ende des PDS neu geschrieben. Der Platz, den das Member vorher einnahm, kann vorerst nicht benutzt werden. Erst ein sogenannter „Compress“ (IEBCOPY Hilfsprogramm (sog. Utility)) schiebt die Member wieder zusammen und gibt den Platz frei. Dieser PDS Datei spezifische Vorgang darf nicht mit einer Datenkompression verwechselt werden.

Wenn das Directory voll ist, können keine weiteren Member im PDS gespeichert werden. Üblicherweise wird diese Situation mit Umkopieren und Rename gelöst. Es gibt aber auch ein Freewareprogramm zur Directory-Vergrößerung.

PDSE – Version 1

Durch die Einführung des System Managed Storages (SMS) existiert seit MVS/XA eine modernere Verwaltungsform, das Partitioned Data Set Extended (PDSE). Hier werden die Daten in 4-kB-Blöcken verwaltet, und der beim Löschen von Members frei gewordene Platz kann ohne Compress sofort verwendet werden. Die Verzeichnisgröße ist völlig variabel. Die Einführung von PDSE verläuft sehr langsam, da bis vor kurzem Integritätsprobleme bestanden. Durch einen speziellen Job können bestehende Partitioned Datasets in diese neue Verwaltungsform überführt werden.

PDSE – Version 2

PDSE/V2 ist eine Weiterentwicklung von PDSE/V1. Neben besserer Performance und Speichereffizienz besteht der Hauptvorteil in der Möglichkeit mehrere Versionen je Member verwalten zu können. Mit der Einführung von PDSE/V2 wurde der Funktionsumfang vom IEBCOPY Programm, ISPF und auch der JCL Syntax Umfang erweitert, um PDSE/V2 verarbeiten zu können.[1]

Beispiel: Anlegen PDSE/V2 Dataset mit JCL per IEFBR14:

//JOB1   JOB (12345),MSGCLASS=X,NOTIFY=SYSPROG1
//ALLOC EXEC PGM=IEFBR14
//PDSE2 DD DSN=TREED.PDSE.GENS,
// DSNTYPE=(LIBRARY,2),MAXGENS=10,
// RECFM=FB,LRECL=80,
// UNIT=SYSALLDA,SPACE=(CYL,(1,1,1)),
// DISP=(,CATLG,DELETE)

Bearbeitung PDS und PDSE Dateien

Folgende gängige Methoden zur PDS / PDSE Datei Verarbeitung finden in der Praxis Anwendung:

Literatur

  • Teuffel, Michael: TSO, Time Sharing Option im Betriebssystem MVS, Oldenbourg Verlag GmbH, München, 1991, ISBN 3-486-22072-1

Einzelnachweise

  1. Thomas Reed: PDSE Version 2: Member GenerationsPractical User Applications. (PDF) Abgerufen am 13. März 2022 (englisch).
  2. Invoking ISPF services with program functions. In: IBM. Abgerufen am 15. August 2022 (englisch).
  3. Library access services. In: IBM. IBM, abgerufen am 15. August 2022 (englisch).
  4. IBM File Manager for z/OS. In: https://www.ibm.com. Abgerufen am 16. August 2022 (englisch).
  5. PDSMAN® PDS LIBRARY MANAGEMENT 7.7. In: Broadcom. 3. Juni 2022, abgerufen am 15. August 2022 (englisch).
  6. PDS command package. Abgerufen am 15. August 2022 (englisch).