Skip to main content
COMPUGROUP MEDICAL SE AND CO KGAA SAP

Reparatur- und Pflegeprogramme: CKSI - Check ISAM-Files

Info:

Programmfunktion

CKSI überprüft CGM MEDISTAR-lSAM Dateien auf ihre formale Richtigkeit. Wird eine Datei als fehlerfrei ausgewiesen, so ist sichergestellt, dass sie während der Benutzung durch das CGM MEDISTAR-Programm keine gefährlichen Fehler hervorrufen kann (z.B. falsche Datenzuordnungen, ISAM-Abstürze usw.). CKSI führt keine Plausibilitätsprüfung der CGM MEDISTAR-Daten durch. Derartige Fehler würden bereits durch das CGM MEDISTAR-Programm erkannt und sicher abgefangen.

CKSI muss nicht unbedingt auf dem Server ausgeführt zu werden, sondern kann auch auf einer Workstation laufen. Dabei ist allerdings folgendes zu beachten:

  • Die Laufzeit wird erheblich größer sein als auf dem Server, da alle Daten aus den teilweise recht umfangreichen ISAM-Dateien über das Netz transportiert werden müssen.
  • Wenn Dateipfade mit Wildcardangabe (*-Symbol) im Volumenamen vorgegeben werden, werden nur diejenigen Volumes durchsucht, die in der SYSCONF.S der Workstation angegeben sind! Also passen Sie bitte auf bei Workstations, deren SYSCONF.S (aus welchen Gründen auch immer) weniger Volumedefinitionen enthält als die des Servers.


Um zu verhindern, dass defekte Dateien einen Prüflauf abbrechen könnten (Fehler 1), greift CKSI auf ISAM-Dateien direkt zu. Der ISAM-Dienst wird nicht benutzt. CKSI selbst ist exception-gesichert.


CKSI kann nicht gleichzeitig auf verschiedenen Plätzen laufen, welche gleiche Verzeichnisstrukturen benutzen (gleiche SYSCONF.S). Der Grund dafür ist, dass CKSI sowohl die zu testenden Dateien als auch seine eigenen Eingabe- und Ausgabedateien (LOG-Datei usw.) exklusiv eröffnet. Nur so sind unveränderte Dateien während des Prüflaufs garantiert.


Für den Prüflauf muss entweder das CGM MEDISTAR-Programm überall auf der Pfeilebene, oder der ISAM-Dienst angehalten sein. Anderenfalls werden Dateien, die sich in Benutzung befinden, im Prüflauf übersprungen (Fehler 44). Der ISAM-Dienst wird über die Systemsteuerung, oder über die Eingabeaufforderung angehalten und anschließend fortgesetzt. Die Befehle dafür lauten: net pause "MEDISTAR ISAM", anschließend: net continue "MEDISTAR ISAM". Für die Dauer des Prüflaufs ist demnach das Arbeiten mit CGM MEDISTAR nicht möglich.


Da der ISAM-Dienst eine von CGM MEDISTAR geöffnete Datei automatisch 30 Minuten nach dem letzten Zugriff auf diese Datei schließt, können Sie einen Prüflauf auch ohne Pausieren des ISAM-Dienstes durchführen. Allerdings nur wenn Sie sich vorher abgesichert haben, dass CGM MEDISTAR seit 30 Minuten von niemandem mehr benutzt wurde. Dieser Vorgang wäre für eine zeitplangesteuerte Prüfung in den Nachtstunden, zusammen mit einer Bandsicherung, eine geeignete Lösung.

 

Ausgabedateien

CKSI erzeugt während des Prüflaufs zwei Textdateien im Windows-Zeichensatz (ANSI). Es sind die folgenden: $$CKSI.LOG und $$CKSI.ERR.

Sie werden grundsätzlich in demjenigen Verzeichnis abgelegt, welches in der SYSCONF.S für das Volume IF für den aktuellen Task vereinbart wurde (Default: IF0). Da auf dem Bildschirm nicht genügend Platz ist, um die Prüfergebnisse mehrerer Dateien darzustellen, trägt CKSI alle Prüfergebnisse in eine Datei mit dem Namen $$CKSI.LOG ein. Nach dem Prüflauf können Sie sich diese Datei mit einem Windows-Editor (Notepad) ansehen.


Wenn defekte Dateien gefunden werden, trägt CKSI deren Namen in die Datei $$CKSI.ERR ein. Schauen Sie sich diese Datei nach dem Prüflauf mit einem Windows-Editor an, so haben Sie sofort einen Überblick über die Dateien, welche mit dem Hilfsprogramm RBSI.EXE wieder restauriert werden müssen.

 

Programmaufruf

CKSI wird über die Kommandozeile der CGM MEDISTAR-Programmshell aufgerufen. Die Syntax bezüglich Volumeangaben und Dateinamen ist Prologue-kompatibel. Als Parameter sind folgende Möglichkeiten zulässig:

  • Ein einzelner Dateiname. Wird keine Volumeangabe (beispielsweise MD0.) vorangestellt, so wird auf das in der SYSCONF.S für diesen Task angegebene Volume für IF zugegriffen.
  • Das * -Symbol als Wildcard sowohl in der Volumeangabe als auch im Dateinamen. Beispiele: cksi ms*.* prüft alle ISAM-Dateien, die sich in den Volumes MS0...MS9 befinden, *.* prüft alle ISAM-Dateien, die sich in den Festplatten-Volumes befinden, die in der SYSCONF.S für diesen Task definiert wurden (IF,IS,IP,MD,MS,ME).
  • Der Name einer sogenannten Response-Datei. Die Angabe einer Response-Datei wird durch ein vorangestelltes <Klammeraffe>Zeichen definiert (Beispiel: <Klammeraffe>CKSI_MS0). Es handelt sich dabei um eine Textdatei beliebigen Namens, jedoch mit der festen Dateiextension INP. Die Extension braucht auf der Kommandozeile nicht mit angegeben zu werden. Die Response-Datei enthält eine Liste von Dateinamen inklusive Volumeangaben. Jeder dieser Dateipfade muss in einer eigenen Zeile eingetragen werden. Die Anzahl der Zeilen in der Datei ist nicht begrenzt. Die Response-Datei muss sich in dem Verzeichnis befinden, welches in der SYSCONF.S für das Volume IF vereinbart wurde.


Es sind außerdem einige Kommando-Optionen möglich, die das Programmverhalten beeinflussen. Sie dürfen vor oder hinter dem Dateiparameter angegeben werden:

  • -s Option: Das CKSI-Programm wartet nach der Prüfung einer Datei auf einen Tastendruck des Anwenders. Dies kann nützlich sein, wenn viele kleine ISAM-Dateien durch eine Response-Datei oder durch Wildcardvorgaben nacheinander getestet werden. Das Prüfergebnis der einzelnen Datei bleibt dann solange auf dem Bildschirm stehen, bis man das Programm weiterlaufen lässt.
  • -d Option: Bei Unterschieden in Datum und Uhrzeit innerhalb der ISK,ISD,ISM-Dateien wird nur eine Warnung ausgegeben. Ein Datumsunterschied kommt z.B. durch das Bearbeiten einer ISAM-Datei mit einem Patch-Programm zustande oder durch nicht vollständig eingespielte Backups. Das CKSI-Programm betrachtet solche Unterschiede normalerweise als Fehler.
  • -h Option: Die in der ISM-Datei enthaltene Tabelle von einigen wichtigen Dateiparametern wird nach Angabe dieser Option grundsätzlich in die LOG-Datei geschrieben (und nicht nur im Fehlerfalle). Diese Parameter sind unter Umständen für fachlich versiertes Supportpersonal von Interesse.

 

Prüfablauf

  • Die ISD-Datei wird komplett durchlaufen und alle darin enthaltenen Schlüssel auf streng monoton steigende Sortierung getestet. Die Schlüssel werden gezählt und ihre Anzahl im anschließenden Test der ISD-Datei mit der Anzahl der darin enthaltenen Datensätze verglichen.
  • Die ISD-Datei wird komplett durchlaufen und alle darin enthaltenen Schlüsselduplikate durch einen Suchvorgang in der ISK-Datei verifiziert (Testpunkt 'ISK-Fehler'). Außerdem werden die Datensatzpositionen aller Datensätze mit denen verglichen, die in der ISM-Datei vermerkt sind (Testpunkt 'ISM-Fehler'). Weiterhin wird die interne Struktur der Datensätze geprüft (Testpunkt 'ISD-Fehler') und die Gesamtzahl der Datensätze ermittelt. Während des Scans werden noch Informationen über gelöschte Datenbereiche zwischengespeichert.
  • Die in der ISM-Datei enthaltene Liste aller Datensatzpositionen ("Record Pointer") wird auf formale Richtigkeit überprüft. Es wird die Anzahl der Record Pointer ermittelt und freie Positionen in der Liste auf deren interne Verkettung hin getestet.
  • Die außerdem in der ISM-Datei enthaltenen Informationen über freie Datenbereiche ("Delete Pointer") in der ISD-Datei werden mit den entsprechenden Positionen in der ISD-Datei verglichen und auf Lückenlosigkeit, Vollständigkeit und interne Verkettung hin getestet.