Zum Inhalt springen

Virtual Storage Access Method

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 30. August 2007 um 20:58 Uhr durch Hpb (Diskussion | Beiträge) (Cluster-Begriff und zFS angepasst). Sie kann sich erheblich von der aktuellen Version unterscheiden.

VSAM (Virtual Storage Access Method) beschreibt eine Zugriffsmethode auf Dateien, die auf IBM Großrechnersystemen unter dem Betriebssystem z/OS angelegt wurden. Die Namensgebung basiert auf der Idee, Dateiinhalte wie Zellen im (virtuellen) Hauptspeicher adressieren zu können, was mit Hilfe einer RBA (Relative Byte Adresse) unterstützt wird. Erstmals wurde es dadurch ermöglicht, auf physikalische Eigenschaften der Speichermedien (Plattenzylinder beispielsweise) keine Rücksicht mehr nehmen zu müssen.

Technisch besteht eine VSAM-Datei aus einem Eintrag in einem Katalog (selbst auch eine VSAM-Datei) mit Metadaten und mindestens einer physischen Datei auf einer oder mehrern Platten. VSAM-Dateien werden daher auch als Cluster (sinngemäß Datenhaufen) bezeichnet. Es gibt verschiedene Formen von VSAM-Cluster:

  • KSDS (Key sequential DataSet): Bei dieser Dateiform erfolgt der Datenzugriff über einen Index, der auf Betriebssystemebene in einem eigenen Dataset gespeichert wird. Gleichermaßen wird der sequentielle Zugriff unterstützt
  • ESDS (Entry sequential DataSet): Bei dieser Dateiform wird sequentiell auf den Datenbestand der Datei zugegriffen. Mit Hilfe von Alternativindizes kann nachträglich ein Direktzugriff mit Hilfe von Indizes (Schlüsselfelder) ermöglicht werden.
  • RRDS (Relative Record DataSet): Der Zugriff erfolgt mit Hilfe von logischen Satznummern.
  • LDS (Linear DataSet): Ist ein völlig unstrukturierter Bytestrom, der aber beliebig von der Anwendungssoftware interpretierbar ist.

VSAM-Dateien werden unter z/OS mit Hilfe des Utilitys IDCAMS angelegt und verwaltet und können mit allen dort gängigen Programmiersprachen verarbeitet werden.

Datenbanksysteme wie IMS oder DB2 benutzen VSAM Cluster zur Speicherung ihrer Daten. Die Kataloge des z/OS-Katalogsystems (ICF, Integrated Catalog System) sind VSAM-Dateien, ebenso nutzen weitere zentrale Systemkomponenten wie

  • die Hardwarekonfiguration (HCD),
  • der Workloadmanager (WLM),
  • der Systemlogger
  • das zSeries Files System zFS

VSAM-LDS als Datenablage.

Beispiel Nutzung eines VSAM-KSDS

Da der Key meist aus mehreren Informationen, wie etwa "Buchungsdatum, Artikel, Menge" besteht und der VSAM-Cluster nach dem Key sortiert ist, ergibt sich eine leistungsfähige und schnelle Zugriffsmöglichkeit auf alle Records, die mit einem Teilkey beginnen.

Beispielsweise sollen alle Records (Datensätze) selektiert werden, deren Buchungsdatum im Januar 2003 war. Dafür bietet VSAM die Option GENKEY, was für "Generic Key" steht. Beim ersten Lesen übergibt man dem READ-Befehl einen Key, der nur aus 6 Bytes besteht (JJJJMM). Von dort aus kann man sequentiell weiterlesen, bis die ersten 6 Bytes des Keys nicht mehr übereinstimmen. In Pseudocode könnte das so aussehen:

  • Setze ENDE auf 'N'
  • Öffne die Datei in einer VSAM-Umgebung mit generischem Key.
  • Lies den ersten Datensatz, dessen Key mit "200301" beginnt.
  • Solange ENDE ungleich 'J':
    • Schreibe Datensatz auf den Drucker
    • Lies den nächsten Datensatz
    • Wenn Dateiende erreicht oder der Anfang des Keys des eben gelesenen Datensatzes nicht mehr übereinstimmt:
      • Setze ENDE auf 'J'
  • Schließe die Datei



Literatur