Zum Inhalt springen

Virtual Storage Access Method

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 23. April 2007 um 21:22 Uhr durch AlleborgoBot (Diskussion | Beiträge) (Bot: Ergänze: pl:VSAM). 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. Erstmalig wurde es dadurch ermöglicht, auf physikalische Eigenschaften der Speichermedien (Plattenzylinder beispielsweise) keine Rücksicht mehr nehmen zu müssen.

VSAM-Dateien werden 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.
  • zFS (zSeries Files System): Ist eine Weiterentwicklung der HFS Datasets, die von den Unix System Services genutzt werden (enthält hierarchische Unix File Struktur).


VSAM-Dateien werden unter z/OS mit Hilfe des Utilitys IDCAMS angelegt und verwaltet.

Datenbanksysteme wie IMS oder DB2 benutzen VSAM Cluster zur Speicherung ihrer Daten.

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

Die ersten Implementationen von VSAM im MVS 3.8 (MVS: Multiple Virtual Storage) waren störungsanfällig. Insbesondere die damaligen VSAM-Cataloge, die Volume-Ownership und die Suballocatable Dataspaces verursachten Probleme. Zu dieser Zeit entstand das Sprichwort 'VSAM ist grausam'.

Erst mit den Verbesserungen, welche die ICF-Cataloge (MVS XA) brachten, setzte sich VSAM wirklich durch.