-
Die
vorliegende Erfindung bezieht sich auf den transaktionsorientierten
Austausch zwischen Objekten, die Daten liefern, und Objekten, die
diese Daten abnehmen, unter Nutzung von Kommunikationskanälen sowie
internen oder externen Verwaltern für die verschiedenen Beziehungen
zwischen diesen Objekten. Der Mechanismus wird von einem Zwischenobjekt
umgesetzt, bei dem es sich um einen Kommunikationskanal handelt.
-
Die
Lieferanten können
einen Kanal verstopfen, wenn sie eine zu große Datenmenge übermitteln oder
wenn eine große
Anzahl an Lieferanten mit dem Kanal verbunden ist.
-
Ein
bekanntes Mittel zur Beschränkung
dieser Überlastungen
besteht darin, den Kommunikationskanal mit einem Aktivitätsgrenzwert
zu versehen, bei dem alle neuen Transaktionen unterbunden werden,
so lange die laufenden Transaktionen noch nicht abgeschlossen sind.
Diese Lösung
ist jedoch im Hinblick auf die Operationszeit sehr kostspielig.
Bei der geringsten Überschreitung
besteht die Gefahr, dass der gesamte Kanal blockiert wird, obwohl
die Überschreitung
nur vorübergehend
bestand. Es ist möglich,
diese Situation zu verbessern, indem ein dynamisches System zur
Erfassung von Überschreitungen
umgesetzt wird, das den Kontext dieser Überschreitungen berücksichtigt.
Diese Lösung
beinhaltet zwangsläufig
einen Verlust der Reaktionszeit des gesamten Systems.
-
Eine
Transaktion muss vier Eigenschaften aufweisen, die unter der Abkürzung ACID
bekannt sind, die steht für:
Untrennbarkeit, Konsistenz, Entkopplung und Dauerhaftigkeit. Diese
vier Eigenschaften sind eng miteinander verbunden. Die Kontrollmechanismen
Konkurrenz und Neustart, die von einer Transaktionsmaschine umgesetzt
werden, haben zum Ziel, diese durchzusetzen.
-
Die
Untrennbarkeit gewährleistet,
dass entweder sämtliche
Aktualisierungen einer Transaktion durchgeführt werden oder dass keine
Aktualisierung durchgeführt
wird. Wird diese Eigenschaft nicht berücksichtigt, kann dies dazu
führen,
dass sämtliche Daten
von einem ursprünglich
kohärenten
Zustand in einen inkohärenten
Zustand wechseln.
-
Damit
diese Eigenschaft eingehalten werden kann, ist jede Serie von Aktionen,
die eine Transaktion darstellen, durch einen Anfang und ein Ende
gekennzeichnet. Der Anfang einer Transaktion meldet der Transaktionsmaschine
das Ereignis des Transaktionsbeginns. Es sind zwei Befehle vorgesehen,
um das Ende einer Transaktion zu kennzeichnen: Anhand der Meldung „commit" kann die Transaktion dem
Transaktionsmonitor mitteilen, dass vom isolierten Gesichtspunkt
der Transaktion aus alle Aktionen reibungslos verlaufen sind. Mit „Abort" kann die Transaktion
dem Transaktionsmonitor mitteilen, dass eine oder mehrere Aktionen
fehlgeschlagen sind und dass die Transaktion nicht bestätigt werden
soll (die von der Transaktion geänderten
Daten müssen
in ihren ursprünglichen
Zustand zurückversetzt
werden). In Abhängigkeit
von dem nach Abschluss der Transaktion vom Transaktionsmonitor empfangenen
Ereignis und in Abhängigkeit
vom Gesamtbild des Systems, das ihm vorliegt (Wechselwirkungen zwischen Transaktionen),
entscheidet der Transaktionsmonitor, ob die Transaktion bestätigt werden
soll oder nicht, d.h. ob die Änderungen,
die diese vorgenommen hat, endgültig
werden sollen. Falls vor dem Abschluss einer Transaktion eine Systemstörung auftritt,
wird diese als abgebrochen betrachtet. Ein möglicher Mechanismus zur Erfüllung der
Untrennbarkeitseigenschaft besteht darin, bei jeder laufenden Transaktion
das vorhergehende Bild aller aktualisierten Daten zu erhalten. Im
Fall des Abbruchs einer Transaktion ist es möglich, die Transaktion rückgängig zu
machen, indem alle vorhergehenden Bilder auf die Transaktion übertragen
werden.
-
Die
Eigenschaft der Konsistenz bezieht sich auf die semantische Konsistenz
einer Datenmenge. Ihre Aufrechterhaltung kann zum Teil durch die
Mechanismen, die auch die Kontrolle der Integritätsvorgaben gewährleisten,
sowie durch Aufrechterhaltung der Transaktionseigenschaften gewährleistet
werden. Die Entkopplung ist in einer Multitasking-Umgebung unerlässlich,
um sicherzustellen, dass bei jeder Transaktion ein konsistenter
Status sämtlicher
Daten vorliegt. Die Entkopplung besteht darin zu gewährleisten,
dass im Fall einer parallelen Ausführung der Transaktion mit anderen
Transaktionen (die auf gemeinsame Daten zugreifen) gleiche Transaktionen, die
die gleichen Änderungen
an allen in den Transaktionen abgerufenen Daten zur Folge hätten, nacheinander
ausgeführt
werden. In diesem Fall wird die Eigenschaft der Entkopplung für sämtliche
Transaktionen überprüft. Die
Dauerhaftigkeit gewährleistet, dass
die Aktualisierungen einer bestätigten
Transaktion endgültig
sind. Die einzige Aktion, mit der Aktualisierungen einer bestätigten Transaktion
rückgängig gemacht
werden können,
besteht in der Durchführung
einer Kompensationstransaktion. Diese Eigenschaft ist nicht zu trennen
von der Eigenschaft der Untrennbarkeit, die fordert, dass die Aktualisierungen einer
Transaktion ein kohärentes
Ganzes bilden, das entweder insgesamt rückgängig gemacht oder dauerhaft
bestätigt
wird. Eine Möglichkeit
im Fall eines Speicherausfalls oder eines Festplattenfehlers, die den
Verlust eines Teils der Informationen der Datenbank zur Folge haben,
besteht darin, einen Wiederherstellungsmechanismus zur Restaurierung
der verlorenen Informationen auszuführen.
-
Die
Erfindung hat zum Ziel, eine Lösung
vorzuschlagen, die die Möglichkeit
bietet, die Überlastung
eines Kommunikationskanals zu reduzieren, und zwar unter Einhaltung
der ACID-Eigenschaften für
die Zuverlässigkeit
und ohne die Systemleistungen zu beeinträchtigen.
-
Um
die Überlastung
zu reduzieren, wird ein zusätzlicher,
identischer Kanal eingerichtet, um einen Teil der Daten über diesen
neuen Kanal weiterzuleiten.
-
Im
Patent US-A-5,781,598 wird ein Verfahren beschrieben, das erfasst,
wenn der Datendurchsatz in einem Kanal einen bestimmten Grenzwert überschreitet,
wodurch ein zweiter Kanal initialisiert wird, der einen identischen
Kanal darstellt, und der über
diesen identischen Kanal übertragen
werden kann, wenn die laufende Transaktion über den ursprünglichen
Kanal abgeschlossen ist.
-
Die
Erfindung beinhaltet ein Verfahren zur Verteilung der Auslastung
eines Kommunikationskanals beim transaktionsorientierten Austausch
zwischen zwei Kommunikationskanälen,
wobei die Transaktionen zwischen den Lieferanten und dem Kanal und
die Transaktionen zwischen dem Kanal und den Abnehmern berücksichtigt
werden. Dieses Verfahren umfasst die folgenden Schritte:
- – Einrichtung
eines identischen Kommunikationskanals;
- – Umstellung
eines Teils der Datenlieferanten auf den identischen Kanal, sobald
die laufenden Transaktionen über
den ursprünglichen
Kanal abgeschlossen sind.
-
Vorzugsweise
wird ein gesonderter Schritt durchgeführt, um die Lieferanten zu
ermitteln, die auf den identischen Kanal umgestellt werden sollen. Nach
dem Schritt zur Festlegung der Lieferanten wird zwischen den ermittelten
Lieferanten und dem ursprünglichen
Kanal keine neue Transaktion mehr eingeleitet.
-
Die
Erfindung bezieht sich außerdem
auf den Trennungsmechanismus. Dieser besteht in einem Verfahren
zur Verteilung der Auslastung von zwei Kommunikationskanälen, wobei
die Transaktionen zwischen den Lieferanten und den Kanälen und
die Transaktionen zwischen den Kanälen und den Verbrauchern berücksichtigt
werden und das die folgenden Schritte umfasst:
- – Definition
eines Haupt- und eines Sekundärkanals;
- – Umstellung
der Datenlieferanten des Sekundärkanals
auf den Hauptkanal, sobald die laufenden Transaktionen mit dem Sekundärkanal abgeschlossen
sind.
-
Vorteilhafterweise
werden die Verbraucher des Sekundärkanals getrennt, sobald die
Transaktionen, aufgrund derer der genannte Sekundärkanal einbezogen
wurde, ausgeführt
wurden.
-
Der
Sekundärkanal
kann anhand eines minimalen Verkehrsgrenzwerts festgelegt werden.
In einer Ausführungsvariante
testet man vorher, ob der Hauptkanal den Verkehr unterhalb eines
vordefinierten Grenzwerts verarbeiten kann, damit in diesem Kanal
keine Überlastung
entsteht.
-
Um
die zuverlässige Übermittlung
der Daten zwischen einem Lieferanten und einem oder mehreren Verbrauchern
zu gewährleisten,
kann die Übermittlung
von Daten zwischen zwei benachbarten Objekten unter der Kontrolle
einer Transaktion erfolgen.
-
Ein
Lieferant löst
somit eine Transaktion aus, um eine zuverlässige Übertragung über den Kommunikationskanal
zu gewährleisten.
Wenn die Transaktion zur Übermittlung über den
Kanal korrekt abgeschlossen wurde, wird der Lieferant freigegeben. Vom
Kanal wird eine zweite Transaktion ausgelöst, um eine zuverlässige Übertragung
an den Verbraucher zu gewährleisten.
Diese Transaktion zur zuverlässigen Übertragung
zwischen dem Kanal und dem Verbraucher ist beendet, wenn der Client
die Daten korrekt empfangen hat.
-
Ist
der Kanal überlastet,
wird eine leere Kopie des Kommunikationskanals erstellt. Diese Kopie wird
mit sämtlichen
Clients verbunden, die auch mit dem ursprünglichen Kanal verbunden waren.
-
Ein
Lieferant wird erst auf den neuen Kanal umgestellt, wenn seine über den
ursprünglichen
Kanal laufenden Transaktionen abgeschlossen sind.
-
Ein
Teil der Lieferanten wird nacheinander vom ursprünglichen Kanal getrennt und
mit dem identischen Kanal verbunden, um die Auslastung zu verteilen.
-
Der
Lieferant verfügt über ein
Abfragefeld, in dem angegeben werden kann, ob er getrennt werden darf
oder nicht, d.h. ob eine Transaktion läuft oder nicht.
-
Geht
die Auslastung wieder zurück,
bietet ein ähnlicher
Mechanismus die Möglichkeit,
die Lieferanten wieder auf den ursprünglichen Kanal umzuschalten
und den nicht mehr benötigten
identischen Kanal zu löschen.
-
Zur
Umschaltung eines Lieferanten wartet man, bis keine Transaktionen
mehr laufen. Damit werden dem Lieferanten neue Transaktionen untersagt,
um zu vermeiden, dass der Lieferant unbegrenzt neue Transaktionen
beginnt. Wenn die Umstellung möglich
wird, wird dem Lieferant die Referenz des neuen Kanals übermittelt,
damit er eine Verbindung herstellen kann. Anschließend kann
er mit neuen Transaktionen über
den ursprünglichen
Kanal beginnen.
-
Vor
der Umstellung eines Lieferanten werden sämtliche Clients mit dem neuen
Kanal verbunden, um sicherzustellen, dass keine Daten verloren gehen
oder mehrmals übertragen
werden.
-
Die
umgekehrte Operation erfolgt auf die gleiche Weise: Alle Lieferanten
müssen
von dem identischen Kanal auf den ursprünglichen Kanal umgestellt werden,
bevor die Clients getrennt werden. Außerdem muss man warten, bis
alle laufenden Transaktionen abgeschlossen sind, bevor ein Objekt umgestellt
werden kann.
-
In 1 ist
das überlastete
System vor Inbetriebnahme des identischen Kanals dargestellt.
-
Die
Lieferanten (1 und 7) verfügen jeweils über eine
spezifische Schnittstelle (1), die die Kommunikationsverwalter
abfragen, um festzustellen, ob laufende Transaktionen vorliegen.
Der Lieferant (1) führt
eine Transaktion (3) über
den Kommunikationskanal (4) durch, während der Lieferant (7)
nichts durchführt.
Dieser kann auf den identischen Kanal umgestellt werden. Die Verbraucher
(6) stehen in einer konstanten Verbindung (5)
mit dem Kommunikationskanal.
-
2 zeigt
einen eingerichteten identischen Kanal.
-
Der
identische Kanal (12) führt
Transaktionen (13) mit dem Lieferanten (7) durch.
Die Verbraucher (6) sind mit sämtlichen Kommunikationskanälen (11)
verbunden.