-
Die
Erfindung betrifft allgemein Computersysteme und genauer ein erweitertes
zweiphasiges Speicherprotokoll (commit protocol) für verteilte
Datenverarbeitungsumgebungen.
-
In
verteilten Datenverarbeitungsumgebungen werden zweiphasige Speicherprotokolle
verwendet, um Transaktionen gegenüber einer oder mehreren Datenquellen
zu koordinieren. Transaktionen müssen
mit anderen Datenquellen in dem Netzwerk oder System koordiniert
werden, um sicherzustellen, dass die Datenquellen aktuelle Informationen
aufweisen.
-
Diese
Datenquellen können
mehrere über verschiedene
Orte verteilte Datenbanken umfassen. In einer Ausführungsform
eines zweiphasigen Speicherprotokolls überprüft das System zuerst, ob alle Datenquellen
verfügbar
sind, und, falls ja, fährt
es fort, um die Transaktion zu vervollständigen. Falls eine oder mehrere
der Datenquellen unerreichbar sind oder nicht fähig sind, die Transaktion zu
vervollständigen,
wird die Transaktion storniert oder "nicht ausgeführt" ("undone") bis die Datenquelle
(auch als Teilnehmer bezeichnet) fähig ist, die Transaktion zu vervollständigen oder
die Transaktion wird aufgeschoben, bis alle Teilnehmer erreichbar
sind, um die Transaktion zu vervollständigen. Das zweiphasige Speicherprotokoll
ist notwendig für
Datenumgebungen, welche hohe Genauigkeitsgrade über eine große Anzahl
von verteilten Computersystemen benötigen, beispielsweise Banksysteme,
Kreditkartenverifikationssysteme, Datenbanken für Statistiken der Bevölkerung
etc.
-
Obwohl
das zweiphasige Speicherprotokoll hilfreich ist, um die Datenintegrität sicherzustellen, beschränkt die
Begrenzung, alle Teilnehmer in einem Zustand zu benötigen, in
dem sie fähig
sind, die Transaktion durchzuführen,
die Verwendbarkeit des zweiphasigen Speicherprotokolls. Da es außerdem häufig vorkommt,
dass eine Datenquelle oder ein anderer Teilnehmer nicht fähig sein
können,
die Transaktion aufgrund von Hardware- oder Software-Fehlfunktionen,
vorbeugender Wartung, einer Rekonfiguration von Systemen etc. anzunehmen
oder zu verarbeiten, weist das zweiphasige Speicherprotokoll sogar
eine noch geringere Verwendbarkeit auf.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, ein zweiphasiges Speicherprotokoll
bereitzustellen, das verwendet werden kann, wenn einer oder mehrere
Teilnehmer nicht fähig
sind, die Transaktion zu verarbeiten. Es ist eine weitere Aufgabe
der vorliegenden Erfindung, ein zweiphasiges Speicherprotokoll bereitzustellen,
das es den Teilnehmern ermöglicht,
die nicht fähig
sind, bei der anfänglichen
Datenbankaktualisierung teilzunehmen, aktualisiert zu werden, wenn
der Teilnehmer wieder fähig
ist, an dem Transaktionsprozess teilzunehmen.
-
Der
in der vorliegenden Erfindung verwendete Ansatz ermöglicht eine
breite Anwendung des zweiphasigen Speicherprotokolls für Netzwerke,
welche die Genauigkeit und Präzision
benötigen,
welche das zweiphasige Speicherprotokoll bietet.
-
Mills
J. A. "Large scale
interoperability and distributed transaktion processing" SYSTEM INTEGRATION
1992. ICSI '92,
PROCEEDINGS IN THE SECOND INTERNATIONAL CONFERENCE ON MORRISTOWN,
NJ USA 15–18
JUNI 1992, LOS ALAMITOS. CA, USA, IEEE COMPUT. SOC, US, 15 JUNI
1992 (1992-06-15), Seiten 392–400, XP010027457
ISBN: 0-8186-2697-6 offenbart ein Verfahren zum Ausführen eines
zweiphasigen Speicherprotokolls mit einem vereinheitlichten Modell
einer Interoperabilität
auf einer großen
Skala und einer verteilten Transaktionsverarbeitung.
-
Die
US-A-5 095 421 offenbart
ein Verfahren zum Ausführen
eines zweiphasigen Speicherprotokolls in einem System mit einer
Mehrzahl von Datenquellen wie in dem Oberbegriff der unabhängigen Ansprüche hierin
beschrieben wird.
-
Ein
erster Aspekt der vorliegenden Erfindung betrifft ein Verfahren
zum Ausführen
eines zweiphasigen Speicherprotokolls für eine Transaktion, wie in Anspruch
1 beschrieben.
-
Ein
zweite Aspekt der vorliegenden Erfindung betrifft eine computerkontrollierte
Vorrichtung, wie in Anspruch 8 beschrieben.
-
Ein
dritter Aspekt der vorliegenden Erfindung betrifft eine Programmspeichervorrichtung,
die durch einen Computer lesbar ist, wie in Anspruch 9 beschrieben.
-
In
einer verteilten Datenverarbeitungsumgebung wird ein zweiphasiges
Speicherprotokoll verwendet, um Transaktionen zwischen mehreren
Datenquellen zu koordinieren. Üblicherweise
findet die Koordination zwischen Datenbanken statt und die Koordination
wird durch einen Transaktions-Verwalter durchgeführt. Das zweiphasige Speicherprotokoll arbeitet
mit einem "Alles-oder-Nichts" („all-or-nothing")-Ansatz; falls eine
der Datenbanken (Datenquellen) unerreichbar ist, um die Transaktion zu
vervollständigen,
wird die Transaktion nicht durchgeführt oder wird für eine Vervollständigung
zu einer späteren
Zeit gespeichert.
-
Für große Systeme,
welche viele Datenquellen aufweisen, ist die Verwendbarkeit des
zweiphasigen Speicherprotokolls begrenzt, da üblicherweise zu einer beliebigen
gegebenen Zeit eine oder mehrere der Datenquellen nicht erreichbar
ist/sind. Dementsprechend kann eine Transaktion, welche dazu vorgesehen
ist, zu einer Zeit stattzufinden, wenn eine der Datenquellen nicht
erreichbar ist, unter Verwendung eines zweiphasigen Speicherprotokolls
nicht stattfinden, bis die nicht erreichbare Datenquelle erreichbar
wird.
-
Die
vorliegende Erfindung verbessert den Ansatz des zweiphasigen Speicherprotokolls,
indem es diesen Datenquellen (auch bekannt als Teilnehmer), die
erreichbar sind, ermöglicht,
die Transaktion zu vervollständigen
und die Transaktion für
einen Abschluss durch die unerreichbaren Teilnehmer zu speichern,
wenn diese erreichbar werden. Der Transaktionsverwalter verwendet
das logische Äquivalent eines
FIFO-Verfahrens (First In First Out, FIFO, Queue), um sicherzustellen,
dass alle Transaktionen in derselben Weise an allen Datenquellen
innerhalb des Computersystems durchgeführt werden. Die vorliegende
Erfindung ermöglicht
es durch die Verwendung der logischen FIFO-Konstruktion, dass die
Datenquellen in Bezug auf Transaktionsaufträge synchronisiert sind.
-
Eine
Ausführungsform
der Erfindung wird nun exemplarisch unter Bezugnahme auf die begleitenden
Zeichnungen beschrieben, die zeigen:
-
1 ist
ein Blockdiagramm, welches eine beispielhafte Hardwareumgebung zeigt,
welche mit der vorliegenden Erfindung verwendet werden kann; und
-
2A–2C sind
Flussdiagramme, welche eine beispielhafte Logik zeigen, die durch
den Controller in Obereinstimmung mit der vorliegenden Erfindung
ausgeführt
wird.
-
Hardwareumgebung
-
1 zeigt
eine exemplarische Hardwareumgebung, die verwendet wird, um die
bevorzugte Ausführungsform
der Erfindung zu implementieren. Die vorliegende Erfindung wird üblicherweise
unter Verwendung eines Computers 100 implementiert, der üblicherweise
unter anderem einen Prozessor, einen Schreib-/Lese-Speicher (random access memory,
RAM), Datenspeichervorrichtungen 102, 104 und 106 (beispielsweise
ein Festplattenlaufwerk, ein Floppy-Laufwerk und/oder ein CD-ROM-Laufwerk etc.)
umfasst. Der Computer 100 ist mit anderen Computern und/oder
Datenquellen über
ein Netzwerk 108 unter Verwendung von Datenkommunikationsvorrichtungen
(beispielsweise Modems, Netzwerkschnittstellen etc.) verbunden.
-
Durch
das Netzwerk 108 ist der Computer 100 mit Computern 110, 112, 114, 116 und 118 und Datenquellen 120, 122, 124, 126 und 128 verbunden und
kann mit diesen kommunizieren. Die vorliegende Erfindung ist nicht
begrenzt auf fünf
Datenquellen; es kann eine größere oder
kleinere Anzahl von Datenquellen innerhalb des Systems vorhanden
sein.
-
Der
Computer 100 führt
den Transaktionskoordinator 130 und den Datenverwalter 132 aus. Der
Transaktionskoordinator 130 und der Datenverwalter 132 umfassen üblicherweise
Daten und/oder Anweisungen, welche, wenn sie durch den Computer 100 gelesen
und ausgeführt
werden, den Computer 100 dazu veranlassen, die Schritte
zum Ausführen und/oder
Verwenden der vorliegenden Erfindung auszuführen. Allgemein sind die Daten und/oder
Anweisungen enthalten in und/oder lesbar von einer Vorrichtung,
einem Träger
und/oder einem Medium. Beispielsweise können die Daten und/oder die
Instruktionen aufgenommen sein in und/oder lesbar sein von einem
Speicher, einer Datenspeichervorrichtung, entfernten Vorrichtungen,
welche mit dem Computer durch eine Datenkommunikationsvorrichtung
zum Herunterladen einer Datei von einem Netzwerk zu dem Computer
verbunden sind, wie es bei kleinen Server-Architekturen und im Internet
ausgeführt
wird, Floppy-Disketten, CD-ROM-Platten oder anderen magnetischen,
optischen, elektronischen oder anderen Speichermedien oder -Vorrichtungen, welche
mit dem Computer verbunden werden können oder durch den Computer
interpretiert werden können.
-
Dementsprechend
kann die vorliegende Erfindung als ein Verfahren, ein Apparat oder
ein Herstellungsartikel unter Verwendung von Standard-Programmier-
und/oder Konstruktions-Techniken,
um Software, Firmware, Hardware oder beliebige Kombination davon
zu erzeugen, implementiert sein. Der Ausdruck "Herstellungsartikel" (oder alternativ "Computerprogrammprodukt"), wie hierin verwendet,
ist dazu vorgesehen, ein Computerprogramm einzuschließen, das
von einer beliebigen computerlesbaren Vorrichtung, einem Träger oder
einem Medium lesbar ist. Viele Modifikationen können an dieser Konfiguration
ohne Verlassen des Umfangs der vorliegenden Erfindung vorgenommen
werden.
-
Die
vorliegende Erfindung lehrt auch, dass eine beliebige Kombination
der obigen Komponenten oder einer beliebigen Anzahl von verschiedenen Komponenten
einschließlich
Computerprogrammen, Peripheriegeräten und anderen Vorrichtungen
verwendet werden kann, um die vorliegende Erfindung zu implementieren,
solange ähnliche
Funktionen dabei ausgeführt
werden. Die Präsentation
des Computersystems, wie in der 1 be schrieben,
ist nicht dazu vorgesehen, den Umfang der vorliegenden Erfindung
zu begrenzen, sondern ist dazu vorgesehen, eine mögliche Ausführungsform
der vorliegenden Erfindung zu illustrieren.
-
Beziehungen und Betrieb
-
Wie
in der 1 gezeigt, sind die Datenquellen 120 bis 128 mit
dem Netzwerk 108 verbunden. In dieser Konfiguration können die
Datenquellen 120 bis 128 Daten teilen (share)
und Datenbanken zur Einheitlichkeit synchronisieren. Als ein Beispiel
können
die Datenquellen 120 bis 128 lokale Datenbanken
für ein
Banksystem sein. Eine Transaktion in dem Banksystem, beispielsweise
ein Abheben von Geld von einem Konto, muss nicht nur in der Datenbank gespeichert
werden, die dem geografischen Punkt des Abhebens am nächsten ist;
sie muss auf allen Datenbanken innerhalb des Banksystems gespeichert
werden, um sicherzustellen, dass das Konto nicht an einem anderen
Ort überzogen
wird. Während
die Abhebung stattfindet, ermöglicht
die vorliegende Erfindung es für
einige Datenquellen 120 bis 128, egal ob sie eine
lokale Datenquelle oder nicht ist, für eine Aktualisierung nicht
erreichbar zu sein. Diese Situation kann auftreten, beispielsweise
wenn in einem bestimmten geografischen Bereich ein Stromversorgungsausfall
ist, wenn eine der Datenquellen 120 bis 128 gewartet
werden muss oder aus einem anderen Grund. Die Unerreichbarkeit von
genau einer Datenquelle, Datenquelle 120, ist mit einer strichlierten
Linie in der 1 gezeigt. Zu illustrativen Zwecken
bezieht sich die Beschreibung hierin auf genau eine Datenquelle 120,
die nicht erreichbar ist; die vorliegende Erfindung sieht jedoch
vor, dass eine oder mehrere Datenquellen 120 bis 128 für eine beliebige
gegebene Transaktion nicht erreichbar sind. Die Beschreibung hierin
ist erweiterbar, um eine beliebige Anzahl von Datenquellen 120 bis 128 einzu schließen, welche
innerhalb des Systems nicht erreichbar sind.
-
Wenn
eine Transaktion stattfindet, wird das zweiphasige Speicherprotokoll
der vorliegenden Erfindung durch den Transaktionskoordinator 130 und den
Datenverwalter 132 ausgeführt. Der Transaktionskoordinator 130 überprüft die Erreichbarkeit
der Datenquellen 120 bis 128. In dem Beispiel
der 1 ist die Datenquelle 120 nicht erreichbar.
Der Transaktionskoordinator 130 ermöglicht, dass die Transaktion
auf den Datenquellen 122, 124, 126 und 128 ausgeführt wird
und der Datenverwalter 132 speichert die Transaktion auf
der Speichervorrichtung 102. Der Datenverwalter 132 identifiziert
in Verbindung mit dem Transaktionskoordinator 130 auch,
welche der Datenquellen 120 bis 128 nicht erreichbar
waren. In dem in der 1 gezeigten Beispiel war lediglich
die Datenquelle 120 nicht erreichbar, der Datenverwalter 132 kann
jedoch jede beliebige Anzahl von Transaktionen und jede beliebige
Anzahl von Datenquellen, welche für die Datenspeichervorrichtung 102 nicht erreichbar
sind, protokollieren, wobei dies als das Datenprotokoll (data log)
bezeichnet wird. Die Speichervorrichtung 102 speichert
dann die Transaktion in einer Weise, die mit einem FIFO-Verfahren
konsistent ist, um zu ermöglichen,
dass die Transaktion zeitlich richtig eingeordnet wird.
-
Wenn
die Datenquelle 120 erreichbar wird, sendet der Datenkoordinator 130 ein
Signal an den Datenverwalter 132, welcher die Datenspeichervorrichtung 102 überprüft, um zu
sehen, ob dort irgendeine beliebige Transaktion ist, die in der
Datenquelle 120 aufzunehmen ist. Falls ja, leitet der Datenverwalter 132 die
in der Speichervorrichtung 102 gespeicherten Transaktionen
in einer zeitlich richtig geordneten Weise zu der Datenquelle 120.
Diese Aktion des Sendens der aufgenomme nen Transaktion synchronisiert
die Datenquelle 120 mit den Datenquellen 122 bis 128.
-
Logik des Datenbankreplikators
-
Die 2A bis 2C sind
Flussdiagramme, welche eine beispielhafte Logik zeigen, die durch den
Transaktionskoordinator 130 und den Datenverwalter 132 in Übereinstimmung
mit der vorliegenden Erfindung ausgeführt werden.
-
Der
Block 200 gibt den Computer 100 beim Warten auf
ein Ereignis wieder. Falls das Ereignis eine Transaktion ist, verwendet
der Computer 100 die beispielhafte Logik der 2A bis 2C;
ansonsten werden andere Funktionen und/oder eine andere Logik durch
den Computer 100 ausgeführt.
-
Ein
Block 202 gibt den Transaktionskoordinator 130 beim
Empfang einer "Starte-Transaktion"-Anfrage von einer
Datenquelle 120 bis 128 wieder. Die Kontrolle
geht dann zu einem Block 204, welcher den Transaktionskoordinator 130 beim
Markieren der Transaktion als beginnend wiedergibt. Die Kontrolle
geht dann zu einem Block 206, welcher den Transaktionskoordinator 130 zum Überprüfen des Status
von allen Teilnehmern in dem System wiedergibt. Der Status von allen
Teilnehmern wird durch den Transaktionskoordinator erfasst und aufgenommen. Der
Rest der Flussdiagramme der 2A bis 2C sind
abhängig
von dem für
jede Datenquelle 120 bis 128 aufgenommenen Status.
Die Beschreibung betreffend den Rest der 2A bis 2C ist eine
Baumstruktur, um zu ermöglichen,
dass der Transaktionskoordinator 130 alle Datenquellen 120 bis 128 markiert
und das Flussdiagramm in einer parallelen und/oder seriellen Weise
durchläuft.
-
Nachdem
der Transaktionskoordinator 130 den Status von allen Datenquellen 120 bis 128 aufgenommen
hat, gelangt die Kontrolle zu einem Block 208, welcher
ein Entscheidungsblock ist, der den Transaktionskoordinator 130 beim Überprüfen des Status
von allen Datenquellen 120 und 128 wiedergibt.
Für die
Datenquellen 120 bis 128, welche in dem "Aktiv"-Zustand sind, geht
die Kontrolle zu einem Block 210. Für die Datenquellen 120 bis 128,
die nicht aktiv sind, geht die Kontrolle zu einem Block 212.
Der Block 210 gibt den Transaktionskoordinator 130 beim
Senden einer "Beginn-Transaktion"-Mitteilung zu allen
aktiven Datenquellen 120 bis 128 wieder. Die Kontrolle
geht dann zu einem Entscheidungsblock 214.
-
Der
Block 212 gibt den Transaktionskoordinator 130 beim
Markieren des Status von nichtaktiven Datenquellen 120 bis 128 als "protokolliert" wieder. In dem Beispiel
der 1 würde
die Datenquelle 120 als einen aufgezeichneten Status habend
markiert werden. Die Kontrolle geht dann zu einem Punkt A 216.
-
Der
Block 214 ist ein Entscheidungsblock, welcher den Transaktionskoordinator 130 beim
Bestimmen wiedergibt, ob die Datenquellen 120 bis 128 während der
in dem Block 210 begonnenen Transaktionsbeginnsequenz ausgefallen
sind. Falls die Datenquellen 120 bis 128 dem Transaktionskoordinator 130 mitteilen,
dass sie ausgefallen sind, geht die Kontrolle dann für die Datenquellen 120 bis 128,
die ausgefallen sind, zu einem Block 218 und der Transaktionskoordinator 130 markiert
die Datenquellen 120 bis 128 als einen "Ausgefallen"-("failed")-Status habend.
Die Kontrolle geht dann zu dem Punkt A 216.
-
Für die Datenquellen 120 bis 128,
die nicht während
der Transaktionsbeginnsequenz des Blocks 210 ausgefallen
sind, geht die Kontrolle zu einem Block 220, welcher den
Datenmanager 132 beim Empfang von Transaktionsdaten wiedergibt.
Die Kontrolle geht dann zu einem Block 222, welcher den Datenverwalter 132 beim
Senden der Transaktionsdaten zu den aktiven Datenquellen 120 bis 128 wiedergibt.
Die Kontrolle geht dann zu einem Block 224.
-
Der
Block 224 ist ein Entscheidungsblock, welcher den Transaktionskoordinator 130 beim
Bestimmen wiedergibt, ob irgendeine der Datenquellen 120 bis 128 während der
Datenübertragungssequenz
der Blöcke 220 und 222 ausgefallen
ist. Falls eine der Datenquellen 120 bis 128 ausgefallen
ist, geht die Kontrolle zu dem Block 218, wo die ausgefallenen
Datenquellen 120 bis 128 als ausgefallen markiert
werden. Falls keine der Datenquellen 120 bis 128 ausgefallen
ist, geht die Kontrolle zu einem Punkt B 226.
-
Unter
Bezugnahme jetzt auf die 2B, geht
die Kontrolle von dem Punkt B 226 zu einem Block 228,
wo der Transaktionskoordinator ein Speichertransaktionspaketkommando
(commit transaction parcel command) empfängt und ein Vorbereitungstransaktionspaket
(prepar transaction parcel) an die aktiven Teilnehmer in dem Netzwerk
sendet. Die Kontrolle geht dann zu einem Entscheidungsblock 230.
-
Der
Entscheidungsblock 230 ist ein Entscheidungsblock, welcher
den Computer beim Bestimmen wiedergibt, ob einer der Teilnehmer 120 bis 128 während der
Vorbereitungspaketverarbeitung unerreichbar wurde. Falls ja, werden
die Teilnehmer 120 bis 128, welche unerreichbar
wurden, als ausgefallen in einem Block 232 markiert und
die Kontrolle geht zu dem Punkt A 216. Falls nicht, empfängt der Transaktionskoordinator
Vorbereitungsbestätigungspakete
von den aktiven Teilnehmern. Die Kontrolle geht dann zu einem Entscheidungsblock 236.
-
Der
Entscheidungsblock 236 ist ein Entscheidungsblock, welcher
den Transaktionskoordinator 130 beim Bestimmen wiedergibt,
ob einer der Teilnehmer während
der Vorbereitungstransaktionspaketverarbeitung einen Ausgefallen-Status
gesendet hat. Falls ja, geht die Kontrolle zu einem Block 238,
wo der Transaktioskoordinator die Transaktion abbricht. Die Kontrolle
geht dann zu einem Block 240, wo der Transaktionskoordinator 130 einen
Ausgefallen-Status zu dem Quellsystem 100 sendet. Die Kontrolle
geht dann zu einem Block 242, wo der Transaktionskoordinator 130 auf
zusätzliche
Eingaben wartet.
-
Falls
in dem Block 236 kein Ausgefallen-Status erfasst wurde,
geht die Kontrolle zu einem Block 244, wo der Transaktionskoordinator 130 die
Transaktion als abgespeichert markiert. Die Kontrolle geht dann
zu einem Block 246, wo der Transaktionskoordinator 130 das
Speichertransaktionspaket zu den aktiven Teilnehmern 120 bis 128 sendet.
Die Kontrolle geht dann zu einem Block 248, wo der Transaktionskoordinator 130 mit
einem Erfolgreich-Status-Paket an das Quellsystem 100 antwortet
und dann geht die Kontrolle zu dem Block 242, wo der Transaktionskoordinator 130 auf
zusätzliche
Eingaben wartet.
-
Unter
Bezugnahme jetzt auf die 2C bringt
der Punkt A 216 die Kontrolle zu einem Block 250,
welche den Datenverwalter 123 beim Protokollieren von Transaktionsdaten
für die
Teilnehmer 120 bis 128, die nicht erreichbar sind,
wiedergibt. Die Kontrolle geht dann zu einem Block 252,
wo der Datenverwalter 132 die Transaktionsdaten in einem
Datenblock für
die Teilnehmer 120 bis 128 speichert, welche nicht
erreichbar sind. Die Kontrolle geht dann zu einem Block 254,
welche den Datenverwalter 132 beim Bestimmen wiedergibt,
ob ein Teilnehmer 120 bis 128, der zuvor unerreichbar
war, jetzt erreichbar ist, um ihm die Transaktionsdaten zu senden.
Falls keine neuen Teilnehmer 120 bis 128 vorhanden
sind, kehrt die Kontrolle zu dem Block 254 zurück. Falls
ein neuer Teilnehmer 120 bis 128 vorhanden ist,
geht die Kontrolle zu einem Block 256, wo der Datenverwalter 132 bestimmt,
ob der Status des neuen Teilnehmers 120 bis 128 als
protokolliert markiert ist. Falls ja, geht die Kontrolle zu einem
Block 258, wo der Datenverwalter 132 das Datenprotokoll
an den Teilnehmer 120 bis 128 übergibt. Die Kontrolle geht
dann zu dem Block 242, wo der Datenverwalter 132 auf
zusätzliche
Eingaben wartet.
-
Falls
der Zustand des neuen Teilnehmers 120 bis 128 nicht
protokolliert war, geht die Kontrolle zu einem Entscheidungsblock 260,
wo der Datenverwalter 132 bestimmt, ob die Transaktion
als abgespeichert markiert wurde. Falls ja, geht die Kontrolle zu
einem Block 262, wo der Datenverwalter 132 das Speichertransaktionspaket
zu dem neuen Teilnehmer 120 bis 128 sendet. Falls
nicht, geht die Kontrolle zu einem Block 264, wo der Datenverwalter 132 das Abbruchtransaktionspaket
zu dem neuen Teilnehmer 120 bis 128 sendet. Die
Kontrolle geht dann von den Blöcken 162 und 264 zu
dem Block 242.
-
Es
sollte klar sein, dass die vorliegende Erfindung mittels alternativer
Ausführungsformen
ausgeführt
werden kann. Beispielsweise kann ein beliebiger Typ von Computer,
wie beispielsweise ein Mainframe, ein Minicomputer oder ein Personal Computer
mit der vorliegenden Erfindung verwendet werden. Zusätzlich kann
ein Softwareprogramm, welches eine Datenbank verwendet (entweder
teilweise oder komplett) von der vorliegenden Erfindung profitieren.
-
Die
vorhergehende Beschreibung der bevorzugten Ausführungsformen der Erfindung
wurde zum Zwecke der Veranschaulichung und Beschreibung angegeben.
Sie ist nicht dazu vorgesehen, erschöpfend zu sein oder die Erfindung
auf die genaue offen barte Form zu begrenzen. Viele Modifikationen
und Variationen sind in dem Lichte der obigen Lehre möglich. Es
ist beabsichtigt, dass der Umfang der Erfindung nicht durch diese
detaillierte Beschreibung sondern durch die angehängten Ansprüche begrenzt wird.