Transaktionen und Restaurierung

Inhaltsübersicht

Transaktionen und Restaurierung. 1

13      Transaktionen und Restaurierung. 1

13.1   Transaktionen. 2

13.2   Restaurierung. 5

13.2.1   Fehlerquellen. 5

13.2.2   Log- und Journal-Datei 6

13.3   Sperren. 9

13.3.1   Objekte sperren. 10

13.3.2   Die SET LOCKMODE-Anweisung. 10

          

              

              

13  Transaktionen und Restaurierung

 

 

         In   diesem  Kapitel  werden  die  drei  verwandten  Begriffe

         konkurrierender    Datenzugriff,   Transaktionen    und   die

         Restaurierung  von   Datenbanken   behandelt.   Zuerst werden

         die   Definition    der   Transaktion    gegeben   und    die

         INGRES-SQL-Anweisungen,   die  in   Bezug  zu   Transaktionen

         stehen,  erläutert. Danach werden die Möglichkeiten erörtert,

         welche das  INGRES-System  bietet,  um  eine  Datenbank  nach

         verschiedenen Fehlern  zu restaurieren.  Am Ende des Kapitels

         wird das  Sperren der  INGRES-Objekte  behandelt,  womit  der

         konkurrierende Datenzugriff  mehrerer Benutzer  auf die Daten

         einer INGRES-Datenbank gewährleistet ist.

 

Zurück zum Inhaltsverzeichnis

 

 

13.1     Transaktionen

 

 

         Eine Datenbank  wird in  der  Regel  von  mehreren  Anwendern

         gleichzeitig  benutzt. Dieser  Umstand wirft  eine Reihe  von

         Problemen  auf, die alle mit völliger Korrektheit abgehandelt

         werden   müssen.  Der  konkurrierende  Datenzugriff  mehrerer

         Benutzer muß bei jedem Datenbanksystem gewährleistet sein.

 

         Ein weiteres  Problem, mit  dem Datenbanksysteme konfrontiert

         sind,  sind Fehler,  die sowohl  in  der  Software  als  auch

         in   der  Hardware   auftreten  können.  Ein  Datenbanksystem

         sollte  in  der  Lage  sein,  nach  denkbaren  Ausfällen  die

         betroffenen  Datenbanken in  den letzten konsistenten Zustand

         zu  überführen.   Sowohl  der   konkurrierende   Datenzugriff

         mehrerer Benutzer  als auch  die Erhaltung der Konsistenz der

         Datenbanken  nach Hardware-  oder  Softwareausfall  wird  mit

         Hilfe der Transaktionen gewährleistet.

 

         Eine   Transaktion    kennzeichnet   mehrere,    nacheinander

         folgende,  logisch zusammenhängende Anweisungen. An folgendem

         Beispiel  wird dieser  Begriff praktisch  erläutert.  In  der

         Beispieldatenbank soll der Mitarbeiter namens Huber eine neue

         Personalnummer bekommen. (Der Grund dafür könnte die Änderung

         des  Arbeitsstandortes o.ä.  sein.)  Die  neue Personalnummer

         soll 39831 sein.

 

         Die  Änderung der  Personalnummer muß  gleichzeitig  in  zwei

         Tabellen   durchgeführt  werden:   Eine  Reihe   der  Tabelle

         mitarbeiter  muß  geändert  werden   sowie  alle  Reihen  der

         Tabelle arbeiten,  die Daten des Herrn Huber enthalten. Falls

         nur eine der beiden Tabellen geändert würde (z.B. die Tabelle

         mitarbeiter),  würde die Beispieldatenbank inkonsistent, weil

         der  Primär- und  Fremdschlüssel des  Herrn Huber  nicht mehr

         zueinander passen  würden. Es  wären also  alle Abfragen, die

         die  Tabellen mitarbeiter  und arbeiten mit dem Join-Operator

         verknüpfen  und die  Datenwerte des  Herrn  Huber  auswählen,

         falsch.

 

         Die  Konsistenz   der  Beispieldatenbank  kann  nur  erhalten

         bleiben,  wenn die  UPDATE-Anweisungen  entweder  vollständig

         durchgeführt  oder -  im  Falle  eines  Fehlers  während  der

         Transaktion - rückgängig gemacht werden.

 

         Beispiel 13.1

 

         Ändern  Sie  die Personalnummer des Mitarbeiters namens Huber

         in  allen  Reihen der Beispieldatenbank. Die neue Nummer soll

         39831 sein.

 

                        UPDATE mitarbeiter

                            SET m_nr = 39831

                            WHERE m_nr = 10102;

 

                        UPDATE arbeiten

                            SET m_nr = 39831

                            WHERE m_nr = 10102;

 

         Das  Beispiel stellt  damit eine  Transaktion dar,  d.h. eine

         logische Einheit,  deren Eigenschaft  es ist,  die Konsistenz

         einer Datenbank  dadurch zu  erhalten, daß entweder alle oder

         keine der Anweisungen einer Sequenz durchgeführt werden.

 

         INGRES  kennt drei  SQL-Anweisungen, die  im Zusammenhang mit

         den Transaktionen stehen:

 

                        - COMMIT,

                        - ROLLBACK    und

                        - SAVEPOINT.

 

         Mit der Anweisung

 

                        COMMIT [WORK];

 

         wird eine  Transaktion  beendet,  und  alle  Änderungen,  die

         innerhalb der  Transaktion  angegeben  sind,  werden  in  der

         Log-Datei geschrieben.  Gleichzeitig wird  mit Beendigung der

         einen Transaktion die nächste gestartet.

 

         Mit der Anweisung

 

                        ROLLBACK [WORK] [TO name];

 

         werden  alle  schon  ausgeführten  SQL-Anweisungen  innerhalb

         einer   Transaktion  rückgängig   gemacht.  Diese   Anweisung

         wird  entweder vom  System implizit  durchgeführt   oder  muß

         explizit  vom Programmierer  im  Programm  angegeben  werden.

         Der Programmierer  verwendet  die  Anweisung  ROLLBACK,  wenn

         er  nicht sicher  ist, ob  alle Änderungen  an der  Datenbank

         korrekt   ausgeführt  wurden.   (Die  optionale  Angabe  WORK

         bei  den   Anweisungen  COMMIT  und  ROLLBACK  existiert  aus

         Kompatibilitätsgründen zu anderen Datenbanksystemen.)

 

         Die Anweisung

 

                        SAVEPOINT name;

 

         erstellt  eine Marke  für eine  SQL-Anweisung innerhalb einer

         Transaktion.  Diese Anweisung stellt ein nützliches Konstrukt

         dar, um die Ausführung verschiedener Teile einer Transaktion,

         mit  Hilfe   von  Bedingungen  zu  ermöglichen.  Andererseits

         widerspricht   ihre  Verwendung   dem   Prinzip,   daß   eine

         Transaktion so kurz wie möglich sein soll.

 

         Nachdem  die   Marken  innerhalb  einer  Transaktion  gesetzt

         wurden, ist es mit

 

                        ROLLBACK TO name;

 

         möglich, alle  Anweisungen innerhalb  der Transaktion und bis

         zur Marke  name zurückzusetzen.  Die Transaktion bleibt offen

         und alle  Anweisungen, die  sich in  der Transaktion  vor der

         Marke name befinden, bleiben unverändert.

 

         INGRES bietet  dem Benutzer  die  Möglichkeit,  zwischen  den

         impliziten  und   expliziten  Transaktionen  zu  wählen.  Die

         Anweisung SET AUTOCOMMIT hat zwei Schalter - ON und OFF - die

         die Transaktionsart festlegen. Falls

 

                        SET AUTOCOMMIT ON;

 

         in einem  Programm angegeben  ist, werden  alle nachfolgenden

         SQL-Anweisungen  als   einzelne   Transaktionen   betrachtet.

         Demgegenüber   verlangt  der   OFF-Schalter   die   explizite

         Anwendung der Anweisung COMMIT bzw. ROLLBACK.

 

Zurück zum Inhaltsverzeichnis

 

 

 

13.2     Restaurierung

 

 

         INGRES besitzt ein gut abgestimmtes Konzept zur Restaurierung

         von  Datenbanken,  mit  dem  Fehler  verschiedenen  Ursprungs

         unterschiedlich  behoben werden  können. Damit dieses Konzept

         verständlich wird,  müssen zuerst die möglichen Fehlerquellen

         sowie   die  zur   Verfügung  stehenden   Möglichkeiten   zur

         Wiederherstellung der Konsistenz erläutert werden.

 

Zurück zum Inhaltsverzeichnis

 

 

 

13.2.1   Fehlerquellen

 

 

          Die   Inkonsistenz   einer   Datenbank   kann   durch   vier

          unterschiedliche Fehlergruppen verursacht werden. Das sind:

 

                        - Programmfehler,

                        - Systemfehler,

                        - Plattenfehler   und

                        - Kombination unterschiedlicher Fehler.

 

          Ein Programmfehler  betrifft die  Anwendung eines  einzelnen

          Benutzers   und  hat   gewöhnlich  keinen  Einfluß  auf  das

          ganze  System.  Programmfehler  können  im  Regelfall  nicht

          vom  System  abgefangen  werden;  es  ist  vielmehr  Aufgabe

          des  Programmierers,   solche   Fehler   selbst   abzufangen

          und   entsprechende    Maßnahmen   zu   treffen.   Innerhalb

          einer   Transaktion    auftretende   Programmfehler   müssen

          dementsprechend berücksichtigt werden.

 

          Für   einen   Systemfehler   ist   typisch,   daß   die   im

          Arbeitsspeicher   gespeicherten  Daten  verlorengehen.  Dies

          tritt   z.B.    bei   Stromausfall   auf.   Damit   betrifft

          ein   Systemfehler  alle   im  Arbeitsspeicher  befindlichen

          Anwendungen.   Die  Konsistenz   aller  zum   Zeitpunkt  des

          Systemfehlers im Arbeitsspeicher befindlichen DB-Anwendungen

          wird   bei  INGRES  durch  die  Verwendung  der  sogenannten

          Log-Datei  wiederhergestellt. Die  Log-Datei wird  später in

          diesem Abschnitt behandelt.

 

          Ein   Plattenfehler    äußert   sich    dadurch,   daß   die

          Information  auf  einer  Platte  oder  auf  einem  Teil  der

          Platte  verlorengeht.   Die  Ursache   eines  Plattenfehlers

          kann  mechanischer   (z.B.   Schreib/Lesekopf-Fehler)   oder

          verwaltungstechnischer Art sein.

 

          Bei  einer  Kombination  unterschiedlicher  Fehler  kann  es

          vorkommen,  daß sich  die Datenbanken  im  System  in  einem

          nicht konsistenten  Zustand befinden.  In dem  Fall muß  die

          Restaurierung der nicht konsistenten Datenbanken vorgenommen

          werden.

 

Zurück zum Inhaltsverzeichnis

 

 

 

13.2.2   Log- und Journal-Datei

 

 

          Abhängig  davon,   welche   Art   von   Fehler   aufgetreten

          ist,    existieren   bei    INGRES   zwei   unterschiedliche

          Restaurierungs-Prozesse:

 

             - die automatische Restaurierung   und

             - die Restaurierung mit Hilfe der rollforwarddb-Anweisung

 

          Wenn  eine Transaktion  gestartet wird, wird die Information

          aus  dieser Transaktion  in einer  speziellen  Datei  namens

          Log-Datei  gespeichert.  Damit  enthält  die  Log-Datei  die

          Information über  abgeschlossene  und  nicht  abgeschlossene

          Transaktionen  eines   Systems.  Die   Log-Datei  wird   vom

          sogenannten   "Recovery   Manager"   benutzt,   um   leichte

          Systemfehler   automatisch  zu   beheben.  Wenn  z.B.  Daten

          im  Arbeitsspeicher   des   Rechners   verlorengehen,   wird

          die  automatische   Restaurierung  durchgeführt,  indem  der

          "Recovery Manager"  alle nichtabgeschlossenen  Transaktionen

          zurücksetzt.

 

          Der  Speicherungsort einer  Log-Datei  wird  mit  Hilfe  der

          Umgebungsvariablen  II_LOG_FILE  gesetzt.  (II_LOG_FILE  ist

          in Kapitel  15  beschrieben.)  Es  ist  empfehlenswert,  die

          Log-Datei  nicht   auf  einer  Platte  mit  sehr  intensiven

          E/A-Operationen zu speichern, weil dadurch die Effizienz des

          ganzen INGRES-Systems beeinträchtigt werden kann. Der zweite

          wichtige  Punkt, der  die Beeinträchtigung der Effizienz des

          Systems  verursachen kann, ist die Belegung einer Log-Datei.

          Standardmäßig  gilt: Falls  eine Log-Datei  zu  80%  gefüllt

          ist, wird die älteste, noch nicht abgeschlossene Transaktion

          zurückgesetzt   und der  Benutzer       darüber  informiert.

          Falls eine  Log-Datei zu 95% gefüllt ist, werden Aktivitäten

          aller  Benutzer gestoppt  bis wieder  genügend Platz  in der

          Log-Datei verfügbar ist.

 

          Damit  die   Log-Datei  nicht   zu  voll  wird  und  dadurch

          die   nicht  abgeschlossenen   Transaktionen  verlorengehen,

          besitzt INGRES  ein  Subsystem  namens  "Archiver",  das  in

          bestimmten Zeitabständen,  die vom  Prozentsatz der Belegung

          der  Log-Datei  abhängig  sind,  erfolgreich  abgeschlossene

          Transaktionen  in eine Journal-Datei kopiert. Alle kopierten

          Transaktionen  werden   anschließend   aus   der   Log-Datei

          entfernt.

 

          Die  Voraussetzung   für  die  Übertragung  der  erfolgreich

          abgeschlossenen  Transaktionen einer Tabelle aus der Log- in

          die  Journal-Datei ist entweder die Existenz der Angabe WITH

          JOURNALING in der CREATE TABLE-Anweisung dieser Tabelle oder

          die Verwendung  der SET JOURNALING-Anweisung innerhalb einer

          INGRES-Sitzung.

 

          Die   Journal-Datei    stellt   eine    permanentere    Form

          der  Datensicherung   als  die   Log-Datei  dar.   Sie  wird

          dementsprechend für  die Behebung  schwerer Fehler (wie z.B.

          Plattenausfall)  verwendet.  Damit  die  Journal-Datei  nach

          einem Plattenausfall benutzt werden kann, ist es dringend zu

          empfehlen, sie auf einem anderen Speichermedium (eine andere

          Platte  oder ein  Magnetbandgerät) als dem, auf dem sich die

          ihr zugehörige Datenbank befindet, zu speichern.

 

          Ein   weiterer  Begriff,   der  im   Zusammenhang  mit   der

          Journal-Datei   steht,   ist   die   Sicherungskopie   einer

          Datenbank.  INGRES  ermöglicht  dem  Datenbank-Administrator

          (DBA) mit  Hilfe eines Dienstprogramms, eine Sicherungskopie

          der    Datenbank   zu    erstellen.   Die   Erstellung   der

          Sicherungskopie bei INGRES wird "Checkpoint" genannt.

 

          INGRES unterstützt zwei Dienstprogramme

 

                        - ckpdb   und

                        - rollforwarddb,

 

          die   im    Zusammenhang   mit    der   Restaurierung    der

          Datenbanken   stehen.  Das   Dienstprogramm  ckpdb  erstellt

          die  Sicherungskopie einer  oder mehrerer  Datenbanken,  und

          kann nur  vom  DBA  als  Betriebssystem-Kommando  aufgerufen

          werden.  Nach der Erstellung der Sicherungskopie werden alle

          existierenden  Einträge in  der Journal-Datei  als  ungültig

          markiert, weil  sie nicht  mehr vom  System benötigt werden.

 

          Das  zweite   Dienstprogramm  rollforwarddb   wird  für  die

          Wiederherstellung einer oder mehrerer Datenbanken verwendet.

          Dieses    Dienstprogramm   benötigt    die   Sicherungskopie

          der  Datenbank(en)   und  die   aktuelle  Journal-Datei.  Um

          die   Wiederherstellung  der   Datenbanken  mit   Hilfe  der

          Sicherungskopie  und   der  Journal-Datei   durchführen   zu

          können, müssen  beide  aktiv  ("online")  sein.  Die  Syntax

          der Betriebssystemkommandos  rollforwarddb und ckpdb wird in

          Kapitel 15 ausführlich dargestellt.

 

Zurück zum Inhaltsverzeichnis

 

 

 

13.3     Sperren

 

 

          Ein   Datenbanksystem  muß   bei  einem  Mehrbenutzerbetrieb

          Mechanismen  enthalten, die  allen Benutzern zur selben Zeit

          den Zugriff auf Daten einer Datenbank ermöglichen. Dies wird

          mit Hilfe von Sperren erreicht.

 

          Das INGRES-System kennt zwei Arten von Sperren:

 

                        SHARED  und

                        EXCLUSIVE.

 

          Wenn  ein   Benutzer  ein   Objekt  im SHARED-Modus  sperrt,

          dürfen alle  anderen Benutzer  nur lesend  auf dieses Objekt

          zugreifen.  Alle Abfragen, die dieses Objekt betreffen, sind

          dann  erlaubt. Demgegenüber  wird jeder  Versuch, das Objekt

          zu ändern, abgewiesen bzw. in den Wartezustand versetzt. Ein

          Objekt kann mehrere SHARED-Sperren haben.

 

          Der    EXCLUSIVE-Modus    kennzeichnet    eine    wesentlich

          restriktivere   Art  der   Sperre.  Wenn  ein  Benutzer  ein

          Objekt  im  EXCLUSIVE-Modus  sperrt,  werden  alle  Versuche

          anderer Benutzer, auf dieses  Objekt schreibend  oder lesend

          zuzugreifen, abgewiesen bzw. in den Wartezustand versetzt.

 

Zurück zum Inhaltsverzeichnis

 

 

 

13.3.1   Objekte sperren

 

 

          INGRES kann drei verschiedene Objekttypen sperren:

 

                        - eine physikalische Seite,

                        - eine Tabelle     und

                        - eine ganze Datenbank.

 

          Die physikalische  Seite ist  das Objekt,  das bei INGRES in

          den meisten  Fällen gesperrt  wird. Die  Seitensperre sperrt

          die physikalische  Seite, in  der sich  die Reihe  befindet,

          die  gesperrt werden soll. Sie ist gleichzeitig die kleinste

          Sperreinheit. (Die Reihensperre existiert bei INGRES nicht.)

          Eine   Seitensperre  kann  vom  System  unter  Umständen  in

          eine  Tabellensperre befördert  werden. Dies geschieht, wenn

          die Anzahl  der Seitensperren  einen im  voraus  definierten

          maximalen  Wert   überschreitet  oder   wenn  in   der   SET

          LOCKMODE-Anweisung die  Tabellensperre als  Einheit explizit

          angegeben ist.  (Die SET  LOCKMODE-Anweisung wird  später in

          diesem Kapitel beschrieben.)

 

          Eine Tabelle  kann auch  implizit vom INGRES-System gesperrt

          werden. Dies  geschieht z.B.  bei der  SQL-Anweisung  CREATE

          INDEX. Dabei  wird die  ganze Tabelle,  für  die  der  Index

          erstellt werden soll, im EXCLUSIVE-Modus gesperrt.

 

          Die  Datenbanksperre   sperrt   die   ganze   Datenbank   im

          EXCLUSIVE-Modus.   Nach  einer   solchen  Sperre  kann  kein

          weiterer Benutzer,  weder lesend  noch  schreiben,  auf  die

          Datenbank zugreifen.  Das Dienstprogramm  rollforwarddb z.B.

          benutzt die  Datenbanksperre für  jede  Datenbank,  die  mit

          diesem Kommando restauriert wird.

 

Zurück zum Inhaltsverzeichnis

 

 

 

13.3.2   Die SET LOCKMODE-Anweisung

 

 

          Die Anweisung  SET  LOCKMODE  ermöglicht  es  dem  Benutzer,

          Einfluß auf das Sperrverhalten des INGRES-Systems zu nehmen.

          Mit dieser Anweisung ist es möglich, sowohl die Art als auch

          die  Obergrenze für  die Anzahl der Sperren festzulegen. Die

          Anweisung hat folgende Syntax:

 

                 SET LOCKMODE  SESSION|ON tabellen_name|index_name

                   WHERE [LEVEL=PAGE|TABLE|SESSION|SYSTEM]

                   [,READLOCK=NOLOCK|SHARED|EXCLUSIVE|SESSION|SYSTEM]

                   [,MAXLOCKS = n|SESSION|SYSTEM]

                   [,TIMEOUT = n|SESSION|SYSTEM];

 

          Mit     der    SET    LOCKMODE-Anweisung    kann    zwischen

          der   standardmäßigen   Sperrart   des   Systems   und   der

          voreingestellten Sperrart der INGRES-Sitzung gewählt werden.

          Diese  Anweisung  bietet  zwei  Angaben  -  SESSION  und  ON

          tabellen_name  -, die  die Auswahl  der Sperrobjekte regeln,

          und vier weitere Optionen

 

                        - LEVEL,

                        - READLOCK,

                        - MAXLOCKS   und

                        - TIMEOUT,

 

          die die Sperreigenschaften insgesamt festlegen.

 

          Die  Angabe ON  tabellen_name gibt  den  Namen  der  Tabelle

          an,   deren    Eigenschaften   durch   Optionen   festgelegt

          werden. Die  alternative Angabe  SESSION  dagegen  definiert

          die   Sperreigenschaften   aller   Objekte   während   einer

          INGRES-Sitzung (siehe Beispiel 13.2).

 

          index_name ist  der Name  des  Index,  dessen  Eigenschaften

          durch  Optionen   festgelegt  werden.  Ein  Index  kann  vom

          INGRES-System  nur  bei  den  Speicherstrukturen  BTREE  und

          CBTREE  gesperrt werden.  (Bei der  Speicherstrukturen  ISAM

          und CISAM  bleibt der  Index statisch;  deshalb  sind  keine

          Sperren  notwendig.) Beim  Sperren eines  Index werden immer

          zwei  seiner Knotenebenen  gesperrt. Um  die  Teilung  eines

          Indexknotens   zu  bewerkstelligen,  wird  vom  System  eine

          exklusive Sperre gesetzt.

 

Name

Beschreibung

LEVEL       

Mit der Option LEVEL wird das Objekt festgelegt,   das  als   Sperreinheit   benutzt wird. 

PAGE 

definiert die physikalische Seite und TABLE die Tabelle als Sperreinheit, während SESSION die augenblicklich geltende Sperreinheit für die ganze NGRES-Sitzung wählt.

SYSTEM   

definiert den aktuellen Standardwert des Systems als geltende Sperreinheit.

READLOCK    

Die Option READLOCK spezifiziert den Sperrmodus, wenn die Daten von einem Benutzer gelesen werden. 

NOLOCK 

sperrt keine Daten während des Lesevorgangs.

SHARED und EXCLUSIVE

definieren die beiden am Anfang dieses Abschnitts schon beschriebenen Sperrmodi, während SESSION und SYSTEM den augenblicklichen Sperrmodus für die INGRES-Sitzung bzw. den generellen Modus für das ganze System festlegen.

MAXLOCKS    

Mit der Option MAXLOCKS wird die maximale Anzahl der Seitensperren definiert, deren Überschreitung die Beförderung der Sperreinheit in die Tabellensperre verursacht. n ist eine Ganzzahl, die die maximale Anzahl der Seitensperren definiert (standardmäßig ist n=10).

SESSION

legt die augenblicklich geltende Anzahl der Seitensperren für die INGRES-Sitzung fest, während SYSTEM die Voreinstellung für das ganze System definiert.

TIMEOUT     

TIMEOUT spezifiziert das Verhalten eines Programms, von dem aus versucht wird, eine gesperrte Sperreinheit abzufragen bzw. zu ändern.

n ist eine Ganzzahl, die das Zeitlimit in Sekunden definiert. n=0 ist die Voreinstellung und bedeutet, daß das Programm ohne zeitliche Begrenzung im Wartezustand bleibt. SESSION legt den augenblicklich geltenden Wert für die INGRES-Sitzung fest, während SYSTEM die Voreinstellung für das ganze System definiert.

 

         Beispiel 13.2

 

                        SET LOCKMODE ON arbeiten

                         WHERE LEVEL= PAGE, READLOCK=EXCLUSIVE,

                         MAXLOCKS=20, TIMEOUT=45;

 

         In  Beispiel 13.2  werden die  Sperreigenschaften der Tabelle

         arbeiten  explizit festgelegt.  Die Seitensperre geht in eine

         Tabellensperre  über, wenn  die Anzahl  der gesperrten Seiten

         20  überschreitet. Der  Wartezustand eines Programms, das auf

         eine gesperrte Einheit der Tabelle arbeiten zugreift, beträgt

         45  Sekunden und jede zum Lesen gesperrte Seite wird exklusiv

         gesperrt.

 

 

         Beispiel 13.3

 

                        SET LOCKMODE SESSION

                           WHERE LEVEL=SYSTEM, READLOCK=SYSTEM,

                           MAXLOCKS=SYSTEM, TIMEOUT=SYSTEM;

 

         Nach der  SET  LOCKMODE-Anweisung  in  Beispiel  13.3  werden

         alle Sperreigenschaften  der augenblicklichen  INGRES-Sitzung

         auf  System-Standardwerte (d.h.  LEVEL=PAGE, READLOCK=SHARED,

         MAXLOCKS=10 und TIMEOUT=0) gesetzt.

 

Zurück zum Inhaltsverzeichnis