EP1959639A1 - Fail safe system for managing client-server communication - Google Patents

Fail safe system for managing client-server communication Download PDF

Info

Publication number
EP1959639A1
EP1959639A1 EP20080009257 EP08009257A EP1959639A1 EP 1959639 A1 EP1959639 A1 EP 1959639A1 EP 20080009257 EP20080009257 EP 20080009257 EP 08009257 A EP08009257 A EP 08009257A EP 1959639 A1 EP1959639 A1 EP 1959639A1
Authority
EP
Grant status
Application
Patent type
Prior art keywords
broker
primary
backup
journal
system
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.)
Granted
Application number
EP20080009257
Other languages
German (de)
French (fr)
Other versions
EP1959639B1 (en )
Inventor
Kerstin Bein
Wolfgang Schmidt
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.)
Software AG
Original Assignee
Software AG
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

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/28Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network
    • H04L67/2861Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network for providing operational support to end devices by emulation, e.g. when they are unavailable, or by off-loading in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/28Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network
    • H04L67/2866Architectural aspects
    • H04L67/288Distributed intermediate devices, i.e. intermediate device interaction with other intermediate devices on the same level
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/1095Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for supporting replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes or user terminals or syncML
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/28Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Application independent communication protocol aspects or techniques in packet data networks
    • H04L69/40Techniques for recovering from a failure of a protocol instance or entity, e.g. failover routines, service redundancy protocols, protocol state redundancy or protocol service redirection in case of a failure or disaster recovery

Abstract

The system has a primary broker (20) and a backup-broker (30). The primary broker has a journal with process entries, which changes the condition of a volatile memory and sends these entries of the journal at the backup- broker. The condition of another volatile memory is essentially identical with the condition of the former volatile memory. An independent claim is also included for computer readable medium with instructions for provision of system.

Description

    1. Technischer Bereich 1. Technical Field
  • Die vorliegende Erfindung betrifft ein ausfallsicheres System zum Verwalten von Client-Server-Kommunikation. The present invention relates to a fail-safe system to manage client-server communication.
  • 2. Der Stand der Technik 2. The prior art
  • Client-Server-Netzwerke sind heutzutage allgegenwärtig in der Datenverarbeitung. Client-server networks are everywhere these days in data processing. Als ein Client wird dabei jede Art von Teilnehmer an dem Netzwerk betrachtet, der eine Anfrage nach einem Dienst stellt, der im Netzwerk bereitgestellt wird. As a client doing any kind of participant in the network is considered that makes a request for a service that is provided on the network. Ein Server ist ein Teilnehmer eines Netzwerks, der einen Dienst für Clients im Netzwerk bereitstellt. A server is a subscriber of a network that provides a service for clients in the network. Beispielsweise kann es sich bei einem Client um ein Anwendungsprogramm handeln, das Daten von einem Server in Form einer Datenbank anfordert. For example, it may be for a client to an application program that requests data from a server in the form of a database.
  • Die Verwaltung der Kommunikation zwischen einer Vielzahl von Clients und Servern gestaltet sich insbesondere dann schwierig, wenn die Teilnehmer des Netzwerks heterogen sind, dh unterschiedliche Software und / oder Hardware verwenden. Managing the communication between a plurality of clients and servers designed especially difficult when the participants of the network are heterogeneous, that use different software and / or hardware. Beispielsweise gibt es eine Vielzahl von unterschiedlichen Betriebssystemen und Netzwerkprotokollen, die von den Clients und / oder den Servern eines Netzwerks verwendet werden können. For example, there are a variety of different operating systems and network protocols that can be used by the clients and / or servers on a network. Auch auf Seiten der Hardware sind Variationen sowohl bei den Clients, als auch bei den Servern und der Netzwerkarchitektur denkbar. Also on the hardware side are variations possible in both the clients and the servers and the network architecture.
  • Zur Überwindung dieser Schwierigkeiten ist es aus dem Stand der Technik bekannt, die Kommunikation zwischen dem / den Client(s) und dem / den Server(n) eines Netzwerks mit Hilfe eines Servicemaklers bzw. Brokers zu verwalten, so wie er in der To overcome these difficulties, it is known from the prior art, the communication between the / client (s) and / server (s) to manage a network with the help of a service agent or broker, as he in EP 0 600 235 B1 EP 0600235 B1 der Anmelderin offenbart ist. the Applicant disclosed. Fig. 1 Fig. 1 zeigt schematisch die aus der schematically shows consisting of EP 0 600 235 B1 EP 0600235 B1 bekannte Anordnung des Brokers 20 in einem heterogenen Netzwerk aus Clients 10a-d und Servern 12a - d. known arrangement of the broker 20 in a heterogeneous network of clients and servers 10a-d 12a - d.
  • Da der Broker für die Kommunikation zwischen den verschiedenen Teilnehmern des Netzwerks von zentraler Bedeutung ist, kann sein Ausfall zu einem unerwünschten Datenverlust führen. Since the broker for the communication between the various participants of the network is of central importance, its failure can lead to an undesired data loss. Es ist daher erforderlich, einen Mechanismus bereitzustellen, mit dem ein Datenverlust verhindert oder zumindest minimiert werden kann. It is therefore necessary to provide a mechanism by which a data loss can be prevented or at least minimized.
  • Aus dem Stand der Technik bekannte Systeme, wie beispielsweise ein RAID-System ermöglichen eine ausfallsichere Speicherung von dauerhaft (auf einer Festplatte o.ä.) gespeicherten Daten. (Similar to a hard drive) stored data from the prior-art systems, such as a RAID system provide a fail-safe storage of permanently. Daten, die sich in einem flüchtigen Speicher befinden, dh dem typischen Hauptspeicher eines Computersystems, gehen jedoch bei einem Absturz des Systems unwiederbringlich verloren. Data stored in a volatile memory that is lost to the typical main memory of a computer system, but go with a system crash irrevocably. Die oben erläuterte Funktion des Brokers bringt es mit sich, dass wesentliche Bestandteile der Kommunikation zwischen den Clients und den Servern des Netzwerks im flüchtigen Speicher, dem so genannten Memory Pool des Brokers, abgewickelt werden. The above-described function of the broker entails that an essential element of communication between clients and servers on the network in the volatile memory, the memory pool of the broker called, are handled. Eine Sicherung der dauerhaft gespeicherten Daten des Brokers kann daher allenfalls teilweise das Problem der Ausfallsicherheit lösen. A backup of the permanently stored data of the broker can therefore at best solve the problem of reliability in part.
  • Großrechner der Firma IBM bieten zu diesem Zweck den "Parallel SYSPLEX Support" an. Mainframe from IBM offer for this purpose the "Parallel Sysplex Support". Privilegierte Anwenderprogramme können hierbei XES (die "Cross System Extended Services") benutzen, um "Common Storage", der von verschiedenen MVS-Systemen gemeinsam verwendet werden kann, zu verwalten. Privileged user programs can here XES (the "Cross System Extended Services") use to manage "Common Storage", which can be shared by different MVS systems. Dieser gemeinsame Speicher wird über das "Cross-Coupling Facility (XCF)" zur Verfügung gestellt. This shared storage is provided via the "Cross-Coupling Facility (XCF)" is available. Somit kann bei Ausfall einer Komponente auf einem LPAR ("Logical Partition") die Komponente auf einem anderen LPAR den Weiterbetrieb der Anwendung sicherstellen. Thus, if a component fails on a LPAR ( "Logical Partition") can ensure the component on a different LPAR the continued operation of the application.
  • Schließlich ist aus der Finally, from US 2005/0172161 A1 US 2005/0172161 A1 eine Verringerung des Datenverlusts beim Ausfall einer "primary node" bekannt, indem eine "secondary node" bereitgestellt wird. disclosed a reduction of data loss in case of failure of a "primary node", by providing a "secondary node". Bei einem Ausfall der "primary node", der durch das Ausbleiben eines Bereitschaftssignals detektiert wird, wird eine virtuelle IP-Adresse, die zunächst auf die "primary node" zeigt, auf die "secondary node" umgeleitet und die Stromversorgung zur "primary node" sofort unterbrochen um Inkonsistenzen in der weiteren Datenverarbeitung zu vermeiden. Upon failure of the "primary node", which is detected by the absence of a standby signal, a virtual IP address initially points to the "primary node", redirected to the "secondary node," and the power supply to the "primary node" is immediately adjourned at inconsistencies in the further data processing to avoid. Gleichzeitig erhält die "secondary node" Zugriff auf eine Partition eines zunächst von der "primary node" verwendeten, dauerhaften Speichers. Simultaneously, the "secondary node" gets access to a partition of memory initially used by the "primary node", permanent. Ein Verlust der im flüchtigen Speicher befindlichen Daten kann jedoch mit dem aus der However, a loss of data in the volatile memory with the from the US 2005/0172161 A1 US 2005/0172161 A1 bekannten System allenfalls teilweise erreicht werden. known system, are at best partially met.
  • Aus der From the US 6,578,160 B1 US 6,578,160 B1 ist ein Protokollmechanismus für Transaktionen bekannt, bei dem Protokolle gespiegelt werden, um beim Ausfall einer Systemressource einer Wiederherstellung eines Vorgangs zu ermöglichen. discloses a protocol mechanism for transactions logs are mirrored in which to allow the failure of a system resource of a recovery of a process.
  • Der vorliegenden Erfindung liegt daher das Problem zugrunde, ein ausfallsicheres System zum Verwalten von Client-Server-Kommunikation bereitzustellen, so dass auch die in einem flüchtigen Speicher eines Brokers gespeicherten Daten zur Kommunikation zwischen den Clients und den Servern bei einem Ausfall des Brokers im Wesentlichen nicht verloren gehen. The present invention therefore has the object to provide a fail-safe system for managing client-server communication, so that the data stored in a volatile memory of a broker data for communication between the clients and the servers in case of failure of the broker does not substantially get lost.
  • 3. Zusammenfassung der Erfindung 3. Summary of the Invention
  • Dieses Problem wird gelöst durch ein System zum Verwalten von Kommunikation zwischen zumindest einem Client und zumindest einem Server mit einem primären Broker, der einen ersten flüchtigen Speicher aufweist und der zumindest eine Anfrage des zumindest einen Clients bei dem zumindest einen Server verwaltet. This problem is solved by a system for managing communication between at least one client and at least one server with a primary broker, comprising a first volatile memory and in which manages at least one request of the at least one client at least one server. Das System weist ferner einen Backup-Broker auf mit einem zweiten flüchtigen Speicher, der die zumindest eine Anfrage des Clients bei dem Server verwaltet, wenn der primäre Broker ausgefallen ist, wobei der primäre Broker ein Journal mit Einträgen über Vorgänge aufweist, die den Zustand des ersten flüchtigen Speicher verändern können, und diese Einträge des Journals an den Backup-Broker sendet, so dass der Zustand des zweiten flüchtigen Speichers im Wesentlichen identisch ist mit dem Zustand des ersten flüchtigen Speichers. The system further comprises a backup Broker on with a second volatile memory, which manages the at least one request from the client to the server if the primary broker has failed, wherein the primary broker comprises a journal with entries on actions that of the state can change first volatile memory, and sends these entries of the journal to the back-up broker so that the state of the second nonvolatile memory is substantially identical to the state of the first nonvolatile memory.
  • Während somit der primäre Broker die Kommunikation zwischen den Clients und den Servern abwickelt und dabei beispielsweise alle Anfragen von Teilnehmern bearbeitet, werden durch die Erzeugung der Einträge des Journals und die Versendung an den Backup-Broker alle relevanten Vorgänge dort gespiegelt. Thus, while the primary broker handles the communication between clients and servers while processing example, all requests from subscribers, are mirrored by the creation of the journal entries and sending to the backup broker all relevant operations there. Bei einem Ausfall des primären Brokers ist der Backup-Broker aufgrund der wesentlichen Übereinstimmung der beiden flüchtigen Speicher in der Lage, unterbrechungsfrei die Bearbeitung aller Anfragen zu übernehmen, unabhängig davon, ob die damit zusammenhängenden Daten dauerhaft oder nur flüchtig gespeichert sind. Upon failure of the primary broker is the backup Broker due to the substantial coincidence of the two-volatile memory capable of interruption to take over the processing of all requests regardless of whether the associated data is stored permanently or only fleetingly.
  • Vorzugsweise weist der primäre Broker eine Filterfunktion auf, die festlegt, welche Einträge in das Journal geschrieben werden. Preferably, the primary broker to a filter function which defines which entries are written to the journal. Dementsprechend protokolliert das Journal nicht jedes modifizierte Byte, sondern hält vorzugsweise in einer möglichst kompakten Weise alle relevanten Änderungen der Objekte im flüchtigen Speicher des primären Brokers fest. Accordingly, the journal not logged each modified bytes, but preferably maintains in a compact manner possible relevant changes to the objects in the volatile memory of the primary broker fixed.
  • Der Backup-Broker weist ferner vorzugsweise einen Journal-Interpreter auf, der die vom primären Broker empfangenen Einträge abarbeitet, damit der Zustand des zweiten flüchtigen Speichers im Wesentlichen identisch ist mit dem Zustand des ersten flüchtigen Speichers. The backup Broker preferably further comprises a journal interpreter which executes the data received from the primary broker messages, so that the state of the second nonvolatile memory is substantially identical to the state of the first nonvolatile memory. Dabei bringt die Abarbeitung der Einträge in dem Journal durch den Journal-Interpreter des Backup-Brokers den zweiten flüchtigen Speicher vorzugsweise durch zumindest einen anderen Schritt in den zum ersten flüchtigen Speicher im Wesentlichen identischen Zustand, als den / die dafür im primären Broker durchgeführten Schritt(e). In this case, the processing of the entries (brings in the journal by the journal interpreter of the back-up broker the second volatile memory, preferably by at least one other step in the volatile first memory in substantially identical condition, than the one / therefor carried out in the primary broker step e). Im Ergebnis wird dadurch im Backup-Broker der Aufwand zur Abarbeitung der Einträge verringert, da der zweite flüchtige Speicher direkt in den Zustand des ersten flüchtige Speichers gebracht wird, ohne einen oder mehrere Zwischenschritte, die dazu möglicherweise im ersten flüchtigen Speicher des primären Brokers durchgeführt worden sind. As a result, the cost for processing the messages, thereby reducing the backup broker, because the second nonvolatile memory is directly brought into the state of the first volatile memory which was to possibly carried out in the first volatile memory of the primary broker without one or more intermediate steps, are.
  • Vorzugsweise teilt der primäre Broker in einer Antwort auf den Empfang einer Kommunikation von einem Client oder einem Servers dem Client bzw. dem Server eine Identifizierung des Backup-Brokers mit. Preferably, the primary broker is divided into a response to receiving a communication from a client or a server to the client or the server, an identification of the back-up broker with. Besonders bevorzugt ist es, wenn jede Antwort auf die Anfrage eines Clients die Identifizierung des Backup-Brokers aufweist. It is particularly preferred if each response to the request of a client having the identification of the backup broker. Eine fehlgeschlagene Anfrage an den primären Broker kann daher unmittelbar erneut an den Backup-Broker versandt werden, beispielsweise durch entsprechende Anweisungen an die Schnittstelle des entsprechenden Anwenderprogramms. A failed request to the primary broker can be sent directly again to the backup broker therefore, for example, by appropriate instructions to the interface of the corresponding application program.
  • Vorzugsweise beantwortet der primäre Broker eine Kommunikation mit dem zumindest einen Client und oder dem zumindest einen Server, die zu einem Eintrag in dem Journal führt, erst nachdem der Backup-Broker den Empfang des entsprechenden Eintrags quittiert hat. Preferably, the primary broker answered a communication with the at least one client and or at least, not until the backup broker has acknowledged the receipt of the corresponding entry to a server, which leads to an entry in the journal. Damit wird sichergestellt, dass jeder relevante Vorgang im primären Broker zunächst für einen Ausfall gesichert wird, bevor die Verarbeitung fortgesetzt wird. So that each relevant operation is first secured in the primary broker for a failure before processing continues is ensured. Der Backup-Broker kann daher, falls erforderlich, sofort die Bearbeitung dort fortsetzen, wo der primäre Broker ausgefallen ist. The backup broker can therefore, if necessary, immediately continue editing where the primary broker has failed.
  • Um Inkonsistenzen zu vermeiden wird vorzugsweise jede Kommunikation mit dem primären Broker, die zu einem Eintrag im Journal führt, eindeutig identifiziert. To avoid inconsistencies is preferably all communications with the primary broker, which results in an entry in the journal, clearly identified. Bevorzugt wird dabei jede Anfrage eines Teilnehmers an den Broker, die zu einem Eintrag in das Journal führt, fortlaufend nummeriert, so dass beispielsweise das doppelte Senden einer Nachricht im Backup-Broker entdeckt und unterbunden werden kann. it is preferred each request of a participant to the broker, which results in an entry in the journal, numbered consecutively, so that for example the double sending a message in the backup broker can be detected and prevented.
  • Im Einsatz schickt der Backup-Broker bevorzugt ein Testsignal an den primären Broker, wenn er über einen vorbestimmten Zeitraum hinweg keinen neuen Eintrag empfangen hat. In use, the backup-Broker sends preferably a test signal to the primary broker, if it has not received a new entry for a predetermined period of time. Anders als im oben erläuterten Stand der Technik wird das Netzwerk nicht durch das ständige Übertragen eines Bereitschaftssignals zusätzlich belastet, sondern ein solcher Test wird erst dann verwendet, wenn der Backup-Broker über einen vorbestimmten Zeitraum hinweg keinen zusätzlichen Eintrag aus dem Journal erhält. In contrast to the above-mentioned prior art, the network is not burdened by the constant transmitting a ready signal, but such a test is only used when the backup broker receives no additional entry from the Journal over a predetermined period of time.
  • Weitere Ausgestaltungen des erfindungsgemäßen Systems sind in weiteren abhängigen Patentansprüchen definiert. Further embodiments of the inventive system are defined in further dependent claims.
  • Schließlich betrifft die vorliegende Erfindung ein computerlesbares Medium mit Anweisungen zur Bereitstellung des vorangehend erläuterten Systems sowie ein Programm mit Anweisungen zur Bereitstellung dieses Systems. Finally, the present invention relates to a computer readable medium with instructions for providing the system explained above, as well as a program of instructions for providing the system. Das erfindungsgemäße System kann somit einerseits durch eine dedizierte Hardware verwirklicht werden oder durch eine entsprechende Software, die über einen Datenträger oder aus dem Internet geladen und auf einer beliebigen Hardware- und Softwareplattform installiert werden kann, die damit die oben definierten Eigenschaften des beanspruchten Systems annimmt. The inventive system can thus on the one hand be realized by dedicated hardware or by a corresponding software that can be loaded via a disk or from the Internet and installed on any hardware and software platform, which thus assumes the above-defined properties of the claimed system.
  • 4. Kurze Beschreibung der Figuren 4. BRIEF DESCRIPTION OF FIGURES
  • In der nachfolgenden detaillierten Beschreibung werden gegenwärtig bevorzugte Ausführungsbeispiele der Erfindung näher erläutert unter Bezugnahme auf die begleitenden Figuren. In the following detailed description of presently preferred embodiments of the invention will be explained in more detail with reference to the accompanying figures. Diese Figuren zeigen: These figures show:
  • Fig. 1: Fig. 1:
    Die Anordnung eines einzelnen Brokers nach dem Stand der Technik; The arrangement of a single broker according to the prior art;
    Fig. 2: Fig. 2:
    Eine schematische Darstellung eines Ausführungsbeispiels der vorliegenden Erfindung; A schematic representation of an embodiment of the present invention;
    Fig. 3: Fig. 3:
    Eine schematische Darstellung der beiden Broker und ihrer flüchtigen und dauerhaften Speicher im Ausführungsbeispiel aus A schematic representation of the broker and its volatile and persistent memory in the embodiment of Fig. 2 Fig. 2 ; ;
    Fig. 4: Fig. 4:
    Ein Ausführungsbeispiel einer Anordnung eines ersten und eines zweiten Brokers auf einem Großrechner; An embodiment of an arrangement of a first and a second broker on a mainframe;
    Fig. 5: Fig. 5:
    Eine schematische Darstellung der Schritte zur Sicherung des flüchtigen Speichers des primären Brokers; A schematic representation of the steps for backup of the volatile memory of the primary broker; und and
    Fig. 6: Fig. 6:
    Eine schematische Darstellung der Schritte bei der Übernahme der Verwaltungsfunktion durch den Backup-Broker. A schematic representation of the steps in the takeover of management function by the backup broker.
    5. Detaillierte Beschreibung von bevorzugten Ausführungsbeispielen 5. Detailed description of preferred embodiments
  • Ein Broker dient der Verwaltung der Kommunikation unter Clients und Servern eines Netzwerks. A broker is used to manage the communication between clients and servers on a network. Fig. 1 Fig. 1 , die im Wesentlichen der Substantially the EP 0 600 235 B1 EP 0600235 B1 entnommen ist, zeigt schematisch die Anordnung eines Brokers 20 in einem Netzwerk aus einer Vielzahl von Clients 10a - 10d und Servern 12a - 12d. is removed, schematically showing the arrangement of a Brokers 20 in a network of a plurality of clients 10a - 10d and servers 12a - 12d. Die Details der Kommunikation zwischen den Clients, den Servern und dem Broker, insbesondere die nachfolgend erwähnten Befehle und Attribute, die im Rahmen der Kommunikation verwendet werden, sind in der The details of the communication between the clients, the servers and the broker, especially the below-mentioned commands and attributes that are used in the communication are in the EP 0 600 235 B1 EP 0600235 B1 offenbart ebenso wie die zahlreichen Verwaltungsfunktionen des Brokers 20. revealed as well as the numerous administrative functions of the broker 20th
  • Es ist unmittelbar erkennbar, dass der Broker 20 in der gezeigten Anordnung für die Kommunikation zwischen den Clients 10a - d und den Servern 12a - 12d unverzichtbar ist. It is immediately apparent that the broker 20 in the arrangement shown, for the communication between the clients 10a - d and the servers 12a - 12d is indispensable. Selbst wenn der Inhalt eines dauerhaften Speichers (in Even if the content of a permanent memory (in Fig. 1 Fig. 1 nicht dargestellt, vgl. not shown, see. aber die unten erläuterte but explained below Fig. 3 Fig. 3 , Bezugszeichen 24) des Brokers gegen Datenverlust gesichert wird, beispielsweise durch die Verwendung eines RAID-Systems oder ähnlicher Einrichtungen, gehen bei einem Absturz und dem nachfolgendem Neustart des Brokers 20 sämtliche Daten verloren, die nur im flüchtigen Speicher, dem so genannten Memory Pool 23 (vgl. , Numeral 24) of the broker will be protected against data loss, for example by the use of a RAID system, or similar devices, go 20 lost all the data in a crash and the subsequent restart of the broker, which only in the volatile memory, the so-called memory pool 23 (see. Fig. 3 Fig. 3 ) des Brokers 20 gespeichert sind. ) Of the Brokers are stored 20th Für viele kritische Anwendungen, beispielsweise die Geschäftsprozesse einer Bank, ist weder ein temporärer Ausfall noch der Verlust von Daten akzeptabel. For many critical applications, such as the business processes of a bank, not a temporary failure nor the loss of data is acceptable.
  • Fig. 2 Fig. 2 zeigt schematisch ein Ausführungsbeispiel der vorliegenden Erfindung. schematically shows an embodiment of the present invention. Wie man erkennen kann, ist parallel zum primären Broker 20 ein Backup-Broker 30 angeordnet. As can be seen, a back-up broker 30 is arranged parallel to the primary broker 20th Bei einem Ausfall des primären Brokers 20 wird die weitere Kommunikation zwischen den Clients 10a - d und den Servern 12a - 12d über den Backup-Broker 30 verwaltet (vgl. gestrichelte Linien in Upon failure of the primary broker 20 further communication between the clients 10a - d and the servers 12a - 12d via the backup broker 30 manages (see dashed lines in FIG. Fig. 2 Fig. 2 ). ).
  • Zusätzlich zu der im Folgenden beschriebenen Anordnung mit einem primären Broker und einem Backup-Broker ist es auch denkbar einen oder mehrere weitere Backup-Broker vorzusehen, um ein noch größeres Maß an Ausfallsicherheit bereitzustellen. In addition to the arrangement described below with a primary broker and a backup Broker it is also conceivable to provide one or more additional backup broker to provide an even greater degree of reliability.
  • Vorzugsweise werden für den Betrieb des in Preferably, for the operation of the in Fig. 2 Fig. 2 dargestellten Clusters aus primärem und Backup-Broker zwei Instanzen identischer Release- und Patch-Versionen des Brokers verwendet, die außerdem im Wesentlichen identisch konfiguriert sind, dh die Dimensionen für Kontrollblöcke, Nachrichten, und sonstige Daten, die in der Cluster shown from primary and backup Broker two instances of identical release and patch releases the broker used, which are also configured substantially identical, ie the dimensions for control blocks, messages and other data in the EP 0 600 235 B1 EP 0600235 B1 im einzelnen definiert sind, müssen im Backup-Broker ebenso verfügbar sein wie im primären Broker. are defined in detail, must be available as well as the primary broker in the backup broker. Andere Ressourcen wie Exits, die im primären Broker 20 benutzt werden, müssen auch im Backup-Broker 30 existieren; Other resources, such as exits, which are used in the primary broker 20 must also exist in the backup broker 30; sie können aber andere Namen besitzen. but they may have other names. Die Sicherheit für die Datenverwaltung wird bevorzugt über ein globales Sicherheitssystem (nicht dargestellt) abgewickelt. The security for data management is preferred (not shown) through a global security system settled. Die vom primärem 20 und vom Backup-Broker 30 verwendeten dauerhaften Speicher 24 bzw. 34 (vgl. The persistent storage used by the primary 20 and the backup-Broker 30 24 and 34 (see FIG. Fig. 3 Fig. 3 ) können jedoch unterschiedlich ausgebildet sein. However,) may be designed differently.
  • Die Attributdateien von primärem Broker 20 und Backup-Broker 30 sind mit Ausnahme folgender Attribute, die in der The attribute files of primary broker 20 and backup broker 30, with the exception of the following attributes in the EP 0 600 235 B1 EP 0600235 B1 offenbart sind, vorzugsweise identisch: preferably disclosed identical:
    • BROKER-ID BROKER ID
    • NUM-WORKER NUM WORKER
    • PSTORE-TYPE Pstore TYPE
    • TRACE-LEVEL TRACE LEVEL
    • TRANSPORT TRANSPORT
  • Auch alle transport-spezifischen Attribute können differieren. All transport-specific attributes may differ. Für einen reibungslosen Betrieb von primärem und Backup-Broker sind die Dimensionen der beiden Memory Pools 23 und 33 und der beiden dauerhaften Speicher (persistent stores) 24 und 34 abzugleichen. the dimensions of the two memory pools 23 and 33 and the two permanent memories (persistent stores) to align 24 and 34 for a smooth operation of the primary and backup broker.
  • Wie in As in Fig. 2 Fig. 2 durch die beiden Pfeile zwischen den beiden Brokern 20, 30 dargestellt kommunizieren die beide Broker vorzugsweise direkt miteinander, wobei zur Optimierung eine Datenkompression eingesetzt werden kann. shown by the two arrows between the two brokers 20, 30 both Broker preferably communicate directly with each other, to optimize data compression may be employed.
  • Fig. 3 Fig. 3 zeigt ein Ausführungsbeispiel mit zwei vollständig getrennten Einrichtungen für den primären und den Backup-Broker. shows an embodiment with two completely separate devices for the primary and the backup broker. Dabei laufen die beiden Broker 20 und 30 auf separater Hardware, um ein Höchstmaß an Unabhängigkeit und damit Ausfallsicherheit des Gesamtsystems zu erreichen. The two brokers 20 and 30 run on separate hardware to achieve maximum independence and reliability of the overall system. Dazu weist jeder Broker 20, 30 einen eigenen Memory Pool 23, bzw. 33 auf sowie einen eigenen dauerhaften Speicher 24 bzw. 34, beispielsweise in Form einer Festplatte oder zumindest eines Teilbereichs davon. For this purpose, any broker 20, 30, its own memory pool 23, and 33, respectively, as well as its own permanent memory 24 or 34, for example in the form of a hard disk or at least a partial region thereof. Ferner weist jeder Broker Kernel-Komponenten 21 bzw. 31 sowie Transport-Komponenten 22 bzw. 32 auf. Further includes any broker kernel components 21 and 31 as well as transport components 22 and 32 respectively.
  • Alternativ ist auch eine Ausführungsform dankbar, wie sie in Alternatively, an embodiment is grateful as in Fig. 4 Fig. 4 schematisch dargestellt ist. is shown schematically. Hier laufen auf einem Großrechner, beispielsweise einem IBM z900 Mainframe, zwei Instanzen des Brokers 50, 60. Die beiden Broker sind dazu auf zwei LPAR's (logische Partitionen) des Großrechners verteilt. Here run on a mainframe such as an IBM mainframe z900, two instances of the broker 50, 60. The two brokers are two to LPAR's (logical partitions) of the mainframe distributed. Die Bezugszeichen 41, 43 kennzeichnen hier die jeweiligen z/OS-Betriebssysteme. The reference numerals 41, 43 identify the respective z / OS operating systems here.
  • Eine heterogene Umgebung ist im Ausführungsbeispiel aus A heterogeneous environment is made in the embodiment Fig. 3 Fig. 3 denkbar, wenn beispielsweise der primäre Broker 20 und der Backup-Broker 30 auf Computersystemen mit unterschiedlicher Hardware und / oder unterschiedlichen Betriebssystemen (Windows ® , Unix, Linux, OS/2 etc.) installiert sind. conceivable if, for example, the primary broker 20 and the backup broker 30 on computer systems with different hardware and / or different operating systems (Windows ®, Unix, Linux, OS / 2, etc.) are installed.
  • Um im Ausführungsbeispiel aus In order from the embodiment Fig. 3 Fig. 3 den Inhalt des Memory Pools 23 bei einem Absturz zu sichern, führt der primäre Broker 20 ein Journal( nicht dargestellt). to secure the contents of the memory pool 23 in a crash, the primary broker 20 performs a journal (not shown). Das Journal enthält alle objektbezogenen Aktivitäten aller Threads, die im Broker 20 zur Verwaltung der Kommunikation mit den Clients 10a-d und den Servern 12a - d (vgl. The Journal contains all project-related activities of all threads in the broker 20 for managing communication with the clients 10a-d and the servers 12a - d (see FIG. Fig. 2 Fig. 2 ) verwendet werden. ) be used. Das Journal enthält definierte Einträge, die beispielsweise für die Bearbeitung einer Anfrage eines Teilnehmers notwendig sind, oder für Abläufe wie das Löschen bestimmter Ressourcen des Brokers 20. The Journal contains defined entries that are necessary for example for the processing of a request of a participant, or for processes such as deleting certain resources of the broker 20th
  • Im Falle einer Anfrage eines Teilnehmers werden diese Daten im Broker 20 gesammelt und vor einer Antwort an den Teilnehmer über die direkte Kommunikationsverbindung an den Backup-Broker weitergeleitet. In case of request of a participant, this data is collected in the broker 20 and before a reply to the subscriber forwarded via the direct communication link to the backup broker. Erst nach Erhalt einer Quittung vom Backup-Broker 30 an den primären Broker 20 wird die Antwort auf die Anfrage an den Teilnehmer gesendet. Only after receiving an acknowledgment from the backup broker 30 to the primary broker 20, the answer to the inquiry to the subscriber is sent.
  • Dieser Vorgang ist im Detail in This process is described in detail in Fig. 5 Fig. 5 dargestellt und umfasst die folgenden Schritte: illustrated and comprises the steps of:
  1. (1) Die Anfrage des Teilnehmers 70 (Client oder Server) wird über eine Schnittstelle 71, beispielsweise das in der (1) The request of the subscriber 70 (client or server) via an interface 71, for example, in the EP 0 600 235 B1 EP 0600235 B1 erläuterte Stub, an den primären Broker 20 gesendet. Stub explained, sent to the primary broker 20th Die Transportschicht der Schnittstelle wartet in diesem Beispiel synchron auf eine Antwort vom Broker 20, dh der Teilnehmer 70 hält seine eigene Prozessverarbeitung solange an, bis die Antwort vom Broker 20 eintrifft. The transport layer of the interface is waiting in this example, in synchronization for a response from the broker 20, ie, the subscriber 70 maintains its own processing on process until the response is received by the broker 20th
  2. (2) Ebenso wie der Teilnehmer 70 weist der primäre Broker 20 Transportkomponenten 22 für die Kommunikation auf, die in den Figuren vereinfacht dargestellt sind und gemeinsam mit dem Bezugszeichen 22 bezeichnet sind. (2) As the subscriber 70 has the primary broker to 20 transporting components 22 for the communication, which are shown simplified in the figures and are collectively designated by the reference numeral 22nd Der Broker 20 stellt neben den bisher üblichen Transportkomponenten, die als Server im Sinne der jeweiligen Transportprotokolle agieren, so genannte Forwarder zur Verfügung. The broker 20 provides in addition to the usual transport components that act as a server for the purposes of the respective transport protocols called forwarders are available. Sie agieren im Sinne der jeweiligen Transportprotokolle als Clients, und versetzen den primären Broker 20 in die Lage, Journal und Daten zur Anfrage eines Teilnehmers an den Backup-Broker 30 zu schicken. They act in accordance with the respective transport protocols as clients, and enable the primary broker 20 in the situation, journal and information about the request of a participant to the backup broker to send the 30th Der Backup-Broker 30 kann über seine Transportkomponenten 32 ein Test mit einem Bereitschaftssignal zum primären Broker 20 senden, um zeitnah zu ermitteln, wann der primäre Broker 20 ausfällt (siehe dazu unten mehr). The backup broker 30 can send a test with a ready signal to the primary broker 20 via its transport components 32 to determine quickly when the primary broker 20 fails (see more on this below).
    Die Transportkomponenten 22 des primären Brokers 20 übergeben die Anfrage nach vollständigem Empfang an die Kernel-Komponenten 21 des Brokers 20 zur Abarbeitung. The transport component 22 of the primary broker 20 to pass the request to complete reception of the kernel components 21 of the broker 20 for processing. Während der Abarbeitung werden relevante Informationen im Journal (nicht dargestellt) protokolliert. During the processing of relevant information in the journal (not shown) are logged.
  3. (3) Nach vollständiger Abarbeitung wird die Antwort auf die Anfrage des Teilnehmers 70 erzeugt. (3) After the completion of processing is generated, the response to the request of the subscriber 70th
  4. (4) Anstatt der Antwort, werden zunächst der oder die Einträge in das Journal und optional weitere Daten zur Anfrage des Teilnehmers 70 an den Backup-Broker 30 gesendet. (4) Instead of the answer, first of all, or journal entries and optionally further data on the request of the participant 70 are sent to the backup broker 30th
  5. (5) Die Transportkomponenten 32 des Backup-Brokers 30 übergeben den / die Journaleintrag / - einträge und die optionalen Daten an die Kernel-Komponenten 31 zur Abarbeitung durch einen Journal-Interpreter, der weiter unten im Detail erläutert wird. (5) Add the transport components 32 of the back-up broker 30 to / the journal entry / - listings and the optional data to the kernel components 31 for execution by a journal interpreter which will be explained in detail below. Mit der Abarbeitung der Einträge wird der Memory Pool 33 des Backup-Brokers 30 im Wesentlichen in denselben Zustand gebracht wie der Memory Pool 23 des primären Brokers 20 With the processing of the entries of the memory pool 30 is brought 33 of the backup Brokers substantially in the same state as the memory pool 23 of the primary broker 20
  6. (6) Nach vollständiger Abarbeitung wird ein Quittierungssignal für den primären Broker 20 erzeugt. (6) After completion of processing is generated an acknowledgment signal to the primary broker 20th
  7. (7) Das Quittierungssignal des Backup-Brokers 30 wird an den primären Broker 20 gesendet. (7) The acknowledgment of the backup Brokers 30 is sent to the primary broker 20th
  8. (8) Die im Schritt (3) erzeugte Antwort wird an die Schnittstelle 71 des Teilnehmers 70 gesendet und gegebenenfalls an eine Applikation übergeben. (8) The response in the step (3) generated is sent to the interface 71 of the subscriber 70 and, optionally, passed to an application.
  • Sämtliche Anfragen der Teilnehmer, interne Timeouts, und administrative Kommandos verändern den Datenbestand im Memory Pool 23 und möglicherweise auch im nichtflüchtigen Speicher 24 des primären Brokers 20. Alle diese Aktivitäten müssen im primären Broker 20 bezüglich ihrer Relevanz für den Backup-Broker 30 untersucht werden. All requests of the participants, internal timeouts, and administrative commands change the dataset in memory pool 23 and possibly 20, in the non-volatile memory 24 of the primary broker All these activities have the primary broker 20 with respect to their relevance to the backup broker 30 to be examined. Sind Aktionen für den Backup-Broker 30 von Bedeutung, werden sie durch die Erstellung eines entsprechenden Eintrags protokolliert. Are actions for the backup broker 30 of meaning, they are logged by the creation of a corresponding entry. Das dafür zuständige Journal ist ein entsprechender Datenpuffer, der mit den notwendigen Informationen, vorzugsweise in Binärform gefüllt wird. The responsible for this journal is a corresponding data buffer that is preferably filled with the necessary information in binary form. Da diese Informationen alle im primären Broker 20 durchgeführten, für den Memory Pool 23 relevanten Aktionen detailliert beschreiben, befindet sich nach einer Übertragung der Einträge zum Backup-Broker 30 und der weiter unten erläuterten, vereinfachten Abarbeitung der Memory Pool 33 im Wesentlichen im demselben Zustand wie der Memory Pool 23. Since this information describe all carried out in the primary broker 20, relevant to the memory pool 23 actions in detail, is following a transfer of entries to the backup broker 30 and discussed further below, simplified processing of the memory pool 33 is essentially in the same condition as the memory pool 23rd
  • Nicht alle Vorgänge im primären Broker 20 führen zu einem Journaleintrag. Not all processes in the primary broker 20 lead to a journal entry. Beispielsweise sind für die Erstellung einer Statistik notwendige aktualisierte Zeitstempel von einzelnen Vorgängen nicht notwendigerweise an der Backup-Broker 30 weiterzuleiten, da der Replay-Mechanismus im Backup-Broker diese Aktionen selbstständig beim Abarbeiten der Journaleinträge durchführt. For example, necessary updated timestamp of individual transactions is not necessarily at the backup broker 30 to be forwarded, because the replay mechanism in the backup broker performs these actions automatically when processing the journal entries for the production of statistics. Diverse Zeitstempel müssen also nicht übertragen werden. So various timestamps must not be transferred. Ebenso werden beispielsweise interne Default-Werte vorzugsweise selbständig vom Backup-Broker gesetzt und nicht als Journaleinträge übermittelt, da diese Werte in jedem Broker gleicher Version identisch sind. Likewise, internal default values ​​are preferably independently set for example by the backup broker and not transmitted as journal entries, since these values ​​are the same in each broker same version.
  • Informationsanfragen beispielsweise nach der Kernelversion des primären Brokers 20 oder nach der letzten "Unit of Work" eines Participant sind rein informativ und erfordern keinerlei Spiegelung im Backup-Broker 30. Ein RECEIVE, mit dem ein Teilnehmer gegenüber dem primären Broker 20 seine Empfangsbereitschaft für Daten mitteilt, wird vorzugsweise bis zur Erzeugung einer Antwort darauf nicht gespiegelt. Requests for information, for example, after the kernel version of the primary broker 20 or after the last "unit of work" of a Participant are informative and do not require any reflection in backup broker 30. A RECEIVE, with which a subscriber to the primary broker 20 notifies its readiness to receive data is preferably not reflected to the generation of a response thereto. Ebenso bleibt bevorzugt die Tatsache, dass ein Teilnehmer im Wartezustand ist, für den Backup-Broker 30 unerheblich. Also preferred is the fact that a participant in the waiting state is irrelevant to the backup broker 30th Erst das Zustellen einer RECEIVE Antwort sollte an den Backup-Broker 30 weitergeleitet werden, denn der Request Counter im primären Broker 20 hat sich verändert, bzw. die Anordnung der Nachrichten in einer Conversation kann modifiziert worden sein, wenn beispielsweise die älteste gelesene Nachricht gelöscht worden ist. Only the delivery of an RECEIVE response should be forwarded to the backup broker 30, since the request counter in the primary broker 20 has changed, or the arrangement of messages in a conversation can be modified, for example, the oldest read message has been deleted is.
  • Anfragen von Teilnehmern an interne Dienste des Brokers 20 werden nicht protokolliert, es sei denn, sie modifizieren die Datenstruktur des Memory Pools 23 wie zB ein SHUTDOWN SERVER, oder ein SUBSCRIBE TOPIC. Requests of participants in internal services of the broker 20 are not logged, unless they modify the data structure of the memory pool 23 such as a SHUTDOWN SERVER, or SUBSCRIBE TOPIC. Ebenso werden beispielsweise alle nicht-konversationalen, nicht-dauerhaft gespeicherten Anfragen herausgefiltert, da eine Applikation im Falle einer Störung des Brokers 20 die Anfrage wiederholen kann. Likewise, all non-conversational, non-permanently stored queries, for example, filtered because an application in case of failure of the broker 20 may repeat the request. Ausschlaggebend für diese Klassifizierung ist die Tatsache, dass der Aufwand zum Spiegeln dieser Informationen in keinem Verhältnis zum Nutzen für nicht-konversationale Anwendungen steht. The main reason for this classification is the fact that the effort to mirror this information is out of proportion to the benefit of non-conversational applications. Das Gesamtsystem könnte durch eine Spiegelung auch dieser Informationen zu stark belastet werden. The entire system could be loaded too heavily by mirroring also that information.
  • Alle benutzerbezogenen Daten werden im Journal festgehalten. All personalized data is recorded in the journal. LOGON, LOGOFF und alle Änderungen von Feldern im Participant Control Block (PCB, siehe dazu unten mehr) werden an den Backup-Broker 30 weitergeleitet. LOGON, LOGOFF and all changes of fields in the Participant Control Block (PCB, see more on this below) will be redirected to the backup broker 30th Fällt der primäre Broker 20 aus, ist daher der verloren gegangene Benutzerkontext im Backup-Broker 30 vollständig vorhanden. If the primary broker 20 made, therefore, the lost user context in the backup broker 30 complete.
  • Komplexer werden die Anforderungen bei einem SEND. Complex the requirements for SEND. Sowohl Journaldaten als auch die gesendete Nachricht selbst werden vorzugsweise vom primären Broker 20 an den Backup-Broker 30 übertragen. Both journal data and the broadcast message itself are preferably transmitted from the primary broker 20 to the backup Broker 30th In diesem Fall wird die Anfrage eines Teilnehmers im Anschluss an die Journaldaten als eigenständige Einheit weitergeleitet. In this case, the request of a subscriber is forwarded to the journal data as an independent unit in the port. Analog ist der Ablauf bei der Funktion SEND_PUBLICATION. Similarly, the flow proceeds to the function SEND_PUBLICATION.
  • Die Intelligenz, zu erkennen, welche Daten im Journal geführt werden müssen, und welche nicht, ist als Filter zu betrachten. The intelligence to recognize which data must be kept in the Journal, and which is not to be regarded as a filter. Dieser Filter ist im primären Broker 20 aktiv, um irrelevante Operationen zB syntaktisch falsch formulierte Anfragen nicht zu berücksichtigen, da dies keine relevante Änderung von Objekten im primären Broker 20, dh im Memory Pool 23 oder sogar im dauerhaften Speicher 24 nach sich zieht. This filter is active in the primary broker 20 to irrelevant operations are not to be considered syntactically incorrect formulated requests, as this no relevant change of objects in the primary broker 20, ie 23 or even draws in the memory pool in the permanent memory 24 by itself.
  • Der Interpreter des Journals im Backup-Broker 30 erzeugt, modifiziert, oder löscht Datenobjekte gemäß den Journaldaten. The interpreter creates the journal in the backup broker 30, modified, or deletes data objects according to the journal data. Der Interpreter ist eine spezielle Komponente eines Brokers, die nur im Backup-Modus aktiv ist. The interpreter is a special component of a broker that is active only in backup mode. Sie arbeitet single-threaded, um völlig störungsfrei die Daten im Memory Pool 33 des Backup-Brokers 30 zu manipulieren und gegebenenfalls zusätzlich den dauerhaften Speicher 34 anzupassen. She works single-threaded to completely smoothly manipulate the data in the memory pool 33 of the backup broker 30 and optionally also adjust the persistent storage 34th Die Aktionsabläufe sind dabei optimiert, wie im folgenden Beispiel näher erläutert wird: The action sequences are optimized thereby, as explained in the following example in more detail:
  • Der primäre Broker 20 erzeugt alle Objekte wie beispielsweise Participant Control Blocks (PCBs) für einen neuen Teilnehmer, Conversation Control Blocks für eine neue Kommunikation, Service Control Blocks etc. zum Zeitpunkt ihrer Initialisierung. The primary broker 20 creates all objects such as Participant Control Blocks (PCBs) for a new subscriber, the conversation control block for a new communication, Service Control Blocks etc. at the time of initialization. Die jeweiligen Kontrollblocktypen werden in Arrays angelegt. The respective control block types are created in arrays. Damit ist sichergestellt, dass zB alle PCBs im Memory Pool 23 physisch nacheinander liegen. This ensures that, for example, are all PCBs in memory pool 23 physically successively. Es ist somit möglich, über einen Index unter Zuhilfenahme der Anfangsadresse des PCB-Arrays jeden PCB-Kontrollblock zu erreichen. It is thus possible to reach any PCB control block using an index with the help of the start address of the PCB array.
    PCB 0 PCB 0 PCB 1 PCB 1 PCB 2 PCB 2 PCB 3 PCB 3 PCB 4 PCB 4 PCB 5 PCB 5 ............... ............... PCB n PCB n
  • Beispiel: Example: Adresse PCB 2 = Anfangsadresse aller PCBs + feste Länge zweier PCB-Kontrollblöcke Address PCB 2 = Start address of all PCBs + fixed length of two PCB control blocks
  • Dieses Array wird auf eine Queue abgebildet, die Queue der freien PCBs. This array is mapped to a queue, the queue of free PCBs. Der Anker dieser "free queue" zeigt auf PCB 0, PCB 0 zeigt mit seinem "next pointer" auf PCB 1, der wiederum auf PCB 2 usw. Der letzte PCB enthält als "next pointer" eine 0. Diese "free PCB queue" entspricht zum Zeitpunkt der Initialisierung der physikalischen Anordnung im Memory Pool 23. The anchor of this "free queue" points to PCB 0, PCB 0 points his "next pointer" on PCB 1, which in turn refers PCB 2, etc. The final PCB includes a "next pointer" a 0. This "free PCB queue" corresponds to the time of initialization of the physical arrangement in the memory pool 23rd
  • Ferner gibt es eine "active PCB queue", die jedoch zum Zeitpunkt der Initialisierung des Brokers 20 noch leer ist. There is also a "active PCB queue", but is empty at the time of initialization of the broker 20th Soll nun für einen neuen Teilnehmer ein PCB erzeugt werden, wird der "free queue" der erste Eintrag entnommen (PCB 0), dh der Anker der "free queue" zeigt auf PCB 1, wobei der Rest dieser Queue unverändert bleibt. If now a PCB are generated for a new subscriber, the "free queue" is taken from the first entry (PCB 0), that the anchor of the "free queue" points to PCB 1, wherein the rest of the queue is unchanged.
  • Die "active PCB queue" wird um den PCB 0 ergänzt. The "active PCB queue" is added to the PCB 0th Da die Queue leer war, ist PCB 0 der einzige Eintrag. Since the queue was empty, PCB 0 is the only entry. Der Anker zeigt auf PCB 0, der "next pointer" in PCB 0 ist auf 0 gesetzt, um zu signalisieren, dass keine weiteren PCBs vorhanden sind. The anchor points to PCB 0, the "next pointer" in PCB 0 is set to 0 to indicate that no further PCBs are present. Im Laufe der Verarbeitung werden neue PCBs in die "active queue" gekettet, und beim Löschen eines Teilnehmers auch wieder in die "free queue" überführt. During the processing of new PCBs are chained in the "active queue", and transferred when deleting a participant again in the "free queue". Nach einiger Zeit haben dann die logischen Queues keinerlei Beziehung mehr zum physischen Array. After some time the logical queues then no longer have any relationship to the physical array. Beispielsweise könnte die "free queue" so aussehen: For example, the "free queue" might look like this:
  • Der Anker zeigt auf den PCB 253, dessen "next pointer" zeigt auf PCB 1, dessen "next pointer" wiederum auf PCB 830, usw.. Dies führt dazu, dass der Broker 20, wenn er beispielsweise einen PCB mit der USER-ID "HUGO" suchen muss, er vom Anker der "active queue" ausgehend solange die logische Kette untersucht, bis die USER-ID gefunden wurde, oder das Ende der Kette erreicht wurde. The anchor points to the PCB 253, the "next pointer" points to PCB 1, the "next pointer" turn on PCB 830, etc .. This means that the broker 20 when, for example, a PCB using the USER ID "HUGO" must seek it as long as the logical chain examined by the anchor of the "active queue" starting until the user ID is found, or the end of the chain has been reached. Solche Suchabläufe finden jedoch aufgrund der vereinfachten Abarbeitung der Journaleinträger im Backup-Broker 30 nur im primären Broker 20 statt. However, such search operations take place only in the primary broker 20 due to the simplified processing of Journaleinträger in the backup broker 30th
  • Hat nämlich beispielsweise der PCB mit der USER-ID "HUGO" den Index 2000, dann bedeutet das für den Backup-Broker 30, dass er diesen PCB Index 2000 benutzen kann, ohne suchen zu müssen, denn das Journal teilt dem Backup-Broker mit, den PCB mit diesem Index zu verwenden. namely for example, has the PCB using the USER ID "HUGO" the index in 2000, then it means for the backup broker 30 that he can use this PCB index 2000, without having to search, because the journal tells the backup broker to use the PCB with this index. Im Ergebnis wird im Backup-Broker 30 jeglicher Aufwand zum Auffinden von Informationen vermieden, da das Journal Direktzugriffe formuliert. As a result, any effort to find information is avoided in the backup broker 30, as the Journal shortcuts formulated.
  • Fällt der primäre Broker 20 aus, sind alle relevanten Verwaltungsobjekte, aber auch die Nutzdaten in Form von Nachrichten, Unis Of Work oder Publications (die in der If the primary broker 20 from all relevant management objects, but also the user data in the form of messages Unis Of Work or Publications (in the EP 0 600 235 B1 EP 0600235 B1 genauer definiert sind) im Backup-Broker 30 verfügbar. are defined more precisely) in the backup broker 30 available. Aufgrund der Synchronisierung über Journaldaten besitzt beispielsweise eine Conversation im primären Broker 20 auch im Backup-Broker 30 die gleiche CONV-ID. Due to the synchronization journal data, for example, a conversation in the primary broker 20 also in the backup broker 30 is the same CONV-ID has. Im Ergebnis liegen alle für die Backup-Funktion relevanten Daten als exakte Kopie im Backup-Broker 30 vor. As a result, all information relevant to the backup function data are an exact copy of the backup broker 30th
  • Die Journaldaten für den kontinuierlichen Datenabgleich haben vorzugsweise folgende Struktur: The journal data for continuous data synchronization preferably have the following structure:
  • COMMAND: COMMAND:
    ADD_OBJ, UPD_OBJ, DEL_OBJ ADD_OBJ, UPD_OBJ, DEL_OBJ
    OBJECT: OBJECT:
    BCT, PCB, PCBEXT, SCB, SCBEXT, CCB, TOQ, ... BCT, PCB, PCBEXT, SCB, SCBEXT, CCB, TOQ ...
    OBJECT-INDEX: OBJECT INDEX:
    Index des Objekts Index of the object
    FIELD-KEY: FIELD-KEY:
    Objektspezifische Identifikationsnummern für Objektdatenfelder; Object-specific identification numbers for object data fields;
    Feldformat und Feldlänge ergeben sich implizit aus dem angegebenen Feldschlüssel. Format field and field length arise implicitly from the specified field key.
    FIELD-FORMAT: FIELD-FORMAT:
    i1|i2|i4 für Integer in Host-Order i1 | i2 | i4 for integer in host order
    s1|s2|sn für nicht-null-terminierte Character-Arrays in lokaler Repräsentation s1 | s2 | sn for non-null-terminated character arrays in local representation
    x1|x2|xn für hexadezimale Werte x1 | x2 | xn for hexadecimal values
    FIELD-VALUE: FIELD-VALUE:
    Wert, der im referenzierten Feld einzutragen ist. Value that must be entered in the referenced field.
    Datenrepräsentation im Format des Quell-Hosts. Data representation format of the source host.
  • Die Felder FIELD-KEY, FIELD-FORMAT und FIELD-VALUE können mehrfach wiederholt werden, bis FIELD-KEY EOD gesetzt ist. The FIELD-KEY, FIELD-FORMAT and FIELD-VALUE fields can be repeated several times until FIELD-KEY EOD is set. Das Kommando DEL-OBJ wird ohne Angabe von FIELD-* Daten benutzt. The command DEL * OBJ is used data without giving FIELD-.
  • Neben dieser deskriptiven Art der Protokollierung von Änderungen sind auch Meta-Objekte gültig, wenn zB der Kontext eines Clients erzeugt werden soll, oder eine Conversation einem bestimmten Server zugeordnet wird. In addition to this descriptive type of logging of changes and meta objects are valid, for example if the context of a client to be generated, or a conversation is associated with a particular server. Abstraktionen wie Kommando CREATE_CLIENT verkürzen die Menge der Journaldaten, da die notwendigen Aktionen im Zusammenhang mit Meta-Objekten bekannt sind, und nur ergänzende Indizes notwendig sind, um das Replay synchron durchführen zu können. Abstractions like command CREATE_CLIENT shorten the amount of journal data because the necessary actions related to meta-objects are known, and only additional indexes are needed to perform the replay sync.
  • Zusätzlich zum Datenabgleich über Journaleinträge können auch die dauerhaften Speicher 24 und 34 synchronisiert werden. In addition to data synchronization via journal entries, the persistent storage can be synchronized 24 and 34th Ein solcher Datenabgleich kann über die weiter unten erläuterte dynamische Zuschaltung des Backup-Brokers 30 zum primären Broker 30 erzielt werden, erfordert jedoch Aufwand zur Übertragung aller dauerhaft gespeicherten Daten vom primären Broker 20 zum Backup-Broker 30. Da dieser dynamische Abgleich isoliert ablaufen kann, ist das Kopieren bzw. Konvertieren der dauerhaften Speicher auch im Rahmen von Wartungszeiten durchführbar. Such data matching can be achieved over the explained below dynamic connection of the backup broker 30 to the primary broker 30, but it requires effort to transfer all permanently stored data from the primary broker 20 to the backup broker 30. Since this dynamic balance can run in isolation, is copying or converting the persistent store in the context of maintenance time feasible.
  • Vorzugsweise erhält jede Anfrage eines Teilnehmers beim primären Broker 20 in der Antwort die ID des Backup-Brokers 30. Bei einem Ausfall des primären Brokers 20 kann daher die Anfrage von der Schnittstelle 71 unmittelbar zum Backup-Broker 30 gesendet werden. Preferably, each request of a participant receives the primary broker 20 in response, the ID of the backup Brokers 30. Therefore, in the event of failure of the primary broker 20, the request from the interface 71 can be sent immediately to the backup Broker 30th Sobald der Backup-Broker 30 im Zuge des weiter unten in Detail erläuterten Vorgangs als primärer Broker aktiviert ist, akzeptiert er Anfragen von Teilnehmern und setzt bestehende Konversationen oder Publikationen fort. Once the backup broker 30 is activated during the explained in detail below process as the primary broker, it accepts requests from subscribers and continues existing conversations or publications. Die ID für den Broker im API wird entsprechend modifiziert. The ID for the broker in the API is modified accordingly.
  • Um das Duplizieren einer Anfrage eines Teilnehmers zu vermeiden - der Ausfall des primären Brokers 20 kann vor, während, oder nach der Bearbeitung der Anfrage eingetreten sein -, wird jede Anfrage pro Teilnehmer fortlaufend nummeriert, sodass das doppelte Senden einer Nachricht im Backup-Broker 30 entdeckt und unterbunden werden kann. To avoid duplicating a request of a participant - the failure of the primary broker 20 can before, during, occurred after the processing of the request or - any request per participant will be numbered consecutively so that the double sending a message in the backup broker 30 can be detected and prevented.
  • Die Übernahme der Funktion als Broker durch den Backup-Broker 30 verläuft wie folgt: Parallel zum oben erläuterten effizienten Abarbeiten der vom primären Broker 20 weitergeleiteten Journaleinträge läuft im Backup-Broker 30 ein Sensor bzw. ein Überwachungsprogramm (nicht dargestellt), so dass bei Überschreitung einer definierbaren Wartezeit (Attribut PRIMARY-BROKER-NONACT) Pings an den primären Broker 20 gesendet werden, um dessen Verfügbarkeit zu testen. The acquisition of the function as a broker by the backup broker 30 is as follows: In parallel to the above-mentioned efficient processing of the forwarded from the primary broker 20 journal entries, a sensor or a monitoring program is running in the backup broker 30 (not shown) so that, when exceeded, a definable waiting time (attribute pRIMARY-BROKER-NONACT) pings to the primary broker 20 are sent to test its availability. Bleibt die Antwort innerhalb der PRIMARY-BROKER-NONACT aus, wird der Backup-Broker 30 aktiviert, dh die Zurückweisung der direkten Annahme von normalen Anfragen von Teilnehmern wird abgeschaltet. If the response is within the PRIMARY-BROKER-NONACT from the backup broker 30 is activated, ie the rejection of the direct assumption of normal requests from subscribers will be switched off. Ferner wird der Journal-Interpreter gestoppt, und der Normalbetrieb als Broker beginnt. Furthermore, the Journal interpreter is stopped and normal operation begins as a broker. Alle Teilnehmeranfragen mit einer fortlaufenden Nummer, die kleiner oder gleich der bereits verarbeiteten Nummer ist, werden mit einer speziellen Fehlermeldung abgewiesen, um das Erzeugen doppelter Nachrichten oder ähnliche Verdopplungen zu vermeiden. All participants inquiries with a serial number that is less than or equal to the number already processed are rejected with a specific error message to avoid the creation of duplicate messages or similar doublings.
  • Die Schnittstelle behandelt das Zurückweisen eines doppelten SEND ohne die Applikation informieren zu müssen. The interface handles the rejection of a double SEND without having to notify the application. Ein RECEIVE wird nie zurückgewiesen. A RECEIVE is never rejected. War die Nachricht bereits zugestellt worden, interpretiert der Backup-Broker die wiederholte Anfrage als RECEIVE LAST. Was the message has already been delivered, the backup broker interpreted the repeated request as RECEIVE LAST.
  • Fig. 6 Fig. 6 zeigt die Schritte bei der Übernahme der Funktion als Broker im Detail: shows the steps involved in taking over the role as broker in detail:
    1. (1) Die Schnittstelle 71 der Applikation 70 verwendet die ID des primären Brokers 20 für die Adressierung einer Anfrage. (1) The interface 71 of the application 70 uses the ID of the primary broker 20 for addressing a request.
    2. (2) Nach Abarbeitung der Anfrage wird von der Transport-Komponente 22 des primären Brokers 20 die Antwort an die Schnittstelle 71 gesendet. (2) After processing the request will be sent from the transport component 22 of the primary broker 20 the answer to the interface 71st Die Antwort enthält auch die Adresse des verfügbaren Backup-Brokers 30. The response contains the address of the available backup Brokers 30th
    3. (3) Die Verbindung zum primären Broker 20 ist unterbrochen. (3) The connection to the primary broker 20 is interrupted. Der Backup-Broker 30 empfängt keine Journaleinträge mehr. The backup broker 30 receives no journal entries. Nach dem Erreichen des Wertes PRIMARY-BROKER-NONACT wird ein Ping vom Backup-Broker 30 an den primären Broker 20 gesendet. After reaching the value PRIMARY-BROKER-NONACT a ping from the backup broker 30 is sent to the primary broker 20th Bleibt der Ping für die PRIMARY-BROKER-NONACT Zeit unbeantwortet, leitet der Backup-Broker 30 das Notfallprogramm ein. Ping for PRIMARY-BROKER-NONACT time remains unanswered, 30 directs the backup broker an emergency program. Dazu führt der Backup-Broker 30 eine Übernahmesequenz durch, die ihn als primären Broker aktiviert. For this purpose, 30 of the backup broker performs an acquisition sequence that activates it as the primary broker. Dies beinhaltet das Akzeptieren aller Verbindungsaufforderungen und das Abarbeiten von Anfragen der Teilnehmer. This includes accepting all connection requests and the processing of requests of the participants. Wenn zu diesem Zeitpunkt kein weiterer Backup-Broker existiert, unterbleibt jegliche Kontaktaufnahme zur Sicherung der Daten im flüchtigen Speicher 33. If no other backup broker exists at this time does not occur any contact to secure the data in the volatile memory 33rd
    4. (4) Da der primäre Broker 20 nicht mehr erreichbar ist, tauscht die Schnittstelle 71 die ID für den Broker aus und versucht den Backup-Broker 30 zu kontaktieren. (4) Since the primary broker 20 is no longer available, the interface 71 exchanges the ID for the broker and tries the backup broker 30 to contact. Nach erfolgreicher Übernahme ist der Backup-Broker 30 funktionsbereit, und akzeptiert die Teilnehmer-anfrage. After successful acquisition of the backup broker 30 is operational, and accepted the subscriber request.
    5. (5) Nach Abarbeitung der Teilnehmeranfrage wird von der Transport-Komponente 32 des Backup-Broker 30 die Antwort an die Schnittstelle 71 gesendet. (5) After processing the subscriber request is sent from the transport component 32 of the back-up broker 30 the answer to the interface 71st Diese Antwort enthält keine Adresse eines neuen Backup-Brokers, es sei denn, zwischenzeitlich erfolgte der weiter unten beschriebene Start eines weiteren Backup-Brokers. This answer does not address a new backup Brokers, unless made in the meantime the start of another backup Brokers described below.
  • Im Folgenden wird das Hinzufügen eines Backup-Brokers zu einem laufenden primären Broker erläutert. Below adding a backup broker is explained to an ongoing primary broker. Dieser Vorgang erfolgt beispielsweise, wenn nach einem Ausfall eines primären Brokers in der oben beschriebenen Weise der Backup-Broker die Rolle des primären Brokers übernommen hat und nun zur Aufrechterhaltung der Ausfallsicherheit ein weiterer Backup-Broker hinzugefügt wird, beispielsweise der erneut gestartete ursprünglich primäre Broker oder ein dritter Broker, der als neuer Backup-Broker dienen soll. This process takes place for example, when has assumed the role of the primary broker for a failure of the primary broker in the manner described above, the backup broker and then to maintain the reliability, a further back-up broker is added, for example, the re-started originally primary broker or a third broker, who will serve as the new backup broker.
  • Der Vorgang des Dazuschaltens blockiert den bis dahin allein agierenden primären Broker 20 für einen kurzen Zeitraum. The process of shifting by blocking the hitherto only active primary broker 20 for a short period. Währendessen erfolgt ein Datenaustausch zwischen dem primären Broker 20 und dem Backup-Broker 30. Dazu wird zunächst der dauerhafte Speicher übertragen. Meanwhile, a data exchange between the primary broker 20 and the backup broker 30. For this, the lasting memory is first transmitted.
  • Die Möglichkeit des Übertragens der dauerhaft gespeicherten Daten vom Speicher 24 des primären Brokers 20 zum dauerhaften Speicher 34 des hinzuzufügenden Backup-Brokers 30 erlaubt unabhängig von anderen Vorgängen, Benutzerdaten bequem zu transferieren, wobei es unerheblich ist, ob der Typ des dauerhaften Speichers der Quelle und des Ziels identisch ist oder nicht. The possibility of transmitting the permanently stored data from the memory 24 of the primary broker 20 to the persistent memory 34 of the added backup Brokers 30 allows independently of other processes to transfer user data easily, it being immaterial whether the type of the permanent memory of the source and is not the same as the target or. Selbst die Betriebssysteme können unterschiedlich sein. Even the operating systems can be different. Das Protokoll zur Übertragung der dauerhaft zu speichernden Informationen und die Art der Übertragung machen den Transfer völlig flexibel. The protocol for the transmission of information to be stored permanently, and the mode of transmission make the transfer fully flexible.
  • Danach erfolgt die Übertragung aller relevanten Daten aus dem Memory Pool 23. Ähnlich wie beim fortlaufenden Journal, werden zu diesem Zweck die Datenbestände im Memory Pool 23 über ein Komplett-Journal an den Backup-Broker 30 gesendet. After that, the transfer of all relevant data from the memory pool takes place 23 Similar to the continuous Journal, the volume of data in memory pool 23 are sent over a full-Journal to the backup broker 30 for this purpose. Ein Komplett-Journal ist deshalb erforderlich, weil der gesamte Memory Pool 23 analysiert und ggf. abgeglichen werden muss. A complete Journal is necessary because the entire memory pool must be analyzed 23 and if necessary adjusted. Da diese Vorgänge ein in sich konsistentes System erfordern, darf während der Synchronisierung des primären Brokers 20 mit dem Backup-Broker 30 keine Teilnehmeranfrage bearbeitet werden. Since these operations require a consistent contained system, no subscriber request may be processed during the synchronization of the primary broker 20 to the back-up broker 30th
  • Das Transfer-Prokoll der für die dauerhaft gespeicherten Daten übertragt die Units Of Work unter Zuhilfenahme des Journal-Protokolls: The transfer Prokoll of the permanently stored data transfers the Units Of Work with the aid of the Journal protocol:
  • COMMAND: COMMAND:
    ADD_OBJ ADD_OBJ
    OBJECT: OBJECT:
    UOW UOW
    OBJECT-INDEX: OBJECT INDEX:
    Index des Objekts Index of the object
    FIELD-KEY: FIELD-KEY:
    Objektspezifische Identifikationsnummern für Obj ektdatenfelder; Object-specific identification numbers for Obj ektdatenfelder;
    Feldformat und Feldlänge ergeben sich implizit aus dem angegebenen Feldschlüssel. Format field and field length arise implicitly from the specified field key.
    FIELD-FORMAT: FIELD-FORMAT:
    i1|i2|i4 für Integer in Host-Order i1 | i2 | i4 for integer in host order
    s1|s2|sn für nicht-null-terminierte Character-Arrays in lokaler Repräsentation s1 | s2 | sn for non-null-terminated character arrays in local representation
    x1|x2|xn für hexadezimale Werte x1 | x2 | xn for hexadecimal values
    FIELD-VALUE: FIELD-VALUE:
    Wert, der im referenzierten Feld einzutragen ist. Value that must be entered in the referenced field.
    Datenrepräsentation im Format des Quell-Hosts. Data representation format of the source host.
  • Die in der UOW abgelegten Nachrichten werden als ein Binärarray übertragen. be transmitted as a binary array The data stored in the UOW messages. Die Rekonstruktion von Kontrollinformationen aus dem Binärarray erfolgt auf dem Ziel-Host, um zB Encoding-Descriptor oder Nachrichtenlängen in die lokale Repräsentation umzuwandeln. The reconstruction of control information from the binary array is carried out on the target host to transform, for example, encoding descriptor or message lengths in the local representation.
  • Abschließend wird noch die Vorgehensweise zum Start und zum Anhalten des Clusterbetriebs des primären Brokers 20 und des Backup-Brokers 30 erläutert. Finally, the procedure for starting and stopping the operation of the primary broker cluster 20 and the back-up broker 30 will be explained. Sollen beide Instanzen des Brokers annähernd zeitgleich aktiviert werden, sind folgende Schritte notwendig: If both instances of the broker are almost simultaneously activated, the following steps are necessary:
  • Der primäre Broker 20 wird mit "RUN-MODE = PRIMARY" gestartet. The primary broker 20 is started with "= RUN MODE PRIMARY". Zusätzlich wird über "PARTNER = broker_id" die Transportadresse des Backup-Brokers 30 in der Attributdatei definiert. In addition, is defined by "PARTNER = broker_id" the transport address of the backup Brokers 30 in the attribute file. Nach dem Startup des primären Brokers 20 wird versucht, den Partner zu kontaktieren. After the start of the primary broker 20 attempting partner to contact. Solange der Backup-Broker 30 nicht antwortet, ist der primäre Broker 20 für Teilnehmeranfragen nicht verfügbar. As long as the backup broker 30 does not respond, the primary broker 20 for participants requests is not available.
  • Der Backup-Broker 30 wird mit "RUN-MODE = BACKUP" gestartet. The backup broker 30 is started with "RUN-MODE = BACKUP". Zusätzlich wird über "PARTNER = broker_id" die Transportadresse des primären Brokers 20 in der Attributdatei definiert. In addition, is defined by "PARTNER = broker_id" the transport address of the primary broker 20 in the attribute file. Nach dem Startup des Backup-Brokers 30 wird versucht, den Partner zu kontaktieren. After the startup of the backup broker 30 attempting partner to contact. Solange der primäre Broker 20 nicht antwortet, bleibt der Backup-Broker 30 in Wartestellung. As long as the primary broker 20 does not respond, the backup broker 30 remains on hold. Diese Verzögerungen führen jedoch nicht zu einer Übernahme der Rolle des primären Brokers 30. However, these delays do not result in a takeover of the role of the primary broker 30th
  • Nach dem Handshake beider Broker 20, 30 wird ermittelt, ob der Backup-Broker 30 zunächst synchronisiert werden muss, oder ob beide für den Cluster-Betrieb mit Journal basiertem Update bereit sind. After the handshake of both brokers 20, 30 will determine whether the backup broker 30 must be synchronized first, or whether both are ready for cluster operation with journal-based update. Ist eine Synchronisierung erforderlich, sind die oben erläuterten Schritte zu absolvieren, die beim dynamischen Hinzufügen eines Backup-Brokers 30 notwendig sind. Is a synchronization required, the above steps have to be taken that are necessary in the dynamic addition of a backup Brokers 30th
  • Zum Anhalten der beiden Broker werden bevorzugt die folgenden Sequenzen durchgeführt: To stop the two Broker preferably, the following sequences are carried out:
    • Gemeinsames Stoppen von primärem 20 und Backup-Broker 30 (Kommando SHUTDOWN_CLUSTER): Common Stop of primary 20 and backup broker 30 (command SHUTDOWN_CLUSTER):
      1. (1) Der PARTNER Broker wird vom bevorstehenden SHUTDOWN in Kenntnis gesetzt. (1) The PARTNER broker is set by the forthcoming SHUTDOWN discretion.
      2. (2) Der primäre Broker 20 akzeptiert keine neuen Anfragen mehr. (2) The primary broker 20 does not accept new requests more.
      3. (3) Der Backup-Broker 30 arbeitet alle noch ausstehenden Journal-Sätze ab and quittiert. (3) The backup broker 30 operates any outstanding Journal phrases from and acknowledged.
      4. (4) Der primäre Broker 20 sendet Antworten für alle noch unbeantworteten Anfragen, bzw. unterbricht blockierende Calls. (4) The primary broker 20 sends responses for all still unanswered requests, and interrupts blocking calls.
      5. (5) Der primäre Broker 20 und der Backup-Broker 30 synchronisieren den gemeinsamen SHUTDOWN. (5) The primary broker 20 and the backup broker 30 synchronize the common SHUTDOWN.
      6. (6) Der primäre Broker 20 und der Backup-Broker 30 stoppen. (6) The primary broker 20 and the backup broker 30 stop.
    • Stoppen des primären Brokers 20 (Kommando SHUTDOWN_BROKER): Stopping the primary broker 20 (command SHUTDOWN_BROKER):
      1. (1) Der Backup-Broker 30 wird vom bevorstehenden SHUTDOWN in Kenntnis gesetzt. (1) The back-up broker 30 is set by the forthcoming SHUTDOWN discretion.
      2. (2) Der primäre Broker 20 akzeptiert keine neuen Teilnehmeranfragen mehr. (2) The primary broker 20 does not accept new subscriber requests more.
      3. (3) Der Backup-Broker 30 arbeitet alle noch ausstehenden Journal-Sätze ab and quittiert. (3) The backup broker 30 operates any outstanding Journal phrases from and acknowledged.
      4. (4) Der primäre Broker 20 sendet Antworten für alle noch unbeantworteten Teilnehmeranfragen, bzw. unterbricht blockierende Calls. (4) The primary broker 20 sends responses for all still unanswered subscriber requests, and interrupts blocking calls.
      5. (5) Der primäre Broker 20 und der Backup-Broker 30 synchronisieren den SHUTDOWN des primären Brokers 20. (5) The primary broker 20 and the backup broker 30 synchronize the SHUTDOWN of the primary broker 20th
      6. (6) Der primäre Broker 20 stoppt. (6) The primary broker 20 stops.
      7. (7) Der Backup-Broker 30 führt die TAKEOVER Sequenz durch, die ihn als primären Broker aktiviert. (7) The backup broker 30 performs the TAKEOVER sequence that activates it as the primary broker. Dies beinhaltet das Akzeptieren aller Verbindungsaufforderungen und das Abarbeiten von Teilnehmer-anfragen. This includes accepting all connection requests and the processing of subscriber request.
      8. (8) Da zu diesem Zeitpunkt kein Backup-Broker existiert, unterbleibt jegliche Kontaktaufnahme. (8) At this time no backup broker exists omitted any contact.
    • Stoppen des Backup-Broker (Kommando SHUTDOWN_BROKER mit Option STOP_CLUSTER_MODE). Stopping the backup broker (command SHUTDOWN_BROKER with option STOP_CLUSTER_MODE).
      1. (1) Der primäre Broker 20 wird vom bevorstehenden SHUTDOWN in Kenntnis gesetzt. (1) The primary broker 20 is set by the forthcoming SHUTDOWN discretion.
      2. (2) Der primäre Broker 20 stoppt die Übertragung von Journal-Sätzen an den Backup-Broker 30, arbeitet also im Normalbetrieb weiter. (2) The primary broker 20 stops the transmission of journal records to the backup broker 30, so in normal operation continues.
      3. (3) Der Backup-Broker 30 leitet den SHUTDOWN ein und beendet die Verarbeitung. (3) The back-up broker 30 initiates the SHUTDOWN and ends the processing.
  • Weitere Ausführungsformen der Erfindung sind im Folgenden genannt: Further embodiments of the invention are mentioned below:
    1. 1. System zum Verwalten von Kommunikation zwischen zumindest einem Client (10a - d) und zumindest einem Server (12a - d) mit 1. System for managing communication between at least one client (10a - d) and at least one server (12a - d) with
      1. a. a. einem primären Broker (20) mit einem ersten flüchtigen Speicher (23), der zumindest eine Anfrage des zumindest einen Clients (10a - d) bei dem zumindest einen Server (12a -d) verwaltet; a primary broker (20) having a first volatile memory (23), the at least one request of the at least one client (10a - d) in which at least one server (12a-d) administered;
      2. b. b. einem Backup-Broker (12a - d) mit einem zweiten flüchtigen Speicher (33), der die zumindest eine Anfrage des Clients (10a - d) bei dem Server (12a - d) verwaltet, wenn der primäre Broker (20) ausgefallen ist, dadurch gekennzeichnet, dass a backup Broker (12a - d) with a second volatile memory (33) of the at least one request of the client (10a - d) at the server (12a - d) managed when the primary broker (20) has failed, characterized, in that
      3. c. c. der primäre Broker (20) ein Journal mit Einträgen über Vorgänge auf weist, die den Zustand des ersten flüchtigen Speichers (23) verändern können, und diese Einträge des Journals an den Backup-Broker (30) sendet, so dass der Zustand des zweiten flüchtigen Speichers (33) im Wesentlichen identisch ist mit dem Zustand des ersten flüchtigen Speichers (23). the primary broker (20) has a journal with entries on actions, which can alter the state of the first nonvolatile memory (23), and these entries of the journal to the back-up broker (30) sends, so that the state of the second volatile memory (33) is substantially identical with the state of the first nonvolatile memory (23).
    2. 2. System nach Anspruch 1, wobei der primäre Broker (20) eine Filterfunktion aufweist, die festlegt, welche Einträge in das Journal geschrieben werden. 2. System according to claim 1, wherein the primary broker (20) has a filter function which defines which entries are written to the journal.
    3. 3. System nach Anspruch 1 oder 2, wobei der Backup-Broker (30) einen Journal-Interpreter aufweist, der die vom primären Broker (20) empfangenen Einträge empfangt und abarbeitet, damit der Zustand des zweiten flüchtigen Speichers (33) im Wesentlichen identisch ist mit dem Zustand des ersten flüchtigen Speichers (23). 3. System according to claim 1 or 2, wherein the backup broker (30) comprises a journal interpreter which received by the primary broker (20) receives and executes entries, so that the state of the second nonvolatile memory (33) is substantially identical is with the state of the first nonvolatile memory (23).
    4. 4. System nach Anspruch 3, wobei die Abarbeitung der Einträge in dem Journal durch den Journal-Interpreter des Backup-Brokers (30) den zweiten flüchtigen Speicher (33) durch zumindest einen anderen Schritt in den zum ersten flüchtigen Speicher (23) im Wesentlichen identischen Zustand bringt, als den / die dafür im primären Broker (20) durchgeführten Schritt(e). 4. System according to claim 3, wherein the processing of the entries within the journal by the journal interpreter of the back-up broker (30) the second volatile memory (33) by at least one other step in the first volatile memory (23) is substantially identical state brings, as the / carried out for the the primary broker (20) step (e).
    5. 5. System nach einem der Ansprüche 1 - 4, wobei der primäre Broker (20) in einer Antwort auf den Empfang einer Kommunikation von einem Client (10a - d) oder einem Server (12a - d) dem Client bzw. dem Server eine Identifizierung des Backup-Brokers (30) mitteilt. 5. System according to any one of claims 1 - 4, wherein the primary broker (20) in a response to receiving a communication from a client (10a - d) or a server (12a - d) the client and the server identification the backup Brokers (30) communicates.
    6. 6. System nach Anspruch 5, wobei jede Antwort auf die Anfrage eines Clients (10a - d) die Identifizierung des Backup-Brokers (30) aufweist. 6. System according to claim 5, wherein each answer to the request of a client (10a - d) comprises the identification of the backup Brokers (30).
    7. 7. System nach einem der Ansprüche 1-6, wobei der primäre Broker (20) eine Kommunikation mit dem zumindest einen Client (10a - d) und oder dem zumindest einen Server (12a - d), die zu einem Eintrag in dem Journal führt, erst beantwortet, nachdem der Backup-Broker (30) den Empfang des entsprechenden Eintrags quittiert hat. 7. System according to any one of claims 1-6, wherein the primary broker (20) a communication with the at least one client (10a - d) and the or at least one server (12a - d) leading to an entry in the journal , only be answered after the backup broker (30) has acknowledged the receipt of the corresponding entry.
    8. 8. System nach einem der Ansprüche 1 - 7, wobei jede Kommunikation mit dem primären Broker (20), die zu einem Eintrag im Journal führt, eindeutig identifiziert wird. 8. System according to any one of claims 1-7, wherein each communication with the primary broker (20), which leads to an entry in the journal is unambiguously identified.
    9. 9. System nach Anspruch 8, wobei jede Anfrage eines Teilnehmers an den primären Broker (20), die zu einem Eintrag in das Journal führt, fortlaufend nummeriert wird. 9. The system of claim 8, wherein each request of a participant to the primary broker (20), which leads to an entry in the journal is consecutively numbered.
    10. 10. System nach einem der Ansprüche 1 - 9, wobei der Backup-Broker (30) ein Testsignal an den primären Broker (20) schickt, wenn er über einen bestimmten Zeitraum hinweg keinen neuen Eintrag empfangen hat. 10. System according to any one of claims 1 - 9, wherein the back-up broker (30) sends a test signal to the primary broker (20) when it has not received a new entry for a certain period of time.
    11. 11. System nach Anspruch 10, wobei der Backup-Broker (30) für die Kommunikation mit dem zumindest einen Client (10a - d) und dem zumindest einen Server (12a - d) empfangsbereit wird, wenn der primäre Broker (20) auf das Testsignal nicht innerhalb einer vorbestimmten Zeit antwortet. 11. The system of claim 10, wherein the backup broker (30) for the communication with the at least one client (10a - d) and the at least one server (12a - d) is ready to receive, when the primary broker (20) on the test signal does not respond within a predetermined time.
    12. 12. System nach einem der Ansprüche 1 - 11, wobei der Backup-Broker (30) zu dem primären Broker (20) zu einem beliebigen Zeitpunkt zuschaltbar ist, indem alle bis zu diesem Zeitpunkt im Journal gespeicherten Einträge an den Backup-Broker (30) übertragen und dort abgearbeitet werden. 12. System according to any one of claims 1-11, wherein the back-up broker (30) can be connected at any time to the primary broker (20) by all entries up to that point in the journal data stored in the backup broker (30 transfer) and processed there.
    13. 13. System nach Anspruch 12, wobei zusätzlich Daten eines dauerhaften Speichers (24) des primären Brokers (20) an einen dauerhaften Speicher (34) des Backup-Prokers (30) übertragen werden. 13. The system of claim 12, wherein additionally data of a permanent memory (24) of the primary broker is transmitted (20) to a permanent memory (34) of the backup Prokers (30).
    14. 14. Computerlesbares Medium mit Anweisungen zur Bereitstellung eines Systems nach einem der Ansprüche 1-13. 14. The computer readable medium of instructions for providing a system according to any of claims 1-13.
    15. 15. Programm mit Anweisungen zu Bereitstellung eines Systems nach einem der Ansprüche 1-13. 15. Program with instructions to provide a system according to any one of claims 1-13.

    Claims (13)

    1. System zum Verwalten von Kommunikation zwischen zumindest einem Client (10a-d) und zumindest einem Server (12a - d) mit System for managing communication between at least one client (10a-d) and at least one server (12a - d) with
      a. a. einem primären Broker (20) mit einem ersten flüchtigen Speicher (23), der ausgebildet ist, um zumindest eine Anfrage des zumindest einen Clients (10a - d) bei dem zumindest einen Server (12a -d) zu verwalten; a primary broker (20) having a first volatile memory (23) which is formed to at least one request of the at least one client (10a - d) in which manage at least one server (12a-d);
      b. b. einem Backup-Broker (12a - d) mit einem zweiten flüchtigen Speicher (33), der ausgebildet ist, um die zumindest eine Anfrage des Clients (10a - d) bei dem Server (12a - d) zu verwalten, wenn der primäre Broker (20) ausgefallen ist, a backup Broker (12a - d) with a second volatile memory (33) which is adapted to the at least one request of the client (10a - d) - managing, if the primary broker (at the server (d 12a) 20) has failed,
      c. c. wobei der primäre Broker (20) ein Journal mit Einträgen über Vorgänge aufweist, die geeignet sind, den Zustand des ersten flüchtigen Speichers (23) zu verändern, und wobei der primäre Broker ausgebildet ist, um diese Einträge des Journals an den Backup-Broker (30) zu senden, so dass der Backup-Broker (30) in der Lage ist bei einem Ausfall des primären Brokers unterbrechungsfrei die Bearbeitung aller Anfragen zu übernehmen, dadurch gekennzeichnet, dass wherein the primary broker (20) comprises a journal with entries on actions that are suitable to the state of the first nonvolatile memory (23) to change, and wherein the primary broker is configured to (these entries of the journal to the back-up broker to send 30), so that the backup broker (30) is capable of interruption to take over the processing of all requests at a failure of the primary broker, characterized in that
      d. d. der primäre Broker (20) in einer Antwort auf den Empfang einer Kommunikation von einem Client (10a - d) oder einem Server (12a - d) dem Client bzw. dem Server eine Identifizierung des Backup-Brokers (30) mitteilt. notifying the client or the server, an identification of the back-up broker (30) of the primary broker (20) in a response to receiving a communication from a client (10a - - d) or a server (d 12a).
    2. System nach Anspruch 1, wobei jede Antwort auf die Anfrage eines Clients (10a - d) die Identifizierung des Backup-Brokers (30) aufweist. The system of claim 1, wherein each answer to the request of a client (10a - d) comprises the identification of the backup Brokers (30).
    3. System nach Anspruch 1, wobei der primäre Broker (20) ausgebildet ist, um eine Kommunikation mit dem zumindest einen Client (10a - d) und oder dem zumindest einen Server (12a - d), die zu einem Eintrag in dem Journal führt, erst zu beantworten, nachdem der Backup-Broker (30) den Empfang des entsprechenden Eintrags quittiert hat. The system of claim 1, wherein the primary broker (20) is formed to communicate with the at least one client (10a - d) and or the at least one server (12a - d) leading to an entry in the journal, only to answer after the backup broker (30) has acknowledged the receipt of the corresponding entry.
    4. System nach Anspruch 1, wobei der primäre Broker (20) eine Filterfunktion aufweist, die festlegt, welche Einträge in das Journal geschrieben werden. The system of claim 1, wherein the primary broker (20) has a filter function which defines which entries are written to the journal.
    5. System nach Anspruch 1, wobei der Backup-Broker (30) einen Journal-Interpreter aufweist, der die vom primären Broker (20) empfangenen Einträge empfängt und abarbeitet. The system of claim 1, wherein the back-up broker (30) comprises a journal interpreter which receives received from the primary broker (20) and executes entries.
    6. System nach Anspruch 1, wobei die Abarbeitung der Einträge in dem Journal durch den Journal-Interpreter des Backup-Brokers (30) den zweiten flüchtigen Speicher (33) durch zumindest einen anderen Schritt in einen Zustand bringt, so dass der Backup-Broker (30) in der Lage ist bei einem Ausfall des primären Brokers unterbrechungsfrei die Bearbeitung aller Anfragen zu übernehmen, als den / die dafür im primären Broker (20) durchgeführten Schritt(e). The system of claim 1, wherein the processing of the entries within the journal by the journal interpreter of the back-up broker (30) brings the second volatile memory (33) by at least one other step in a state such that the back-up broker (30 ) is able to take over in case of failure of the primary broker without interruption the processing of all requests when the / carried out for the (in the primary broker 20) step (e).
    7. System nach Anspruch 1, wobei jede Anfrage eines Teilnehmers an den primären Broker (20), die zu einem Eintrag in das Journal führt, fortlaufend nummeriert wird. The system of claim 1, wherein each request of a participant to the primary broker (20), which leads to an entry in the journal is consecutively numbered.
    8. System nach einem der Ansprüche 1 - 7, wobei der Backup-Broker (30) ein Testsignal an den primären Broker (20) schickt, wenn er über einen bestimmten Zeitraum hinweg keinen neuen Eintrag empfangen hat. System according to any one of claims 1-7, wherein the back-up broker (30) sends a test signal to the primary broker (20) when it has not received a new entry for a certain period of time.
    9. System nach Anspruch 8, wobei der Backup-Broker (30) für die Kommunikation mit dem zumindest einen Client (10a - d) und dem zumindest einen Server (12a - d) empfangsbereit wird, wenn der primäre Broker (20) auf das Testsignal nicht innerhalb einer vorbestimmten Zeit antwortet. The system of claim 8, wherein the backup broker (30) for the communication with the at least one client (10a - d) and the at least one server (12a - d) is ready to receive, when the primary broker (20) to the test signal not respond within a predetermined time.
    10. System nach einem der Ansprüche 1-9, wobei der Backup-Broker (30) zu dem primären Broker (20) zu einem beliebigen Zeitpunkt zuschaltbar ist, indem alle bis zu diesem Zeitpunkt im Journal gespeicherten Einträge an den Backup-Broker (30) übertragen und dort abgearbeitet werden. System according to any one of claims 1-9, wherein the back-up broker (30) to the primary broker is switched on at any one time (20) by transferring all entries up to that point in the journal data stored in the backup broker (30) and be processed there.
    11. System nach Anspruch 10, wobei zusätzlich Daten eines dauerhaften Speichers (24) des primären Brokers (20) an einen dauerhaften Speicher (34) des Backup-Brokers (30) übertragen werden. The system of claim 10, wherein additionally data of a permanent memory (24) of the primary broker (20) at a permanent memory (34) of the back-up broker (30) to be transferred.
    12. Computerlesbares Medium mit Anweisungen zur Bereitstellung eines Systems nach einem der Ansprüche 1 - 11. The computer-readable medium of instructions for providing a system according to any one of claims 1-11.
    13. Programm mit Anweisungen zu Bereitstellung eines Systems nach einem der Ansprüche 1 - 12. Program instructions for providing a system of any of claims 1-12.
    EP20080009257 2006-02-15 2006-02-15 Fail safe system for managing client-server communication Active EP1959639B1 (en)

    Priority Applications (1)

    Application Number Priority Date Filing Date Title
    EP20060003030 EP1821498B1 (en) 2006-02-15 2006-02-15 Fail safe system for managing client-server communication

    Related Parent Applications (2)

    Application Number Title Priority Date Filing Date
    EP20060003030 Division EP1821498B1 (en) 2006-02-15 2006-02-15 Fail safe system for managing client-server communication
    EP06003030.1 Division 2006-02-15

    Publications (2)

    Publication Number Publication Date
    EP1959639A1 true true EP1959639A1 (en) 2008-08-20
    EP1959639B1 EP1959639B1 (en) 2011-11-02

    Family

    ID=36691380

    Family Applications (2)

    Application Number Title Priority Date Filing Date
    EP20080009257 Active EP1959639B1 (en) 2006-02-15 2006-02-15 Fail safe system for managing client-server communication
    EP20060003030 Active EP1821498B1 (en) 2006-02-15 2006-02-15 Fail safe system for managing client-server communication

    Family Applications After (1)

    Application Number Title Priority Date Filing Date
    EP20060003030 Active EP1821498B1 (en) 2006-02-15 2006-02-15 Fail safe system for managing client-server communication

    Country Status (5)

    Country Link
    US (1) US8156177B2 (en)
    EP (2) EP1959639B1 (en)
    CN (1) CN101043378B (en)
    DE (1) DE502006000801D1 (en)
    ES (1) ES2307242T3 (en)

    Families Citing this family (7)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US7725764B2 (en) * 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
    US20080307036A1 (en) * 2007-06-07 2008-12-11 Microsoft Corporation Central service allocation system
    US8261286B1 (en) 2008-06-18 2012-09-04 Amazon Technologies, Inc. Fast sequential message store
    JP5609193B2 (en) * 2010-03-19 2014-10-22 富士通株式会社 Test program, test apparatus, and test method
    CN102891833B (en) * 2011-07-21 2017-03-29 中兴通讯股份有限公司 Method and system for disaster recovery network
    WO2014197963A1 (en) * 2013-06-13 2014-12-18 Tsx Inc. Failover system and method
    US9729653B2 (en) * 2014-01-23 2017-08-08 Software Ag Systems and/or methods for automatically tuning a delivery system for transmission of large, volatile data

    Citations (6)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    EP0549325A2 (en) * 1991-12-23 1993-06-30 International Business Machines Corporation Log archive filtering system for transaction-consistent forward recovery from catastrophic media failures
    US5815668A (en) * 1995-03-17 1998-09-29 Nec Corporation Slave inter-lan connection device, an inter-lan connection system and a hot standby method of said inter-lan connection system
    US6065062A (en) 1997-12-10 2000-05-16 Cisco Systems, Inc. Backup peer pool for a routed computer network
    US6578160B1 (en) * 2000-05-26 2003-06-10 Emc Corp Hopkinton Fault tolerant, low latency system resource with high level logging of system resource transactions and cross-server mirrored high level logging of system resource transactions
    US20030237018A1 (en) * 2002-06-25 2003-12-25 Hitachi, Ltd. Server takeover system and method
    US20050172161A1 (en) * 2004-01-20 2005-08-04 International Business Machines Corporation Managing failover of J2EE compliant middleware in a high availability system

    Family Cites Families (6)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US6065325A (en) * 1999-05-26 2000-05-23 Tsai; Sou-Jun Automatic stamping machine
    US6665705B1 (en) * 1999-10-19 2003-12-16 International Business Machines Corporation Method and apparatus for proxy replication
    US7043504B1 (en) 2000-04-10 2006-05-09 International Business Machines Corporation System and method for parallel primary and secondary backup reading in recovery of multiple shared database data sets
    US7130891B2 (en) * 2002-02-04 2006-10-31 Datasynapse, Inc. Score-based scheduling of service requests in a grid services computing platform
    US7647422B2 (en) 2001-11-06 2010-01-12 Enterasys Networks, Inc. VPN failure recovery
    US7188273B2 (en) * 2003-11-24 2007-03-06 Tsx Inc. System and method for failover

    Patent Citations (6)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    EP0549325A2 (en) * 1991-12-23 1993-06-30 International Business Machines Corporation Log archive filtering system for transaction-consistent forward recovery from catastrophic media failures
    US5815668A (en) * 1995-03-17 1998-09-29 Nec Corporation Slave inter-lan connection device, an inter-lan connection system and a hot standby method of said inter-lan connection system
    US6065062A (en) 1997-12-10 2000-05-16 Cisco Systems, Inc. Backup peer pool for a routed computer network
    US6578160B1 (en) * 2000-05-26 2003-06-10 Emc Corp Hopkinton Fault tolerant, low latency system resource with high level logging of system resource transactions and cross-server mirrored high level logging of system resource transactions
    US20030237018A1 (en) * 2002-06-25 2003-12-25 Hitachi, Ltd. Server takeover system and method
    US20050172161A1 (en) * 2004-01-20 2005-08-04 International Business Machines Corporation Managing failover of J2EE compliant middleware in a high availability system

    Non-Patent Citations (1)

    * Cited by examiner, † Cited by third party
    Title
    "REPLICATION AND RECOVERY OF DATABASE STATE INFORMATION IN FAULT TOLERANT CLUSTERS", IBM TECHNICAL DISCLOSURE BULLETIN, IBM CORP. NEW YORK, US, vol. 36, no. 10, 1 October 1993 (1993-10-01), pages 541 - 544, XP000412479, ISSN: 0018-8689 *

    Also Published As

    Publication number Publication date Type
    CN101043378A (en) 2007-09-26 application
    DE502006000801D1 (en) 2008-07-03 grant
    EP1821498A1 (en) 2007-08-22 application
    US8156177B2 (en) 2012-04-10 grant
    EP1821498B1 (en) 2008-05-21 grant
    EP1959639B1 (en) 2011-11-02 grant
    ES2307242T3 (en) 2008-11-16 grant
    CN101043378B (en) 2011-12-14 grant
    US20070203976A1 (en) 2007-08-30 application

    Similar Documents

    Publication Publication Date Title
    US7627612B2 (en) Methods and apparatus for optimal journaling for continuous data replication
    US7516287B2 (en) Methods and apparatus for optimal journaling for continuous data replication
    US20040249904A1 (en) Multi-class heterogeneous clients in a clustered filesystem
    US20080082591A1 (en) Methods and apparatus for managing data flow in a continuous data replication system having journaling
    US20040250113A1 (en) Clustered filesystem for mix of trusted and untrusted nodes
    US8959054B1 (en) Methods and apparatus for optimal journaling for continuous data replication
    US6449734B1 (en) Method and system for discarding locally committed transactions to ensure consistency in a server cluster
    US20080010284A1 (en) Snapshot copy of data volume during data access
    US5845061A (en) Redundant client server system
    US8341115B1 (en) Dynamically switching between synchronous and asynchronous replication
    DE60020978T2 (en) Hierarchical datensicherung- and retrieval system
    US20050138048A1 (en) XML database duplicating apparatus for copying XML document to remote server without loss of structure and attribute information of XML document and method thereof
    US20010056461A1 (en) Cluster configuration repository
    US6925586B1 (en) Methods and systems for centrally-controlled client-side filtering
    US20140149357A1 (en) Block restore ordering in a streaming restore system
    US5956489A (en) Transaction replication system and method for supporting replicated transaction-based services
    US6421741B1 (en) Switching between active-replication and active-standby for data synchronization in virtual synchrony
    JP2003531435A (en) Distributed computing processing system clustering model providing a soft real-time response and the continuous availability
    US20050210081A1 (en) Data synchronization method
    Ronstrom et al. MySQL cluster architecture overview
    EP0635792B1 (en) Coordination method for parallel access to resource configurations by a plurality of processors
    CN1432248A (en) Method and device for distributed caching
    US20040210673A1 (en) Messaging between heterogeneous clients of a storage area network
    CN101650741A (en) Method and system for updating index of distributed full-text search in real time
    US8285689B2 (en) Distributed file system and data block consistency managing method thereof

    Legal Events

    Date Code Title Description
    AK Designated contracting states:

    Kind code of ref document: A1

    Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

    AC Divisional application (art. 76) of:

    Ref document number: 1821498

    Country of ref document: EP

    Kind code of ref document: P

    17P Request for examination filed

    Effective date: 20080520

    17Q First examination report

    Effective date: 20080812

    AKX Payment of designation fees

    Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

    AK Designated contracting states:

    Kind code of ref document: B1

    Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

    AC Divisional application (art. 76) of:

    Ref document number: 1821498

    Country of ref document: EP

    Kind code of ref document: P

    REG Reference to a national code

    Ref country code: GB

    Ref legal event code: FG4D

    Free format text: NOT ENGLISH

    REG Reference to a national code

    Ref country code: CH

    Ref legal event code: EP

    REG Reference to a national code

    Ref country code: IE

    Ref legal event code: FG4D

    REG Reference to a national code

    Ref country code: DE

    Ref legal event code: R096

    Ref document number: 502006010549

    Country of ref document: DE

    Effective date: 20120105

    REG Reference to a national code

    Ref country code: NL

    Ref legal event code: VDEP

    Effective date: 20111102

    LTIE Lt: invalidation of european patent or patent extension

    Effective date: 20111102

    PG25 Lapsed in a contracting state announced via postgrant inform. from nat. office to epo

    Ref country code: IS

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20120302

    Ref country code: LT

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20111102

    PG25 Lapsed in a contracting state announced via postgrant inform. from nat. office to epo

    Ref country code: LV

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20111102

    Ref country code: SE

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20111102

    Ref country code: PT

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20120302

    Ref country code: GR

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20120203

    Ref country code: SI

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20111102

    Ref country code: NL

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20111102

    Ref country code: PL

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20111102

    REG Reference to a national code

    Ref country code: IE

    Ref legal event code: FD4D

    PG25 Lapsed in a contracting state announced via postgrant inform. from nat. office to epo

    Ref country code: CY

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20111102

    PG25 Lapsed in a contracting state announced via postgrant inform. from nat. office to epo

    Ref country code: CZ

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20111102

    Ref country code: EE

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20111102

    Ref country code: DK

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20111102

    Ref country code: BG

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20120202

    Ref country code: SK

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20111102

    Ref country code: IE

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20111102

    BERE Be: lapsed

    Owner name: SOFTWARE A.G.

    Effective date: 20120228

    PG25 Lapsed in a contracting state announced via postgrant inform. from nat. office to epo

    Ref country code: RO

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20111102

    Ref country code: IT

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20111102

    REG Reference to a national code

    Ref country code: CH

    Ref legal event code: PL

    PG25 Lapsed in a contracting state announced via postgrant inform. from nat. office to epo

    Ref country code: MC

    Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

    Effective date: 20120229

    26N No opposition filed

    Effective date: 20120803

    PG25 Lapsed in a contracting state announced via postgrant inform. from nat. office to epo

    Ref country code: LI

    Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

    Effective date: 20120229

    Ref country code: CH

    Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

    Effective date: 20120229

    REG Reference to a national code

    Ref country code: FR

    Ref legal event code: ST

    Effective date: 20121031

    REG Reference to a national code

    Ref country code: DE

    Ref legal event code: R097

    Ref document number: 502006010549

    Country of ref document: DE

    Effective date: 20120803

    PG25 Lapsed in a contracting state announced via postgrant inform. from nat. office to epo

    Ref country code: BE

    Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

    Effective date: 20120228

    PG25 Lapsed in a contracting state announced via postgrant inform. from nat. office to epo

    Ref country code: FR

    Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

    Effective date: 20120229

    REG Reference to a national code

    Ref country code: AT

    Ref legal event code: MM01

    Ref document number: 532313

    Country of ref document: AT

    Kind code of ref document: T

    Effective date: 20120215

    PG25 Lapsed in a contracting state announced via postgrant inform. from nat. office to epo

    Ref country code: ES

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20120213

    PG25 Lapsed in a contracting state announced via postgrant inform. from nat. office to epo

    Ref country code: AT

    Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

    Effective date: 20120215

    Ref country code: FI

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20111102

    PG25 Lapsed in a contracting state announced via postgrant inform. from nat. office to epo

    Ref country code: TR

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20111102

    PG25 Lapsed in a contracting state announced via postgrant inform. from nat. office to epo

    Ref country code: LU

    Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

    Effective date: 20120215

    PG25 Lapsed in a contracting state announced via postgrant inform. from nat. office to epo

    Ref country code: HU

    Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

    Effective date: 20060215

    PGFP Postgrant: annual fees paid to national office

    Ref country code: DE

    Payment date: 20180219

    Year of fee payment: 13

    Ref country code: GB

    Payment date: 20180216

    Year of fee payment: 13