DE19926116A1 - Mehr-Teilprozeß-Protokollierung in einer Konfigurationsdatenbank - Google Patents

Mehr-Teilprozeß-Protokollierung in einer Konfigurationsdatenbank

Info

Publication number
DE19926116A1
DE19926116A1 DE19926116A DE19926116A DE19926116A1 DE 19926116 A1 DE19926116 A1 DE 19926116A1 DE 19926116 A DE19926116 A DE 19926116A DE 19926116 A DE19926116 A DE 19926116A DE 19926116 A1 DE19926116 A1 DE 19926116A1
Authority
DE
Germany
Prior art keywords
transaction
database
configuration database
entry
specific
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE19926116A
Other languages
English (en)
Inventor
Bernard A Traversat
Thomas Saulpaugh
Jeffrey A Schmidt
Gregory L Slaughter
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE19926116A1 publication Critical patent/DE19926116A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Abstract

Ein Verfahren und eine Vorrichtung zum Erzeugen und Halten eines Protokolls von Transaktionen, die auf eine Konfigurationsdatenbank gerichtet sind, protokollieren Transaktionen in einer Konfigurationsdatenbank, indem zuerst eine Datenbanktransaktion empfangen wird, wobei die Transaktion entweder eine einzelne Modifikation, beispielsweise ein Einfügen, ein Löschen, ein Aktualisieren, oder eine Reihe von Modifikationen, die auf die Konfigurationsdatenbank gerichtet sind, ist. Ein Anfangseintrag wird in eine Protokolldatei eingefügt, wobei der Anfangseintrag einen Transaktionsidentifizierer oder eine Transaktionsbezeichnung, der oder die der Datenbanktransaktion zugeordnet ist, enthält. Nachfolgende Einträge werden in die Protokolldatei eingefügt, die spezifischen Aktualisierungen der Transaktion zugeordnet sind, wobei jeder nachfolgende Eintrag den Transaktionsidentifizierer und tatsächliche Transaktionsdaten, die sich auf die spezifische Aktualisierung beziehen, enthält. Der Protokollierungsmechanismus bestimmt dann, ob jede der spezifischen Aktualisierungen hinsichtlich der Konfigurationsdatenbank erfolgreich abgeschlossen wurde. Ein Schlußeintrag für die Transaktion wird basierend auf der Bestimmung, ob jeder der spezifischen Aktualisierungen erfolgreich abgeschlossen wurde, eingefügt.

Description

Die vorliegende Erfindung bezieht sich allgemein auf Compu­ tersoftware und Computernetzwerkanwendungen. Spezieller be­ zieht sich dieselbe auf Protokollierungs- und Erholungs-Me­ chanismen für Konfigurationsdatenbanken in Computernetzwer­ ken.
Ein Typ eines herkömmlichen Computernetzwerks umfaßt das Verbinden einer Reihe von Personalcomputern, die als Clients bezeichnet werden (beispielsweise Sun SPARC Workstations oder IBM PCs) mit einem oder mehreren Server-Computern. Die Client-Computer sind im allgemeinen unabhängig und enthalten in ihrem eigenen Speicher einen Großteil der Informationen, die benötigt werden, um Benutzeranwendungen durchzuführen und Netzwerkoperationen durchzuführen. Das heißt, daß die­ selben Informationen bezüglich ihrer eigenen Konfiguration sowohl hinsichtlich Software- als auch Hardware-Fähigkeiten und -Anforderungen enthalten. Die Client-Computer greifen typischerweise aufgrund einer Vielzahl von Gründen auf die Netzwerk-Server zu, wie z. B. des Zugreifens auf Netzwerk­ softwareanwendungen, des Sendens und Empfangens von e-Mails, des Wiedererlangens und Speicherns von Informationen auf ei­ ner Netzwerkdatenbank. Jedoch befinden sich Informationen, die für einen speziellen Client-Computer spezifisch sind, im allgemeinen auf dem Client-Computer. Diese Informationen können beispielsweise die Speichermenge oder Datenbustypen, Hardwarespezifikationen, wie z. B. den Typ des Datenbusses oder zusätzlicher Prozessoren, umfassen. Da die Client-Com­ puter relativ unabhängig sind und ihre eigenen Konfigura­ tionsinformationen speichern (weshalb dieselben nicht auf dem Server-Computer verfügbar sind), wurde die Aufgabe der Daten- und Anwendungs-Verwaltung auf einem Client-Computer zunehmend mühsam.
Bei der herkömmlichen Netzwerkkonfiguration ist das Verfah­ ren zum Installieren neuer Software oder neuer Anwendungen ein statisches Verfahren. Bei einer solchen Konfiguration sind die Konfigurationsinformationen für jeden PC auf jeder Client-Maschine definiert. Folglich muß der Netzwerkadmini­ strator jede Konfiguration auf jedem PC statisch definieren. Bei einer herkömmlichen Computernetzwerkkonfiguration sind die Konfigurationsinformationen für jedes spezielle Unter­ system oder jeden speziellen Client in dem speziellen Client fest codiert. Außerdem erfordert bei herkömmlichen Netzwerk­ konfigurationen, die unabhängige Clients, die mit Netzwerk- Servern verbunden sind, verwenden, eine Anwendungswartung, wie z. B. das Installieren neuer Versionen oder größere Ak­ tualisierungen der Software, bei der die Aktualisierung eine Kenntnis einer oder einen Zugriff auf eine Untersystemkonfi­ guration erfordert, normalerweise, daß die Anwendung oder das Netzwerk "heruntergefahren werden", um die Wartung aus­ zuführen.
Bei herkömmlichen Computernetzwerken, die mehrere Clients und einen Server aufweisen, bei denen der Server Informatio­ nen enthält, die aus verschiedenen Gründen von einem Client benötigt werden, werden in vielen Fällen alle Daten auf dem Server, die von dem Client benötigt werden oder für densel­ ben relevant sind, von dem Server zu dem Client bewegt. Dies kann typischerweise das Bewegen großer Datenmengen beinhal­ ten, von denen viele nicht verwendet werden oder von denen viele notwendig sind, damit der Client arbeitet. Das Über­ tragen aller Daten zu dem Client ist ineffizient und erhöht den Netzwerkverkehr. Zusätzlich muß der Client ausreichend Arbeitsspeicher und Speicher aufweisen, um alle Informatio­ nen, die sich auf diesen speziellen Client beziehen, von dem Server zu speichern. Beispielsweise ist es möglich, daß Ge­ räte, wie z. B. PDAs (PDAs = personal digital assistent = persönliches digitales Hilfsmittel) und Chipkarten, die kei­ ne großen Speichermengen besitzen, in ihrem eigenen Speicher nicht alle Informationen, einschließlich Konfigurationsin­ formationen, die für dieses spezielle Gerät relevant sein könnten, enthalten können.
Bekannten Verfahren zum Protokollieren oder Verfolgen von Aktualisierungen, Modifikationen oder Einfügungen (d. h. Transaktionen), die bezüglich Konfigurationsdatenbanken durchgeführt werden, fehlen bestimmte Schlüsselmerkmale, die bei realen Netzwerken großen Ausmaßes erforderlich sind und die bei praktischen täglichen Operationen erwartet werden. Im allgemeinen besitzen Konfigurationsdatenbanken keine adä­ quaten Erholungsmechanismen, um Transaktionen oder Operatio­ nen, die bezüglich der Datenbank durchgeführt werden, und darauf bezogene Daten im Fall eines "Absturzes" oder eines anderen katastrophalen Ausfalls zu beheben. Die Daten, die in einer Konfigurationsdatenbank gespeichert sind, sind ty­ pischerweise empfindliche Daten, die im Fall eines Ausfalls, egal ob von einer einzelnen Transaktion oder der gesamten Datenbank, wiederherstellbar sein müssen. Protokollierungs­ mechanismen bekannter Konfigurationsdatenbanken besitzen ty­ pischerweise nicht die Körnung oder Robustheit, die es er­ möglichen würde, daß ein System- oder Netzwerk-Administrator ein Protokoll untersucht, um beispielsweise zu sehen, welche Operation von einem Endverbraucher die Konfigurationsdaten­ bank verfälscht oder beschädigt hat. Zusätzlich sind die Prokollierungsmechanismen für Konfigurationsdatenbanken für einen spezifischen Speichertyp oder ein beständiges Spei­ chermedium zugeschnitten, beispielsweise eine spezifische relationale Datenbank, einen speziellen Verzeichnisdienst oder einen anderen spezifischen Speichermechanismus. Dies begrenzt die Übertragbarkeit und Flexibilität der Konfigura­ tionsdatenbank und des Protokollierungsmechanismus'.
In jüngerer Zeit wurden vollständig funktionelle und zuver­ lässige Protokollierungsmechanismen notwendig, da Computer­ netzwerke hinsichtlich der Typen von Computern und der Funk­ tionalität, und speziell hinsichtlich der Anzahl von Ver­ brauchern, die bei bestimmten Netzwerken exponentiell zuge­ nommen hat, gewachsen sind. Folglich enthalten jüngere Kon­ figurationsdatenbanken große Datenmengen. Überdies sind die Informationen, die in den Konfigurationsdatenbanken enthal­ ten sind, komplexer mit der Zeit gewachsen und werden darü­ berhinaus häufiger aktualisiert als dies bei früheren Konfi­ gurationsdatenbanken, die eine wesentlich statischere Be­ schaffenheit hatten, der Fall war. Ferner besitzen die mei­ sten Protokollierungsmechanismen, die Datenbanken zugeordnet sind, die Funktion des Zurückbringens der Datenbank in einen konsistenten Zustand, was für bestimmte Zwecke adäquat ist, es jedoch für solche nicht sein kann, bei denen alle Daten wiederhergestellt werden müssen, um eine hohe Zuverlässig­ keit der Clients, beispielsweise der Netzwerkcomputer, si­ cherzustellen.
Somit wäre es erwünscht, einen Protokollierungsmechanismus für eine Konfigurationsdatenbank zu besitzen, der ein de­ tailliertes Protokoll aller Aktualisierungen und Modifika­ tionen, die hinsichtlich der Datenbank durchgeführt werden, hält. Es wäre ferner erwünscht, einen Protokollierungsme­ chanismus zu besitzen, der tatsächliche Daten enthält, die sich auf die Aktualisierungen und Modifikationen beziehen, um eine volle Wiederherstellung der Konfigurationsdatenbank im Falle eines Ausfalls zu ermöglichen. Es wäre ferner er­ wünscht, einen generischen Protokollierungsmechanismus zu besitzen, dahingehend, daß derselbe unabhängig von dem Typ des beständigen Speichers, der verwendet wird, arbeiten kann, um die Konfigurationsdatenbank zu speichern.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren, eine Vorrichtung, ein computerlesbares Medium und ein Computer-Datensignal zu schaffen, die eine flexible Pro­ tokollierung von Aktualisierungen und Modifikationen einer Konfigurationsdatenbank ermöglichen und ferner eine Erholung der Datenbank von einem Ausfall entweder einzelner Transak­ tionen oder der gesamten Datenbank ermöglichen.
Diese Aufgabe wird durch ein Verfahren nach Anspruch 1, eine Vorrichtung nach Anspruch 2, ein Computer-lesbares Medium nach Anspruch 3 und ein Computer-Datensignal nach Anspruch 4 gelöst.
Die vorliegenden Erfindung schafft ein Mehr-Teilprozeß-Pro­ tokollierungsverfahren zum Protokollieren von Transaktionen in einem Konfigurationsdatenbanksystem. Gemäß einem Aspekt der Erfindung wird eine Datenbanktransaktion, die auf die Konfigurationsdatenbank gerichtet ist, durch den Protokol­ lierungsmechanismus empfangen, wobei die Datenbanktransak­ tion eine oder mehrere spezifische Aktualisierungen, die auf die Konfigurationsdatenbank wirken, aufweist. Ein Anfangs­ eintrag wird in eine Protokolldatei eingefügt, wobei der An­ fangseintrag einen Transaktionsidentifizierer oder eine Transaktionsbezeichnung enthält, der oder die der Datenbank­ transaktion zugeordnet ist. Ein nachfolgender Eintrag wird entsprechend den spezifischen Aktualisierungen der Transak­ tion in die Protokolldatei eingefügt, wobei der nachfolgende Eintrag den Transaktionsidentifizierer und tatsächliche Transaktionsdaten, die sich auf die spezifische Aktualisie­ rung beziehen, enthält. Der Protokollierungsmechanismus be­ stimmt dann, ob jede der spezifischen Aktualisierungen hin­ sichtlich der Konfigurationsdatenbank erfolgreich abge­ schlossen wurde. Ein Schlußeintrag für die Transaktion wird auf der Bestimmung dessen, ob jede der spezifischen Aktuali­ sierungen erfolgreich abgeschlossen wurde, eingefügt.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeich­ nungen näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm, das Komponenten einer Computer­ netzwerkkonfiguration zeigt, die ein System-weites Datenschema gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigen;
Fig. 2 eine Darstellung einer n-Weg-Baumstruktur, die eine Client-Schema-Hierarchie gemäß einem Ausführungs­ beispiel der vorliegenden Erfindung darstellt;
Fig. 3 ein Blockdiagramm, das eine Struktur eines JSD-Ser­ ver-Schemas (JSD = Java-System-Datenbank) gemäß ei­ nem Ausführungsbeispiel der vorliegenden Erfindung zeigt;
Fig. 4 ein Blockdiagramm eines Systemüberblicks ein­ schließlich nachgeschalteter Komponenten eines Ser­ vers und des Protokollierungsmechanismus' in Be­ zug auf eine Beständig-Speicher-API (API = applica­ tion program interface = Anwendungsprogrammschnitt­ stelle) gemäß einem Ausführungsbeispiel der vorlie­ genden Erfindung;
Fig. 5 ein Blockdiagramm einer Klassenhierarchie eines Protokollierungsmechanismus' gemäß einem Ausfüh­ rungsbeispiel der vorliegenden Erfindung;
Fig. 6 eine schematische Darstellung eines Protokolls, das gemäß einem Ausführungsbeispiel der vorliegenden Erfindung durch den Protokollierungsmechanismus er­ zeugt und gehalten wird;
Fig. 7 ein Flußdiagramm einer Transaktion, die einen Ein­ trag in ein Protokoll erzeugt, gemäß einem Ausfüh­ rungsbeispiel der vorliegenden Erfindung;
Fig. 8 ein Flußdiagramm eines Server-Anlaufverfahrens, das zeigt, wie sich dasselbe auf den Protokollierungs­ mechanismus gemäß einem Ausführungsbeispiel der vorliegenden Erfindung bezieht; und
Fig. 9 ein Flußdiagramm eines Erholungsmechanismus' für eine Konfigurationsdatenbank gemäß einem Ausfüh­ rungsbeispiel der vorliegenden Erfindung.
Ein Konfigurationsdaten-Gerüst oder -Schema und ein Verfah­ ren zum Protokollieren und Beheben von Transaktionen, die hinsichtlich des Schemas durchgeführt werden, und Computern in einem Computernetzwerk wird bezugnehmend auf die ver­ schiedenen Zeichnungen beschrieben. Die vorliegende Erfin­ dung offenbart eine Hierarchie oder ein Datenschema zum Dar­ stellen und Speichern von Konfigurationsinformationen und darauf bezogenen Informationen in einer Systemdatenbank. Ferner wird ein Protokollierungsmechanismus offenbart, der Transaktionen, die hinsichtlich einer Konfigurationsdaten­ bank durchgeführt werden, protokolliert und eine Basis zum Beheben von Operationen bei einer Transaktion, die Daten in der Konfigurationsdatenbank aktualisieren oder modifizieren, liefert. Zu Zwecken der Darstellung eines Ausführungsbei­ spiels der vorliegenden Erfindung wird eine Java-Systemda­ tenbank (JSD) untersucht. Bei anderen bevorzugten Ausfüh­ rungsbeispielen kann die Systemdatenbank auf anderen Platt­ formtypen arbeiten. Die JSD des beschriebenen Ausführungs­ beispiels ist ein einzelnes Untersystem, das zumindest zwei Haupt-Unterkomponenten oder Unterschemata umfaßt: das Client-Schema und das Server-Schema.
Bei dem beschriebenen Ausführungsbeispiel werden Daten, die sich auf die Client-Maschine und eine Benutzerkonfiguration in einem Netzwerk beziehen, auf einem Server als Teil einer Server-JSD gespeichert. Die Konfigurationsinformationen für jeden Client, der auch als ein Untersystem bezeichnet wird, werden in dem Serverschema gespeichert. Dies steht im Kon­ trast zu herkömmlichen Netzwerken, bei denen Konfigurations­ informationen bezüglich eines Clients auf der Client-Ma­ schine fest codiert oder gespeichert sind. Das Datenschema der vorliegenden Erfindung ermöglicht, daß ein Netzwerkad­ ministrator Konfigurationsinformationen für jeden der Compu­ ter in dem Netzwerk von einem zentralen Ort aus, beispiels­ weise einem einzelnen Server, verwaltet. Folglich können al­ le Softwareaktualisierungen, Versionsaktualisierungen oder die Installation neuer Anwendungen, die eine Kenntnis einer und einen Zugriff auf eine Untersystemkonfiguration erfor­ dern, von dem zentralen Ort aus implementiert und zu den einzelnen Clients weitergeleitet werden. Benutzer auf den Client-Maschinen müssen Anwendungen nicht verlassen, wobei überdies das Netzwerk zur Wartung, um die neue Aktualisie­ rung oder Version der Anwendung zu installieren oder weiter­ zuleiten, nicht heruntergefahren werden muß.
Fig. 1 ist ein Blockdiagramm, das Komponenten einer Compu­ ternetzwerkkonfiguration, die ein System-weites Datenschema gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt, zeigt. Bei dem beschriebenen Ausführungsbeispiel ist das System-weite Datenschema als ein Java-System-Datenbank JSD (101) dargestellt, die aus einem Client-Schema 103 be­ steht, das sich in einer Client-Maschine 105 als Teil des Netzwerks 107 befindet. Ein Server-Schema 111 befindet sich auf einem Server-Computer 109, der Teil des Netzwerks 107 ist.
Fig. 2 ist eine Darstellung einer n-Weg-Baumstruktur, die eine Client-Schema-Hierarchie 103 gemäß einem Ausführungs­ beispiel der vorliegenden Erfindung darstellt. Die Hierar­ chie des Client-Schema 103 und die Hierarchie des Server- Schemas 111 werden unter Verwendung eines n-Weg-Baums offen­ bart. An der Wurzel des Baums befindet sich ein Wurzelein­ trag 201, der keine Daten enthält und das einzige Knotenge­ rüst in der Hierarchie ist, das auf sich selbst Bezug nimmt. Eine erste Ebene von Knoten 203 in dem Client-Schema 103 definiert kollektiv einzelne Namensräume in dem generischen Client-Schema. Die Ebene, die die Namensraumeinträge ent­ hält, ist die erste Ebene 203 in der Hierarchie unter dem Wurzeleintrag 201.
Bei dem beschriebenen Ausführungsbeispiel existieren sechs Namensräume in dem generischen Client-Schema 103. Bei ande­ ren bevorzugten Ausführungsbeispielen können mehr oder weni­ ger Namensräume abhängig von den Bedürfnissen einer speziel­ len Netzwerkkonfiguration existieren. Bei dem beschriebenen Ausführungsbeispiel sind die Standard-Namensräume der oberen Ebene für den JSD-Client SOFTWARE, GERÄTE, SCHNITTSTELLE, KONFIG, ALIAS und TEMP. Beispielsweise beginnt der Namens­ raum SOFTWARE an einem Knoten 205 und enthält alle Knoten und Datenverzweigungen, die sich von dem Knoten 205 verzwei­ gen. Die spezifischen Einträge in der Ebene 203 der Hierar­ chie sind Wurzeln von Unterbäumen, die die eindeutigen Na­ mensräume definieren. Alle Einträge in einem speziellen Na­ mensraum, wie z. B. SOFTWARE, sind Einträge, die sich auf Konfigurationsdaten bezüglich Softwareanwendungen für den Client 105 beziehen. Einträge in dem Datenschema der vorlie­ genden Erfindung sind aus einem eindeutigen Namen, einer Li­ ste von Kindern (Einträgen unter dem gegebenen Eintrag) und einem Satz von Tupeln gebildet. Jedes Tupel enthält einen Eigenschaftsnamen oder einen zugeordneten Eigenschaftswert. Beispielsweise kann bei einem Textverarbeitungsprogramm ein Eigenschaftsname "Font" lauten, während der Eigenschaftswert Palentino lauten kann. In gleicher Weise sind alle Einträge unter dem Namensraum GERÄT 207 Einträge, die sich auf Kon­ figurationsinformationen der Client-Maschine 105, auf der sich das Client-Schema 103 befindet, beziehen. Jeder Eintrag in der Hierarchie kann sowohl als ein Eintrag in einem Un­ terbaum als auch der Wurzel eines Unterbaums, die abstammen­ de Einträge oder Kinder-Knoten aufweist, wirksam sein.
Wie in Fig. 2 gezeigt ist, besitzt jeder Eintrag in dem Baum eine einzelne Mutter und kann mehrere Kinder-Knoten aufwei­ sen. Ein Namensraum, wie z. B. der Namensraum SOFTWARE 209 ist ein speziell designierter Unterbaum, der Einträge ent­ hält, die sich auf Konfigurationsdaten bezüglich der Soft­ ware für einen speziellen Client, wie z. B. den Client 105, beziehen. Wie in Fig. 2 gezeigt ist, sind bei dem beschrie­ benen Ausführungsbeispiel Namensräume immer direkte Abkömm­ linge eines Wurzeleintrags 201, der auch als eine Superwur­ zel bezeichnet wird. Bei anderen bevorzugten Ausführungsbei­ spielen können Namensräume in anderen Ebenen in der Hierar­ chie definiert sein, und müssen nicht direkt von der Wurzel 208 abstammen. Die Standardnamensräume des JSD-Schema-Client werden während der Anlauf- oder Boot-Prozedur des Client- Computers erzeugt. Jeder der Namensräume ist bei dem be­ schriebenen Ausführungsbeispiel bei allen Implementierungen der Java-Plattform verfügbar. Die sechs Namensräume sind gut bekannte Namensräume, die durch die Java-Plattform initiali­ siert werden. Andere dynamisch aufgebaute Namensräume können zu den Standard-Datenbanknamensräumen nach der Initialisie­ rung hinzugefügt werden.
Beispielsweise enthält der Namensraum SOFTWARE 209 eine Li­ ste von installierten und/oder verfügbaren Systemdiensten, beispielsweise Gerätetreibern, Benutzeranwendungen und Be­ nutzerkonfigurationsinformationen. Der Software-Namensraum ist der einzige beständige Namensraum in dem Client-Schema, dahingehend, daß ein Server eine Backup-Speicherung für alle Einträge in diesem Namensraum liefert. Ein beständiger Na­ mensraum oder Eintrag ist ein Eintrag, der an einem bestän­ digen Speicherort gespeichert werden muß. Ein weiterer Typ eines Namensraums ist ein transienter Namensraum, der auf einem temporären oder flüchtigen Speicher gespeichert werden kann und nicht dauerhaft oder beständig gespeichert werden muß. Ein Beispiel von beständigen Einträgen sind Konfigura­ tionsinformationen, die sich auf Benutzerumgebungen bezie­ hen, die in einem beständigen Speicher gespeichert werden müssen. Wenn sich ein Benutzer anmeldet, muß die letzte ge­ speicherte Umgebung des Benutzers wiedergewonnen werden, so daß er oder sie die Umgebung nicht wieder einstellen muß. Beständige Einträge sind Einträge, die an einem dauerhaften Speicherort gespeichert und von demselben wiedererlangt wer­ den können. Beständige und transiente Namensräume werden statisch getrennt, wenn Namensräume erzeugt werden. Es ist nicht erlaubt, daß sich ein beständiger Eintrag in einem transienten Namensraum befindet, und/oder es ist nicht er­ laubt, daß sich ein transienter Eintrag in einem beständigen Namensraum befindet. Bei dem beschriebenen Ausführungsbei­ spiel werden beständige Einträge auf einem Fern-JSD-Server gespeichert. Bei dem beschriebenen Ausführungsbeispiel exi­ stieren unter dem Namensraum SOFTWARE vier Kategorien: An­ wendung, System, Dienst und Öffentlichkeit. Bei dem be­ schriebenen Ausführungsbeispiel unter Verwendung der Java- Plattform sind einige der Einträge in dem Namensraum SOFT­ WARE unter Verwendung von eindeutigen Java-Namensgebungskon­ ventionen angeordnet, während andere Einträge, die sich nicht auf Java beziehen, Namensgebungskonventionen basierend auf spezifischen Anwendungen aufweisen. Bei dem beschriebe­ nen Ausführungsbeispiel sind Firmennamen, wie z. B. IBM, Sun oder Lotus, Namen wie z. B. com.IBM, com.Sun und com.Lotus gegeben. Diese Firmennamen halten firmenspezifische Informa­ tionen auseinander. Eintragsnamen unter dem Firmennamen sind firmenspezifisch.
Wie beschrieben wurde, ist der Namensraum SOFTWARE 209 der einzige Namensraum der sechs, der bei dem beschriebenen Aus­ führungsbeispiel einen beständigen Speicher aufweist. Die anderen Namensräume, wie z. B. der Namensraum GERÄT 207, be­ sitzen einen transienten Speicher. Einträge in diesen Na­ mensräumen gehen verloren, wenn der Client-Computer abge­ schaltet wird. Dies gilt bei dem beschriebenen Ausführungs­ beispiel, da die fünf transienten Namensräume Daten spei­ chern, die sich spezifisch auf einen Client-Computer bezie­ hen. Bei dem beschriebenen Ausführungsbeispiel enthält der Namensraum SOFTWARE Anwendungskonfigurationsinformationen, die gespeichert werden müssen, nachdem der Computer abge­ schaltet wird.
Unter dem Software-Namensraum befinden sich vier Kategorien: Anwendung, System, Dienst und Öffentlichkeit. Unter Verwen­ dung der Anwendungskategorie als einem Beispiel enthält ein Eintrag com.Netscape 213 den eindeutigen Firmennamen (bei­ spielsweise Netscape), wobei sich unter dem Eintrag com.Net­ scape 213 ein Eintrag für eines der Produkte von Netscape, Netscape Navigator, befindet. Unter dem Eintrag 215 befinden sich firmenspezifische Informationen 217, die sich auf den Netscape Navigator beziehen.
Einträge 219, 221 und 223 sind Einträge für andere Verkäu­ fer, die ebenfalls Einträge besitzen, die ähnlich zu dem Eintrag 215 sind. Bei dem beschriebenen Ausführungsbeispiel spiegelt die Struktur des Geräte-Namensraums 225 den Einga­ be/Ausgabe-Bus und/oder den peripheren Bus und/oder die Vor­ richtung, die auf dem Client vorliegen, wider. In anderen Worten heißt das, daß die physische Anschließbarkeit von Bussen und Geräten als ein Baum von Einträgen dargestellt ist, wobei ein spezieller Bus die Mutter ist und Blatt-Ein­ träge Konfigurationsdaten bezüglich der Geräte enthalten.
In dem Software-Namensraum enthält die Blattknotenebene der Hierarchie Daten 227, die konfigurationsspezifisch sind und abhängig davon, wie die Anwendung, beispielsweise der Nets­ cape Navigator, die spezifischen Daten auf der Blattknoten­ ebene anfordern will, angeordnet sind. Für eine Textverar­ beitungsanwendung würden die Blattknoteneinträge spezifische Informationen enthalten, beispielsweise Font- und Wörter­ buch-Definitionen, sowie weitere Konfigurationsdaten vom Textverarbeitungstyp.
Die Namensräume in der Server-Schema-Komponente der JSD sind beständige Speicherräume; d. h., dieselben bleiben, nachdem der Client-Computer abgeschaltet ist. Bei dem beschriebenen Ausführungsbeispiel existieren zwei Namensräume in dem Ser­ ver-Schema: Maschine und Benutzer. Fig. 3 ist ein Blockdia­ gramm, das eine Struktur eines JSD-Serverschemas gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt. Das­ selbe zeigt den Server-Computer 109 und das Server-Schema 111 von Fig. 1 detaillierter. An der Spitze des n-Weg-Baums befindet sich ein Wurzeleintrag 301, der bei dem beschriebe­ nen Ausführungsbeispiel einen Namensraum CONFIG darstellt. Wie erwähnt wurde, existieren in dem Server-Schema zwei Na­ mensräume. Der Bereich 303 stellt den Maschinen-Namensraum mit einem Maschinenknoten 305 dar. Der Bereich 307 stellt den Benutzernamensraum mit einem Benutzerknoten 309 dar.
Der Maschinennamensraum 303 ist bei dem beschriebenen Aus­ führungsbeispiel aus drei Kategorien gebildet. Bei anderen bevorzugten Ausführungsbeispielen kann der Maschinennamens­ raum 303 mehr oder weniger Unterkategorien aufweisen, abhän­ gig von der Plattform und den Anforderungen des Netzwerks. Die drei Kategorien oder Unterbereiche sind Plattform 311, Identifizierer 313 und Profil 315. Unter Plattform 311 be­ findet sich eine Anzahl von Einträgen, die sich auf spezifi­ sche Computerhersteller beziehen, wie z. B. Sun Microsystems und IBM Corporation.
Der Protokollierungs-Mechanismus oder das -Gerüst für die oben beschriebene Konfigurationsdatenbank der vorliegenden Erfindung ist eine Mehr-Teilprozeß-Aufgabe und kann als eine Hülle oder ein Umschlag um eine Beständig-Speicher-API be­ trachtet werden. Bei dem beschriebenen Ausführungsbeispiel ist die Konfigurationsdatenbank eine JAVA-System-Datenbank, oder JSD, die allgemein zwei Seiten aufweist: eine Client- JSD und eine Server-JSD. Bei anderen bevorzugten Ausfüh­ rungsbeispielen kann die Konfigurationsdatenbank auf anderen Plattformen aufgebaut sein oder kann die Form einer herkömm­ licheren Datenbank oder Dateistruktur annehmen. Eine Bestän­ dig-Speicher-API ermöglicht, daß die Server-JSD, die oben beschrieben ist, ihre Daten in einem beständigen Speicher oder Arbeitsspeicher speichert, von dem verschiedene Typen existieren können.
Wie oben erwähnt wurde, ist der Protokollierungsmechanismus der vorliegenden Erfindung als eine Umschlagebene auf der Beständig-Speicher-API, einer Komponente des Konfigurations­ datenbanksystems, wirksam. Zurückgehend von Fig. 1, die die zwei Komponenten der JSD-Konfigurationsdatenbank des be­ schriebenen Ausführungsbeispiels (d. h. die Client-JSD und die Server-JSD) zeigt, zeigt Fig. 4 einen ähnlichen System­ überblick, der die "Ausgangsverschaltung" des Servers 109 von Fig. 1 zeigt, sowie den Protokollierungsmechanismus in Bezug auf eine Beständig-Speicher-API, gemäß einem Ausfüh­ rungsbeispiel der vorliegenden Erfindung. Mehrere der Blöcke in Fig. 4 sind, zu beschreibenden Zwecken, die gleichen wie diejenigen in den Fig. 1 bis 3. Der Client-Computer 105 ent­ hält eine Client-JSD 103, die detaillierter in Fig. 2 ge­ zeigt ist. Der Client 105 kommuniziert gemäß einem Client/Server-Protokoll 402 mit dem Servercomputer 109. Auf dem Servercomputer 109 befindet sich die Server-JSD 111, die detaillierter in Fig. 3 gezeigt ist. Eine Beständig-Spei­ cher-API 404 ist in der Verschaltung des Servers 109 ge­ zeigt. Die Beständig-Speicher-API 404 ermöglicht, daß die Server-JSD 111 die Daten in der Konfigurationsdatenbank in einem bestimmten physischen Speichermediumtyp speichert. Funktionell mit der Beständig-Speicher-API 404 verknüpft ist ein Protokollierungs-Gerüst oder -Mechanismus 406, das oder der detaillierter nachfolgend beschrieben wird. Konfigura­ tionsdaten werden in verschiedenen Typen von Medien gespei­ chert, die allgemein bei 408 gezeigt sind, beispielsweise Festplattenlaufwerken, Verzeichnisdiensten, Dateisystemen und Datenbanken.
Der Protokollierungsmechanismus 406 erzeugt Protokolldaten 410, die detaillierter nachfolgend beschrieben werden, die in einem beständigen Speicherbereich 412, der von dem be­ ständigen Speichermedium 406 getrennt ist, gespeichert wer­ den. Bei dem beschriebenen Ausführungsbeispiel werden die Protokolldaten 410 getrennt von den tatsächlichen Konfigura­ tionsdaten, die im allgemeinen in dem Speicher 408 gehalten sind, gespeichert und gehalten, wodurch die Möglichkeit des Verlusts aller Konfigurationsdaten aufgrund eines einzelnen Speicher-Speicherungsabsturzes oder -Ausfalls signifikant reduziert wird.
Fig. 5 ist ein Blockdiagramm einer Klassenhierarchie eines Protokollierungsmechanismus' gemäß einem Ausführungsbei­ spiel der vorliegenden Erfindung. Die Klassen und Unterklas­ sen, die bezugnehmend auf Fig. 5 beschrieben werden, sind abstrakte und konkrete Definitionen einer physischen Proto­ kollaufzeichnung, wie sie in einer Protokolldatei gespei­ chert wird, wobei beide in Fig. 6 gezeigt sind. Wenn der Server die Beständig-Speicher-API instantiiert, kann dersel­ be entweder eine bestimmte Klassenhierarchie liefern, oder er kann die vorgegebene Klassenhierarchie, wie sie in Fig. 5 gezeigt ist, verwenden. In jedem Fall handhabt der Server nur ein abstraktes Objekt, das nachfolgend beschrieben wird, was die Hinzufügung konkreter Objekte ermöglicht, solange dieselben der gleichen Schnittstelle oder dem gleichen Ba­ siseintrag folgen. Dieses Merkmal ist einer der Vorteile der Verwendung einer Java-Plattform. Bei anderen bevorzugten Ausführungsbeispielen können andere Objektorientierte Plattformen verwendet werden, um eine Klassenhierarchie zu definieren, um die gleichen Ergebnisse zu erreichen.
Am oberen Ende der Klassenhierarchie 502 befindet sich ein Protokoll-Aufzeichnung-Eintrag 504. Der Eintrag 504 kann auch als ein "Basiseintrag" der Klassenhierarchie 502 be­ zeichnet werden. Derselbe ist eine abstrakte Definition ei­ ner Protokollaufzeichnung und kann als eine API oder Schnittstelle des Protokollierungsgerüsts gesehen werden. Der Protokoll-Aufzeichnung-Eintrag 504 ermöglicht, daß das Protokoll unabhängig von spezifischen Speichermedien ist, da Operationen, oder Transaktionen, als abstrakte JSD-Operation gespeichert werden, im Gegensatz zu einer spezifischen Ope­ ration (beispielweise SCHREIBEN) bezüglich eines spezifi­ schen beständigen Speichers, beispielsweise einer Datei oder Datenbank. Bei einem anderen Ausführungsbeispiel bezüglich einer Erholungsprozedur (die detaillierter später erläutert wird), ist, wenn eine Erholung initiiert wird, dieselbe auf abstrakten Objekten, die durch die Protokollaufzeichnung 504 dargestellt sind, wirksam. Aus der Perspektive des Erho­ lungsmechanismus' als einem Beispiel spielt es keine Rol­ le, welcher Aufzeichnungstyp (EINFÜGEN, LÖSCHEN, AKTUALISIE­ REN usw.) behoben wird, derselbe ist auf der abstrakten De­ finition, oder dem Basiseintrag, wirksam. Die Klasse unter der Protkollaufzeichnung 504 ist eine Protokollwurzelauf­ zeichnung 506, der eine spezifische oder konkrete Darstel­ lung der Protokollaufzeichnung 504 darstellt. Derselbe defi­ niert eine interne Darstellung eines spezifischen Transak­ tionstyps. Unter der Protokollwurzelaufzeichnung 506 befin­ det sich eine Gruppe von Unterklassen, die allgemein bei 508 gezeigt ist. Spezifische Konfigurationsdatenbanktransaktio­ nen, beispielsweise LESEN, SCHREIBEN oder RÜCKGÄNGIGMACHEN wirken auf diese spezifischen Unterklassen. Bei dem be­ schriebenen Ausführungsbeispiel gibt es acht Unterklassen: Protokollanfang 510, Protokollabbruch 512, Protokoll fest­ schreiben 514, Protokoll einfügen 516, Protokoll beseitigen 518, Protokoll-Eigenschaft-Beseitigen 520 und Protokoll- Eigenschaft-Hinzufügen 522. Bei anderen bevorzugten Ausfüh­ rungsbeispielen kann sich eine kleinere oder größere Anzahl von Unterklassen unter der Protokollwurzelaufzeichnung 506 befinden. Ein spezifischer Fall, wo dies auftreten kann, ist detaillierter nachfolgend in dem Fall beschrieben, bei dem ein Server nach dem Anlaufen die vorgegebene Klassenhierar­ chie, die in Fig. 5 beschrieben ist, verwenden kann, oder eine alternative Klassenhierarchie verwenden kann.
Die spezifischen Unterklassen entsprechen den elementaren Operationen, die auf einer Konfigurationsdatenbank durchge­ führt werden können. Die Protokollanfang-Unterklasse 510 ist eine spezifische Darstellung eines Protokolleintrags, der den Beginn oder Anfang einer einzelnen Transaktion anzeigt, welche mehrere oder eine individuelle Operation oder Aktua­ lisierung enthalten kann. Dieser Eintrag wird nachfolgend detaillierter bezugnehmend auf die Fig. 6 und 7 beschrieben. Protokoll-Abbrechen 512 stellt einen Transaktions-Abbruch- Eintrag in dem Protokoll dar, der auftritt, wenn ein Fehl­ schlagen beim Durchführen einer Aktualisierung in einer Transaktion stattfindet. Das "Gegenteil" Protokoll-Abbruch 512 ist Protokoll-Festschreiben 514. Dies stellt einen Ein­ trag in dem Protokoll dar, der anzeigt, daß alle Aktualisie­ rungen, die Teil einer Transaktion waren, in der Konfigura­ tionsdatenbank erfolgreich festgeschrieben oder durchgeführt wurden. Sowohl bei Protokoll-Abbruch 512 als auch bei Proto­ koll-Festschreiben 514 werden Sperren auf Wurzelknoten oder Blattknoten in der Datenbank gelöst und alle wartenden Teil­ prozesse werden benachrichtigt. Protokoll-Einfügen 516 bzw. Protokoll-Beseitigen 518 stellen Einträge dar, die erzeugt werden, wenn ein Knoten in die Datenbank eingefügt wird (beispielsweise existiert ein neuer Benutzer- oder Client- Computer in dem Netzwerk, oder eine neue Benutzergruppe wur­ de erzeugt) bzw. wenn ein Knoten aus der Datenbank gelöscht wird. Es sei in Erinnerung gerufen, daß die Datenbank, auf die hier verwiesen wird, die Server-JSD 111 ist. Wie oben beschrieben wurde, kann ein Knoten mehrere Tupel oder Eigen­ schaften besitzen. Protokoll-Eigenschaft-Beseitigen 520 und Protokoll-Eigenschaft-Hinzufügen 522 stellen Einträge oder Operationen dar, bei denen eine Eigenschaft von einem Knoten gelöscht wird bzw. eine Eigenschaft zu einem Knoten hinzuge­ fügt wird.
Fig. 6 ist eine schematische Darstellung eines Protokolls, das durch den Protokollmechanismus gemäß einem Ausführungs­ beispiel der vorliegenden Erfindung erzeugt und gehalten wird. Bei dem beschriebenen Ausführungsbeispiel wird ein Protokoll durch eine Unix-Datei, die als Gegenstand 602 ge­ zeigt ist, dargestellt. Bei anderen bevorzugten Ausführungs­ beispielen können andere Typen von Dateien oder Datenschema­ ta zum Aufbauen der zugrundeliegenden physischen Darstellung eines Protokolls verwendet werden. Ein neues Protokoll 602 wird jedesmal erzeugt, wenn der Server 109 hochgefahren wird, und kann direkt auf einem Platten- oder Teil-System, auf das der Server zugreifen kann, jedoch getrennt von dem beständigen Speicher, der die tatsächlichen Konfigurations­ daten enthält, gespeichert werden. Ein Feld 604 enthält eine Transaktionsbezeichnung, die einer Transaktion zugewiesen wird, wenn dieselbe erzeugt wird. Bei dem beschriebenen Aus­ führungsbeispiel ist die Transaktionsbezeichnung ein eindeu­ tiger Identifizierer, der für Gruppeneinträge in dem Proto­ koll, die zu der gleichen Transaktion gehören, verwendet wird. Dies ist beispielsweise bei dem Erholungsprozeß des Protokollierungsmechanismus' nützlich.
Wie gezeigt ist, können einzelne Aktualisierungen, die zu der gleichen Transaktion gehören, unter den Protokolleinträ­ gen verstreut sein, da der Protokollierungsmechanismus ein Mehr-Teilprozeß-Verfahren ist. Das Transaktionsbezeichnungs­ feld 604 ist mit einem Operationsfeld 606 verknüpft, wie durch Pfeile 608 gezeigt ist. Das Feld 606 enthält den Ope­ rationstyp, der bei einer speziellen Aktualisierung durch­ geführt wird. Diese wurden bezüglich der Unterklassen 508 in Fig. 5 erläutert. Jeder Eintrag in dem Protokoll 602 ist ein Fall von einer der sieben Unterklassen, die in Fig. 5 ge­ zeigt sind, und ist abstrakt durch die Protokollaufzeichnung 504 definiert. Dem Feld 606 folgt ein Datenfeld 610, das die tatsächlichen Daten enthält, wenn existent, die der spezi­ fischen Operation zugeordnet sind. Für die ANFANG-Operation sind die Daten in dem Feld 610 der Name des Wurzel- oder des Mutter-Knotens des Unterbaums, auf den die Transaktion einwirken wird. Für die FESTSCHREIBEN- und ABBRUCH-Operatio­ nen existieren keine Daten in dem Feld 610, da diese Opera­ tionen primär das Lösen von Sperren auf Knoten in der Da­ tenbank nach dem Durchführen von EINFÜGUNGS- und BESEITI­ GUNGS-Operationen beinhalten.
Fig. 7 ist ein Flußdiagramm einer Transaktion, die einen Eintrag in einem Protokoll erzeugt, gemäß einem Ausführungs­ beispiel der vorliegenden Erfindung. In einem Schritt 702 initiiert ein Benutzer eine Transaktion, die auf die Konfi­ gurationsdatenbank gerichtet ist. Bei einem Beispiel unter Verwendung des beschriebenen Ausführungsbeispiels kann dies das Einfügen eines neuen Benutzers in den Benutzernamensraum 309 und unter dem Wurzeleintrag 317 der Server-JSD, wie in Fig. 3 gezeigt ist, sein. Zu diesem Zeitpunkt wird eine Transaktionsbezeichnung oder ein Identifizierer der Transak­ tion zugewiesen. In einem Schritt 704 wird ein ANFANG-Ein­ trag erzeugt und in das momentane Protokoll eingefügt, um anzuzeigen, daß eine neue Transaktion initiiert wurde, und daß derselben eines Transaktionsbezeichnung zugewiesen wur­ de. Das Datenfeld 610 kann "BENUTZER" enthalten, wenn dies der Name des Wurzelknotens ist, auf den durch die Transak­ tion eingewirkt wird. Zu diesem Zeitpunkt wurde hinsichtlich der Konfigurationsdatenbank noch nichts ausgeführt. In einem Schritt 706 wird der Aktualisierungseintrag in das Protokoll geschrieben. Beispielsweise wird ein EINFÜGEN-Eintrag mit der gleichen Transaktionsbezeichnung wie der ANFANG-Eintrag, der den Namen des Benutzers und alle anderen Informationen, die in einem BENUTZER-Knoten in dem Datenfeld 610 enthalten sind, in das Protokoll geschrieben. In einem Schritt 708 wird die Aktualisierung der Konfigurationsdatenbank durchge­ führt. Unter Verwendung des EINFÜGEN-Beispiels wird ein Kno­ ten, der den neuen Benutzer darstellt, in einen BENUTZER-Un­ terbaum (oder einen anderen geeigneten Unterbaum) der Konfi­ gurationsdatenbank eingefügt. Bei dem beschriebenen Ausfüh­ rungsbeispiel wird die Aktualisierung in dem Protokoll durchgeführt, bevor dieselbe in der Server-JSD durchgeführt wird, um in dem Fall, in dem ein Problem auftritt, nachdem die Aktualisierung in der Datenbank durchgeführt wurde, eine Erholung der Datenbank zu ermöglichen. Wenn das Protokoll zuerst aktualisiert wird, besitzt das Protokoll eine Auf­ zeichnung darüber, was durchzuführen versucht wurde, und kann die Datenbank, wenn notwendig, rekonstruieren, wenn ein Problem auftritt. Bei anderen bevorzugten Ausführungsbei­ spielen kann die Reihenfolge der Aktualisierungen des Proto­ kolls und der Datenbank variieren. Beispielsweise können Ak­ tualisierungen zuerst in der Datenbank durchgeführt werden oder können in Protokoll und Datenbank gleichzeitig durchge­ führt werden.
In einem Schritt 710 überprüft die Konfigurationsdatenbank, ob die Transaktion abgebrochen wurde. Dies kann aus ver­ schiedenen Gründen auftreten. Unter Verwendung des Benut­ zer-EINFÜGEN-Beispiels kann ein Benutzerknoten mit dem exakt gleichen Namen und Profil bereits in der Datenbank existie­ ren, wodurch ein Transaktionsabbruch bewirkt wird. Wenn dies der Fall ist, wird eine ABBRUCH-Aufzeichnung in das Proto­ koll eingegeben, wiederum mit der gleichen Transaktionsbe­ zeichnung, die ANFANG zugewiesen ist, jedoch ohne Daten in dem Datenfeld 610, woraufhin das Protokollierungsverfahren für die Transaktion abgeschlossen ist. Wenn die Transaktion nicht abgebrochen wurde, springt die Steuerung zu einem Schritt 714, in dem die Datenbank bestimmt, ob alle Aktua­ lisierungen, die für die Transaktion notwendig sind, abge­ schlossen wurden. Wenn weitere Aktualisierungen durchgeführt werden müssen, um die Transaktion abzuschließen, springt die Steuerung zu dem Schritt 706 zurück, in dem die nächste lo­ gische Aktualisierung folgend den Schritten 706 bis 710 durchgeführt wird. Wenn die Transaktion abgeschlossen ist, wird in einem Schritt 716 ein FESTSCHREIBEN-Eintrag in das Protokoll geschrieben, was anzeigt, daß eine Transaktion abgeschlossen wurde. Zu diesem Zeitpunkt ist das Verfahren des Protokollierens der Aktualisierungen, die die Transak­ tion bilden, die im Schritt 702 initiiert wurde, erledigt.
Fig. 8 ist ein Flußdiagramm eines Server-Anlaufverfahrens, das zeigt, wie sich dasselbe auf den Protokollierungsmecha­ nismus gemäß einem Ausführungsbeispiel der vorliegenden Er­ findung bezieht. Sobald ein Server, beispielsweise der Ser­ ver 111 von Fig. 1, eingeschaltet oder hochgefahren wird, werden bestimmte elementare Schritte bezüglich des Proto­ kollierungsmechanismus' durchgeführt. In einem Schritt 802 wird eine Erholungsprozedur durch das Server-Verfahren aus­ geführt, um die Datenbank in einen konsistenten Zustand zu bringen. Bei einem normalen Ausschalten des Servers wird erwartet, daß die Datenbank in einem konsistenten Zustand ist, wobei in diesem Fall die Erholungsprozedur nichts "re­ parieren" muß. Dieser Schritt ist detaillierter in Fig. 9 gezeigt. In einem Schritt 804 sichert der Server das vorhe­ rige Protokoll in einem Backup-Speicher. Die Anzahl von Backups vorheriger Protokolle, die gehalten werden, wird durch das System oder den Netzwerkadministrator bestimmt. In einem Schritt 806 erzeugt der Server ein neues Protokoll, um Einträge für die beginnende Sitzung zu halten. Bei dem be­ schriebenen Ausführungsbeispiel umfaßt dies das Erzeugen ei­ ner neuen Unix-Datei, die sich typischerweise auf einem fe­ sten Laufwerk befindet, auf die der Server zugreifen kann.
Ein Erholungsmechanismus wird verwendet, wenn der Server neu gestartet wird, um die Konfigurationsdatenbank in einen kon­ sistenten Zustand zu bringen, und muß normalerweise nur bis zu dem Punkt zurückgehen, oder das Protokoll abtasten, zu dem der Server das letzte Mal gestartet wurde. Der Erho­ lungsmechanismus kann die gesamte Konfigurationsdatenbank rekonstruieren, wenn es notwendig ist, da das Protokoll nicht nur die durchgeführte Operation, sondern auch die Da­ ten, die sich auf die Transaktion beziehen, enthält. Dies ist möglich, da das Protokoll eine Klassenhierarchie verwen­ det und die Operationen als abstrakte JSD-Operationen spei­ chert. Folglich wirkt der Erholungsmechanismus auf abstrak­ ten Objekten, d. h. der Protokollaufzeichnung 504, und ist nicht damit befaßt, von welchem Typ die Protokollaufzeich­ nung ist.
Fig. 9 ist ein Flußdiagramm eines Erholungsmechanismus' für eine Konfigurationsdatenbank gemäß einem Ausführungsbei­ spiel der vorliegenden Erfindung. In einem Schritt 902 liest der Protokollierungsmechanismus alle Einträge, die in dem momentanen Protokoll gefunden werden. In einem Schritt 904 werden alle Einträge in dem Protokoll entsprechend der Transaktionsbezeichnung kombiniert oder gruppiert. Wie oben beschrieben wurde, besitzen alle Aktualisierungen oder Ope­ rationen für die gleiche Transaktion die gleiche Transak­ tionsbezeichnung, beginnend mit der ANFANG-Operation für ei­ ne Transaktion und enden mit entweder einem FESTSCHREIBEN oder einem ABBRUCH für diese Transaktion. Alle Operationen in dieser Transaktion werden in der Reihenfolge in das Pro­ tokoll eingeführt, in der dieselben durchgeführt werden, können jedoch, und werden höchstwahrscheinlich, mit Opera­ tionen von anderen Transaktionen in der Datenbank verschach­ telt sein. In dem Schritt 904 werden alle Einträge gruppiert und kraft des Protokollierungsverfahrens nach der Transak­ tionsbezeichnung oder dem Identifizierer sortiert. In einem Schritt 906 überprüft das Protokollierungsverfahren, ob für jede Transaktion ein FESTSCHREIBEN- oder ABBRUCH-Eintrag existiert. Wenn dies der Fall ist, werden die Einträge für diese Transaktion in einem Schritt 908 beseitigt, da dies anzeigt, daß die Transaktion wirksam abgeschlossen war, und die Datenbank die Daten von dieser Transaktion richtig wi­ derspiegelt, wobei das Erholungsverfahren für diese Trans­ aktion abgeschlossen ist. Zu diesem Zeitpunkt springt die Steuerung zu dem Schritt 906 zurück, in dem die nächste Transaktion überprüft wird. Wenn für eine Transaktion ein ABBRUCH- oder FESTSCHREIBEN-Eintrag nicht gefunden wird, führt der Protokollierungsmechanismus eine "Rückgängig­ mach"-Operation bezüglich jedes der Einträge in dieser Transaktionsgruppe in einem Schritt 910 durch. Dies zeigt an, daß die Operationen für diese Transaktion nicht sinnvoll beendet wurden, weshalb die Daten, die sich auf diese Opera­ tionen beziehen, in der Konfigurationsdatenbank wahrschein­ lich nicht richtig widergespiegelt werden. Die Rückgängig­ mach-Operation kehrt im wesentlichen jede Operation, die in der Transaktion durchgeführt wird, um, oder führt eine kom­ plementäre Operation durch. Wenn folglich ein Eintrag ein EINFÜGEN eines Knotens anzeigt, der den Text "John E. Smith" enthält, wäre die komplementäre Operation ein BESEITIGEN des Knotens, wodurch der Knoten und der Text "John E. Smith" aus der Konfigurationsdatenbank gelöscht werden. Diese Rückgän­ gigmach-Operationen werden auf jedem Eintrag in der Transak­ tion durchgeführt, in der umgekehrten Reihenfolge, in der dieselben durchgeführt wurden, bis ein ANFANG-Eintrag er­ reicht wird.
Obwohl die vorhergehende Erfindung detailliert zu Zwecken eines besseren Verständnisses beschrieben wurde, ist es of­ fensichtlich, daß bestimmte Änderungen und Modifikationen innerhalb des Schutzbereichs der beigefügten Ansprüche durchgeführt werden können. Ferner sollte bemerkt werden, daß alternative Möglichkeiten zum Implementieren sowohl des Verfahrens als auch der Vorrichtung der vorliegenden Erfin­ dung existieren. Obwohl die Konfigurationsdatenbank bei­ spielsweise als eine Java-Systemdatenbank beschrieben wurde, kann dieselbe auf anderen objektorientierten Plattformen als Java implementiert werden und noch die Konzepte nutzen, die erfindungsgemäß hierin beschrieben sind.

Claims (4)

1. Mehr-Teilprozeß-Protokollierungsverfahren zum Protokol­ lieren von Transaktionen in einer Konfigurationsdaten­ bank, wobei das Verfahren folgende Schritte aufweist:
Empfangen (702) einer Datenbanktransaktion, die auf die Konfigurationsdatenbank gerichtet ist, wobei die Daten­ banktransaktion eine oder mehrere spezifische Aktuali­ sierungen, die die Konfigurationsdatenbank betreffen, aufweist;
Einfügen (704) eines Anfangseintrags, der der Daten­ banktransaktion zugeordnet ist, in eine Protokolldatei, wobei der Anfangseintrag einen Transaktionsidentifizie­ rer aufweist;
Einfügen (706) von einem oder mehreren nachfolgenden Einträgen in die Protokolldatei, entsprechend einer oder mehreren spezifischen Aktualisierungen der Konfi­ gurationsdatenbank, die der Transaktion zugeordnet sind, wobei der nachfolgende Eintrag den Transaktions­ identifizierer und Daten, die sich auf die spezifische Aktualisierung beziehen, enthält;
Bestimmen (714), ob jede der einen oder mehreren spe­ zifischen Aktualisierungen der Konfigurationsdatenbank erfolgreich abgeschlossen wurde; und
Einfügen (716) eines Schlußeintrags in die Protokoll­ datei entsprechend der Bestimmung, ob jede der einen oder mehreren spezifischen Aktualisierungen erfolgreich abgeschlossen wurde.
2. Vorrichtung zur Mehr-Teilprozeß-Protokollierung von Transaktionen in einer Konfigurationsdatenbank, wobei die Vorrichtung folgende Merkmale aufweist:
eine Transaktions-Eingabekomponente zum Empfangen (702) einer Datenbanktransaktion, die auf die Konfigurations­ datenbank gerichtet ist, wobei die Datenbanktransaktion eine oder mehrere spezifische Aktualisierungen, die die Konfigurationsdatenbank betreffen, aufweist;
eine Protokolleintrag-Komponente zum Einfügen (704) ei­ nes Anfangseintrags in eine Protokolldatei, wobei der Anfangseintrag einen Transaktionsidentifizierer auf­ weist, wobei der Anfangseintrag der Datenbanktransak­ tion zugeordnet ist, und zum Einfügen (706) von einem oder mehreren nachfolgenden Einträgen in die Protokoll­ datei, entsprechend einer oder mehreren spezifischen Aktualisierungen der Konfigurationsdatenbank, die der Datenbank zugeordnet sind, wobei der nachfolgende Ein­ trag den Transaktionsidentifizierer und Daten, die sich auf die spezifische Aktualisierung beziehen, enthält, und zum Einfügen (716) eines Schlußeintrags in die Pro­ tokolldatei entsprechend einer Bestimmung (714), ob je­ de der einen oder mehreren spezifischen Aktualisierun­ gen vollständig abgeschlossen ist; und
einen Aktualisierungsdetektor zum Bestimmen (714), ob jede der einen oder mehreren spezifischen Aktualisie­ rungen der Konfigurationsdatenbank erfolgreich abge­ schlossen wurde.
3. Computer-lesbares Medium, das Programmierbefehle ent­ hält, die angeordnet sind, um eine Mehr-Teilprozeß-Pro­ tokollierung von Transaktionen in einer Konfigurations­ datenbank durchzuführen, wobei das Computer-lesbare Me­ dium Programmierinstruktionen für folgende Schritte aufweist:
Empfangen (702) einer Datenbanktransaktion, die auf die Konfigurationsdatenbank gerichtet ist, wobei die Daten­ banktransaktion eine oder mehrere spezifische Aktuali­ sierungen, die die Konfigurationsdatenbank betreffen, aufweist;
Einfügen (704) eines anfänglichen Eintrags, der der Da­ tenbanktransaktion zugeordnet ist, in eine Protokollda­ tei, wobei der anfängliche Eintrag einen Transaktions­ identifizierer aufweist;
Einfügen (706) von einem oder mehreren nachfolgenden Einträgen in die Protokolldatei, entsprechend einer oder mehreren spezifischen Aktualisierungen der Konfi­ gurationsdatenbank, die der Transaktion zugeordnet sind, wobei der nachfolgende Eintrag den Transaktions­ identifizierer und Daten, die sich auf die spezifische Aktualisierung beziehen, enthält;
Bestimmen (714), ob jeder der einen oder mehreren spe­ zifischen Aktualisierungen der Konfigurationsdatenbank erfolgreich abgeschlossen wurde; und
Einfügen (716) eines Schlußeintrags in die Protokoll­ datei entsprechend der Bestimmung, ob jede der einen oder mehreren spezifischen Aktualisierungen erfolgreich abgeschlossen wurde.
4. Computerdatensignal, das in einer Trägerwelle verkör­ pert ist und Sequenzen von Instruktionen darstellt, die angeordnet sind, um eine Mehr-Teilprozeß-Protokollie­ rung von Transaktionen in einer Konfigurationsdatenbank durchzuführen, wobei die Sequenz von Instruktionen fol­ gende umfaßt:
Empfangen (702) einer Datenbanktransaktion, die auf die Konfigurationsdatenbank gerichtet ist, wobei die Daten­ banktransaktion eine oder mehrere spezifische Aktuali­ sierungen, die die Konfigurationsdatenbank betreffen, aufweist;
Einfügen (704) eines Anfangseintrags, der der Daten­ banktransaktion zugeordnet ist, in eine Protokolldatei, wobei der Anfangseintrag einen Transaktionsidentifizie­ rer aufweist;
Einfügen (706) von einem oder mehreren nachfolgenden Einträgen in die Protokolldatei, entsprechend einer oder mehreren spezifischen Aktualisierungen der Konfi­ gurationsdatenbank, die der Transaktion zugeordnet sind, wobei der nachfolgende Eintrag den Transaktions­ identifizierer und Daten, die sich auf die spezifische Aktualisierung beziehen, aufweist;
Bestimmen (714), ob jede der einen oder mehreren spezi­ fischen Aktualisierungen der Konfigurationsdatenbank erfolgreich abgeschlossen wurde; und
Einfügen (716) eines Schlußeintrags in die Protokoll­ datei entsprechend der Bestimmung, ob jede der einen oder mehreren spezifischen Aktualisierungen erfolgreich abgeschlossen wurde.
DE19926116A 1998-06-29 1999-06-08 Mehr-Teilprozeß-Protokollierung in einer Konfigurationsdatenbank Ceased DE19926116A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/107,048 US6119129A (en) 1998-05-14 1998-06-29 Multi-threaded journaling in a configuration database

Publications (1)

Publication Number Publication Date
DE19926116A1 true DE19926116A1 (de) 1999-12-30

Family

ID=22314571

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19926116A Ceased DE19926116A1 (de) 1998-06-29 1999-06-08 Mehr-Teilprozeß-Protokollierung in einer Konfigurationsdatenbank

Country Status (3)

Country Link
US (1) US6119129A (de)
DE (1) DE19926116A1 (de)
GB (1) GB2341957B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10139889C1 (de) * 2001-08-20 2003-01-30 Orga Kartensysteme Gmbh Computersystem, Verfahren und digitales Speichermedium mit computerlesbaren Mitteln zum Ansprechen eines Chipkartenlesegeräts

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10505690A (ja) * 1994-09-01 1998-06-02 データクラフト テクノロジーズ プロプライエタリー リミテッド X.500システムおよび方法
US7315860B1 (en) * 1994-09-01 2008-01-01 Computer Associates Think, Inc. Directory service system and method with tolerance for data entry storage and output
US8065338B2 (en) 1995-08-30 2011-11-22 Computer Associates Think, Inc. Directory searching methods and systems
US7631012B2 (en) 1997-05-22 2009-12-08 Computer Associates Think, Inc. System and method of operating a database
US6714935B1 (en) * 1998-09-21 2004-03-30 Microsoft Corporation Management of non-persistent data in a persistent database
US6564216B2 (en) * 1998-10-29 2003-05-13 Nortel Networks Limited Server manager
US6611844B1 (en) * 1999-02-19 2003-08-26 Sun Microsystems, Inc. Method and system for java program storing database object entries in an intermediate form between textual form and an object-oriented form
US6606632B1 (en) * 1999-02-19 2003-08-12 Sun Microsystems, Inc. Transforming transient contents of object-oriented database into persistent textual form according to grammar that includes keywords and syntax
US6609130B1 (en) * 1999-02-19 2003-08-19 Sun Microsystems, Inc. Method for serializing, compiling persistent textual form of an object-oriented database into intermediate object-oriented form using plug-in module translating entries according to grammar
US6728723B1 (en) * 1999-10-12 2004-04-27 Cisco Technology, Inc. Method and system for verifying configuration transactions managed by a centralized database
US6952703B1 (en) 1999-10-12 2005-10-04 Cisco Technology, Inc. Subsystem application notification method in a centralized router database
US6704752B1 (en) * 1999-10-12 2004-03-09 Cisco Technology, Inc. Method and system for executing, tracking and restoring temporary router configuration change using a centralized database
AUPQ428499A0 (en) 1999-11-26 1999-12-23 Computer Associates Pty. Ltd. A method and apparatus for operating a data base
US7162537B1 (en) * 2000-01-06 2007-01-09 Cisco Technology, Inc. Method and system for externally managing router configuration data in conjunction with a centralized database
US6658596B1 (en) * 2000-03-13 2003-12-02 International Business Machines Corporation Automated queue recovery using element- based journaling
US7363633B1 (en) * 2000-04-24 2008-04-22 Microsoft Corporation Registering and storing dependencies among applications and objects in a computer system and communicating the dependencies to a recovery or backup service
US7487152B1 (en) 2000-05-31 2009-02-03 International Business Machines Corporation Method for efficiently locking resources of a global data repository
US6965892B1 (en) * 2000-05-31 2005-11-15 International Business Machines Corporation Method, system and program products for concurrently accessing a global data repository by multithreaded clients
US7246123B2 (en) * 2000-08-04 2007-07-17 Carr Scott Software Incorporated Automatic transaction management
US20020152475A1 (en) * 2001-02-07 2002-10-17 Istvan Anthony F. User model for interactive television system
US20020184351A1 (en) * 2001-02-07 2002-12-05 Istvan Anthony F. Information access in user model-based interactive television
US20020152461A1 (en) * 2001-02-07 2002-10-17 Istvan Anthony F. Coordination of favorites among disparate devices in an interactive video casting system
US20020152472A1 (en) * 2001-02-07 2002-10-17 Istvan Anthony F. Access device interface for user model-based interactive television
US6847983B2 (en) 2001-02-28 2005-01-25 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of open files
US6985915B2 (en) 2001-02-28 2006-01-10 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of files
US7171410B1 (en) * 2001-06-02 2007-01-30 Redback Networks, Inc. Fault tolerant network element
GB2377512B (en) * 2001-07-04 2005-03-16 Kenny Information Systems Dev Data integrity and traceability in data processing systems
US6954877B2 (en) * 2001-11-29 2005-10-11 Agami Systems, Inc. Fault tolerance using logical checkpointing in computing systems
JP4165747B2 (ja) * 2003-03-20 2008-10-15 株式会社日立製作所 記憶システム、制御装置及び制御装置のプログラム
US7685188B2 (en) * 2004-01-23 2010-03-23 Microsoft Corporation Automated generation of computer-executable compensation procedures for previously executed methods
US7478115B2 (en) * 2005-06-13 2009-01-13 Microsoft Corporation System and method for database and filesystem coordinated transactions
US8572040B2 (en) * 2006-04-28 2013-10-29 International Business Machines Corporation Methods and infrastructure for performing repetitive data protection and a corresponding restore of data
US20080281876A1 (en) * 2007-05-10 2008-11-13 Hitachi, Ltd. Methods and apparatus to recover data and configuration of storage system
US8209675B2 (en) * 2007-07-25 2012-06-26 Sap Ag Method and system for customizing a software application
CN101442458B (zh) * 2007-11-23 2011-03-23 深圳富泰宏精密工业有限公司 序列式数据发送系统及方法
US8762347B1 (en) * 2008-09-22 2014-06-24 Symantec Corporation Method and apparatus for processing transactional file system operations to enable point in time consistent file data recreation
US8316046B2 (en) * 2010-04-07 2012-11-20 Apple Inc. Journaling on mobile devices
US8966324B2 (en) 2012-06-15 2015-02-24 International Business Machines Corporation Transactional execution branch indications
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US9442737B2 (en) 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US9317460B2 (en) 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US9367323B2 (en) 2012-06-15 2016-06-14 International Business Machines Corporation Processor assist facility
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US8880959B2 (en) * 2012-06-15 2014-11-04 International Business Machines Corporation Transaction diagnostic block
US9361115B2 (en) 2012-06-15 2016-06-07 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US10769163B2 (en) * 2017-09-25 2020-09-08 Splunk Inc. Cross-system nested journey monitoring based on relation of machine data
US10678804B2 (en) 2017-09-25 2020-06-09 Splunk Inc. Cross-system journey monitoring based on relation of machine data
US10885049B2 (en) 2018-03-26 2021-01-05 Splunk Inc. User interface to identify one or more pivot identifiers and one or more step identifiers to process events
US10909128B2 (en) 2018-03-26 2021-02-02 Splunk Inc. Analyzing journey instances that include an ordering of step instances including a subset of a set of events
US10909182B2 (en) 2018-03-26 2021-02-02 Splunk Inc. Journey instance generation based on one or more pivot identifiers and one or more step identifiers
US10997192B2 (en) 2019-01-31 2021-05-04 Splunk Inc. Data source correlation user interface
US10754638B1 (en) 2019-04-29 2020-08-25 Splunk Inc. Enabling agile functionality updates using multi-component application
US11151125B1 (en) 2019-10-18 2021-10-19 Splunk Inc. Efficient updating of journey instances detected within unstructured event data
US11809447B1 (en) 2020-04-30 2023-11-07 Splunk Inc. Collapsing nodes within a journey model
US11741131B1 (en) 2020-07-31 2023-08-29 Splunk Inc. Fragmented upload and re-stitching of journey instances detected within event data
US11880803B1 (en) * 2022-12-19 2024-01-23 Tbk Bank, Ssb System and method for data mapping and transformation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5706453A (en) * 1995-02-06 1998-01-06 Cheng; Yang-Leh Intelligent real-time graphic-object to database linking-actuator for enabling intuitive on-screen changes and control of system configuration
US5870757A (en) * 1995-09-11 1999-02-09 Sun Microsystems, Inc. Single transaction technique for a journaling file system of a computer operating system
US6148346A (en) * 1996-06-20 2000-11-14 Peerless Systems Imaging Products, Inc. Dynamic device driver
JP3672208B2 (ja) * 1996-07-02 2005-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 階層化トランザクション処理方法
WO1998031124A1 (en) * 1997-01-10 1998-07-16 Hanson Gordon L Reverse proxy server
US6092213A (en) * 1997-09-30 2000-07-18 Tandem Computers Incorporated Fault tolerant method of maintaining and distributing configuration information in a distributed processing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10139889C1 (de) * 2001-08-20 2003-01-30 Orga Kartensysteme Gmbh Computersystem, Verfahren und digitales Speichermedium mit computerlesbaren Mitteln zum Ansprechen eines Chipkartenlesegeräts

Also Published As

Publication number Publication date
GB9911496D0 (en) 1999-07-14
GB2341957B (en) 2000-09-06
US6119129A (en) 2000-09-12
GB2341957A (en) 2000-03-29

Similar Documents

Publication Publication Date Title
DE19926116A1 (de) Mehr-Teilprozeß-Protokollierung in einer Konfigurationsdatenbank
DE19926115B4 (de) Transaktionshandhabung in einer Konfigurationsdatenbank
DE60025043T2 (de) Vorrichtung und verfahren mit verwendung von anwendungabhängigkeitsinformation für eine sicherungskopieherstellung in einem computersystem
DE69906488T2 (de) Verfahren zur Synchronisierung eines Datenbankschemas mit seiner Darstellung in einem objekt-orientierten Repository
DE60025488T2 (de) Vorrichtung und verfahren zur allgemeinen koordination und verwaltung von mehrfachen schnappschussanbietern
EP1088280B1 (de) Verfahren und system zur schnellen speicherresidenten verarbeitung von transaktionsdaten
DE69730657T2 (de) Verfahren und System für gleichmässigen Zugriff auf mehrere Verzeichnisdienste
US4498145A (en) Method for assuring atomicity of multi-row update operations in a database system
EP0996880B1 (de) Verfahren im bezug auf datenbanken
DE602004010872T2 (de) Systeme und Verfahren zur Dateisicherung
DE69931256T2 (de) Verfahren und system zum zurückholen einer elektronischen akte
DE69938547T2 (de) Verfahren, system, gerät und programm zur verteilung und einführung von software-upgrade
DE112020000749T5 (de) Indexerstellung für sich entwickelnde umfangreiche Datensätze in Hybriden Transaktions- und Analysenverarbeitungssystemen mit mehreren Mastern
DE102007015385A1 (de) Verfahren und Vorrichtung zur Wiedergewinnung von Speicherplatz in Speichern
DE202014010938U1 (de) Omega-Namen: Namenserzeugung und -ableitung
AT1751U1 (de) Koordinations-system
DE10039537A1 (de) Verbesserung der mehrdimensionalen Umstrukturierung beim Hinzufügen oder Entfernen von Dimensionen und Dimensionsmitgliedern
DE602004013397T2 (de) Verfahren und Apparat zum Verschieben von Daten zwischen Speichersystemen
WO2002021327A2 (de) Verfahren und computerprogramm zur erzeugung von dateien für ein datenbanksystem für ein betriebswirtschaftliches anwendungsprogramm
DE102021125630A1 (de) Datensynchronisation in einem datenanalysesystem
DE112019000402T5 (de) Chronologisch geordnetes out-of-place-aktualisierungs-schlüssel-wert-speichersystem
DE10115722A1 (de) Effiziente Echtzeitverwaltung von Speicherbetriebsmitteln
DE69709918T2 (de) Relationelle datenbank die in einer speicherstruktur compiliert und gespeichert ist
DE112021003031T5 (de) Archivieren von nur-beschleuniger-datenbanktabellen
EP0097239B1 (de) Verfahren und Gerät zur Datarückgewinnung in einem Verarbeitungssystem

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8128 New person/name/address of the agent

Representative=s name: HOFFMANN & EITLE, 81925 MUENCHEN

8125 Change of the main classification

Ipc: G06F 1730

8131 Rejection