Anfang des Inhaltsbereichs

Diese Grafik wird im zugehörigen Text erklärt Beispiel zur Puffersynchronisation  Dokument im Navigationsbaum lokalisieren

Das folgende Beispiel zeigt auf, wie das System die lokalen Puffer synchronisiert. Wir gehen von einem System mit zwei Applikationsservern aus, die wir im Folgenden als Server 1 und Server 2 bezeichnen.

Die Ausgangssituation: Beide Server haben bisher noch nicht auf Sätze der vollständig gepufferten Tabelle TAB zugegriffen. Die Sätze der Tabelle sind deshalb noch nicht in den lokalen Puffern der beiden Server enthalten. Die folgenden zwölf Schritte beschreiben die Puffersynchronisation im Detail.

...

       1.      Server 1 liest Sätze aus der Tabelle TAB auf der Datenbank.

       2.      Die Tabelle TAB wird vollständig in den lokalen Puffer von Server 1 geladen. Zugriffe von Server 1 auf die Daten der Tabelle TAB laufen nun über den lokalen Puffer dieses Servers.

       3.      Server 2 greift auf Sätze der Tabelle zu. Da sich die Tabelle noch nicht im lokalen Puffer von Server 2 befindet, werden die Sätze direkt von der Datenbank gelesen.

       4.      Die Tabelle TAB wird in den lokalen Puffer von Server 2 geladen. Damit greift auch Server 2 beim nächsten Lesen über seinen lokalen Puffer auf Daten aus TAB zu.

Diese Grafik wird im zugehörigen Text erklärt

       5.      Server 1 löscht Sätze aus der Tabelle TAB und aktualisiert die Datenbank.

       6.      Server 1 schreibt einen Eintrag in die Synchronisationstabelle.

       7.      Server 1 aktualisiert seinen lokalen Puffer.

Diese Grafik wird im zugehörigen Text erklärt

       8.      Server 2 greift auf die gelöschten Datensätze zu. Da sich die Tabelle TAB in seinem lokalen Puffer befindet, erfolgt der Zugriff über diesen lokalen Puffer.

Server 2 findet die Sätze, obwohl diese in der Datenbanktabelle nicht mehr vorhanden sind.

Würde der gleiche Zugriff von einem Anwendungsprogramm auf Server 1 ausgeführt, so würde dieses Programm erkennen, dass die Sätze nicht mehr vorhanden sind. Zu diesem Zeitpunkt hängt das Verhalten eines Anwendungsprogramms davon ab, auf welchem Server es läuft.

Diese Grafik wird im zugehörigen Text erklärt

       9.      Der Synchronisationszeitpunkt ist erreicht. Beide Server prüfen in der Synchronisationstabelle, ob eine der Tabellen in ihrem lokalen Puffer inzwischen von einem anderen Server verändert wurde.

   10.      Server 2 stellt fest, dass die Tabelle TAB in der Zwischenzeit von Server 1 geändert wurde. Server 2 invalidiert die Tabelle in seinem lokalen Puffer. Der nächste Zugriff von Server 2 auf Daten der Tabelle TAB geschieht über die Datenbank. Server 1 muss die Tabelle in seinem Puffer nicht invalidieren, da er selbst der einzige Änderer der Tabelle TAB ist. Server 1 verwendet beim nächsten Zugriff auf Sätze der Tabelle TAB erneut seinen lokalen Puffer.

Diese Grafik wird im zugehörigen Text erklärt

   11.      Die Tabelle TAB wurde bereits im lokalen Puffer von Server 2 invalidiert. Wenn Server 2 erneut auf Sätze der Tabelle TAB zugreift, greift er direkt auf die Datenbank zu.

   12.      Die Tabelle wird wiederum in den lokalen Puffer von Server 2 geladen. Die beiden Server und die Datenbank sind nun wieder konsistent bzgl. ihrer Informationen zur Tabelle TAB.

Diese Grafik wird im zugehörigen Text erklärt

 

 

 

Ende des Inhaltsbereichs