DE112011102242T5 - Vorrichtung zum Verarbeiten einer Stapelarbeitseinheit - Google Patents

Vorrichtung zum Verarbeiten einer Stapelarbeitseinheit Download PDF

Info

Publication number
DE112011102242T5
DE112011102242T5 DE112011102242T DE112011102242T DE112011102242T5 DE 112011102242 T5 DE112011102242 T5 DE 112011102242T5 DE 112011102242 T DE112011102242 T DE 112011102242T DE 112011102242 T DE112011102242 T DE 112011102242T DE 112011102242 T5 DE112011102242 T5 DE 112011102242T5
Authority
DE
Germany
Prior art keywords
retraction
counter
commit
messages
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE112011102242T
Other languages
English (en)
Inventor
Jose Emir Garza
Stephen James Hobson
Matthew Ernest Golby-Kirk
Trevor Clifford Dolby
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112011102242T5 publication Critical patent/DE112011102242T5/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

Vorrichtung zum Verarbeiten einer Stapelarbeitseinheit, die mit einer Mehrzahl von Nachrichten verknüpft ist, zur Verwendung mit einem Datenspeicher zum Speichern: eines Zurückziehungszählers, der mit einer Reihe von Instanzen verknüpft ist, die in Verbindung mit der zurückgesetzten Stapelarbeitseinheit arbeiten, die eine Zurückziehung erfährt; eines Zurückziehungsgrenzwerts, der mit dem Zurückziehungszähler verknüpft ist; und eines Festschreibzählers, der mit dem Festschreiben der Stapelarbeitseinheit als Reaktion auf die erfolgreichen Festschreibeoperationen für eine bestimmte Anzahl der Mehrzahl der Nachrichten verknüpft ist, wobei die Vorrichtung aufweist: Ein Prüfprogramm, um zu prüfen, ob der Zurückziehungszähler größer Null und kleiner als der Zurückziehungsgrenzwert ist; und eine Überschreibungskomponente, die darauf reagiert, dass der Zurückziehungszähler größer Null und kleiner als der Zurückziehungsgrenzwert ist, um den Festschreibezähler zu überschreiben und die Stapelarbeitseinheit für eine Teilmenge der Mehrzahl der Nachrichten festzuschreiben.

Description

  • Technischer Anwendungsbereich
  • Die vorliegende Erfindung bezieht sich auf eine Vorrichtung zum Verarbeiten einer Stapelarbeitseinheit.
  • Hintergrundinformation
  • In nachrichtengesteuerten transaktionalen Anwendungen führt ein Server für eine Nachrichttransaktion eine erzwungene Schreiboperation auf Festplatte durch, wenn eine Festschreibeentscheidung berechnet wurde.
  • Erzwungene Schreiboperationen auf Platte sind aufwändig und führen zu Verzögerungen.
  • Bei nachrichtengesteuerten Transaktionen kann die Effizienz durch eine Stapelverarbeitung erhöht werden, wodurch eine Transaktion mit einer bestimmten Anzahl an Nachrichten verknüpft wird. Somit wird anstatt einer erzwungenen Schreiboperation auf Festplatte für jede Nachricht eine erzwungene Schreiboperation auf Festplatte für eine Reihe von Festschreibentscheidungen durchgeführt, die mit der bestimmten Anzahl von Nachrichten verknüpft sind.
  • Wenn jedoch die Stapelverarbeitung zu Problemen führt, z. B. wenn ein Fehler auftritt, wodurch die Nachricht nicht erfolgreich verarbeitet wird, so wird die Arbeit, die mit allen Nachrichten in der (Stapelverarbeitungs-)Transaktion verknüpft ist, zurückgesetzt bzw. zurückgezogen.
  • Daher besteht im Stand der Technik das Erfordernis, die oben beschriebenen Probleme zu lösen.
  • Offenlegung der Erfindung
  • Gemäß einem ersten Aspekt wird eine Vorrichtung zum Verarbeiten einer Stapelarbeitseinheit bereitgestellt, die mit einer Mehrzahl von Nachrichten verknüpft ist, zur Verwendung mit einem Datenspeicher zum Speichern: eines Zurückziehungszählers (Backout Count), der mit einer Reihe von Instanzen verknüpft ist, die in Verbindung mit der zurückgesetzten Stapelarbeitseinheit arbeiten, die eine Zurückziehung erfährt; eines Zurückziehungsgrenzwerts (Backout Threshold), der mit dem Zurückziehungszähler verknüpft ist; und eines Festschreibezählers (Commit Count), der mit dem Festschreiben der Stapelarbeitseinheit als Reaktion auf erfolgreiche Festschreibeoperationen für eine bestimmte Anzahl der Mehrzahl von Nachrichten verknüpft ist, wobei die Vorrichtung aufweist: ein Prüfprogramm, um zu prüfen, ob der Zurückziehungszähler größer Null und kleiner als der Zurückziehungsgrenzwert ist; und eine Überschreibungskomponente, die darauf reagiert, dass der Zurückziehungszähler größer Null und kleiner als der Zurückziehungsgrenzwert ist, um den Festschreibezähler zu überschreiben und die Stapelarbeitseinheit für eine Teilmenge der mehreren Nachrichten festzuschreiben.
  • Gemäß einem zweiten Aspekt wird ein Verfahren zum Verarbeiten einer Stapelarbeitseinheit bereitgestellt, die mit mehreren Nachrichten verknüpft ist, zur Verwendung mit einem Datenspeicher zum Speichern: eines Zurückziehungszählers, der mit einer Reihe von Instanzen verknüpft ist, die in Verbindung mit der zurückgesetzten Stapelarbeitseinheit arbeiten, die eine Zurückziehung erfährt; eines Zurückziehungsgrenzwerts, der mit dem Zurückziehungszähler verknüpft ist; und eines Festschreibzählers, der mit dem Festschreiben der Stapelarbeitseinheit als Reaktion auf erfolgreiche Festschreibeoperationen für eine bestimmte Anzahl der mehreren Nachrichten verknüpft ist, wobei das Verfahren die Schritte aufweist: Prüfen, ob der Zurückziehungszähler größer Null und kleiner als der Zurückziehungsgrenzwert ist; und in Reaktion darauf, dass der Zurückziehungszähler größer Null und kleiner als der Zurückziehungsgrenzwert ist, wird der Festschreibezähler überschrieben und die Stapelarbeitseinheit wird für eine Teilmenge der mehreren Nachrichten festgeschrieben.
  • Unter einem dritten Aspekt betrachtet stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Verarbeiten einer Stapelarbeitseinheit, die mit mehreren Nachrichten verknüpft ist, zur Verwendung mit einem Datenspeicher bereit, wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium, das von einem Verarbeitungsschaltkreis lesbar ist und Anweisungen zum Ausführen eines Verfahrens durch den Verarbeitungsschaltkreis zum Ausführen der Schritte der Erfindung speichert.
  • Von einem weiteren Aspekt aus betrachtet, stellt die vorliegende Erfindung ein auf einem computerlesbaren Medium gespeichertes und in den internen Hauptspeicher eines digitalen Computer ladbares Computerprogramm bereit, das Softwarecodeabschnitte zum Ausführen der Schritte der Erfindung enthält, wenn das Programm auf einem Computer ausgeführt wird.
  • Kurzbeschreibung der Zeichnungen
  • Die vorliegende Erfindung nun wird ausführlicher in rein beispielhafter Weise mit Bezugnahme auf die bevorzugten Ausführungsformen beschrieben, wie in den folgenden Abbildungen dargestellt:
  • 1 ist ein Blockdiagramm eines Systems, in dem die bevorzugte Ausführungsform implementiert werden kann;
  • 2 ist ein Blockdiagramm einer Vorrichtung der bevorzugten Ausführungsform; und
  • 3 ist ein Ablaufdiagramm, das die operativen Schritte in einem Prozess gemäß der bevorzugten Ausführungsform darstellt.
  • Detaillierte Beschreibung der bevorzugten Ausführungsform
  • Bevor die bevorzugte Ausführungsform detailliert beschrieben wird, wird eine unterstützende Einführung zu Message Queing (Nachrichtenwarteschlangen), Nachrichten-Broker (Message Broker) und dem Nachrichtenfluss (Message Flow) angeführt.
  • Die Fähigkeit neue und bestehende Datenverarbeitungstechnologien schnell zu übernehmen, zu integrieren und zu erweitern, ist für viele Unternehmen erfolgsentscheidend geworden. Heterogenität und die Veränderung in Datenverarbeitungsnetzwerken sind heute Standard und erfordern Kommunikationslösungen, mit denen die Interoperabilität zwischen verschiedenen Systemen verwirklicht werden kann. Die Nachrichtenübertragung von Anwendung zu Anwendung über intelligente Middleware-Produkte bietet hier eine Lösung für dieses Problem.
  • So ist zum Beispiel die IBM® WebSphere® MQSeries® (IBM, WebSphere und MQSeries sind Markenzeichen der International Business Machines Corporation, die in vielen Gerichtsbarkeiten weltweit registriert sind.) eine Messaging- und Queuing-Produktfamilie, die bekannt ist für die Unterstützung des Zusammenwirkens von Anwendungsprogrammen, die auf unterschiedlichen Systemen in einer verteilten heterogenen Umgebung ausgeführt werden.
  • Einige Messaging-Produkte bieten Unterstützung für transaktionales Messaging, die Synchronisierung von Nachrichten mit logischen Arbeitseinheiten gemäß einem Messaging-Protokoll, das eine sichergestellte einmalige Zustellung selbst im Falle eines System- oder Datenübertragungsfehlers unterstützt. Einige Produkte ermöglichen die sichergestellte Zustellung, indem eine Nachricht aus einem Sendersystem erst dann endgültig gelöscht wird, wenn sie auf einem Empfängersystem als sicher gespeichert bestätigt wurde, sowie durch die Verwendung ausgefeilter Recovery-Einrichtungen. Bevor die Übertragung der Nachricht bei Bestätigung der erfolgreichen Speicherung festgeschrieben wird, werden sowohl das Löschen der Nachricht aus dem Speicher im Sendersystem und das Einfügen in den Speicher im Empfängersystem in einem „vorläufigen Zustand” gehalten und können im Falle eines Fehlers automatisch zurückgesetzt bzw. zurückgezogen werden.
  • Die beispielsweise von den IBM-WebSphere-MQSeries-Produkten bereitgestellte Message Queuing-Unterstützung der Kommunikation zwischen Programmen ermöglicht allen Anwendungsprogrammen, Nachrichten an die Eingabewarteschlange eines anderen Zielanwendungsprogramms zu senden, und jede Zielanwendung kann diese Nachrichten asynchron aus der Eingabewarteschlange zur Verarbeitung abrufen. Die ermöglicht die gesicherte Zustellung von Nachrichten zwischen Anwendungsprogrammen, die über ein heterogenes Computernetzwerk verteilt sein können, ohne dass eine dedizierte logische End-to-End-Verbindung zwischen den Anwendungsprogrammen erforderlich ist. Es kann sogar eine hohe Komplexität in der Übersicht der möglichen Verbindungen zwischen den Anwendungsprogrammen vorliegen.
  • Diese Komplexität kann stark vereinfacht werden, indem in die Netzwerkarchitektur ein Kommunikationshub integriert wird, mit dem die anderen Systeme verbunden sind, anstatt direkte Verbindungen zwischen allen Systemen zu unterhalten. Message Brokering-Einrichtungen können dann am Kommunikationshub bereitgestellt werden, um die intelligente Weiterleitung von Nachrichten und die Integration von Anwendungen zu ermöglichen. Zu den Message Brokering-Funktionen gehören in der Regel die Fähigkeit, Nachrichten auf intelligente Weise gemäß den Geschäftsregeln und der Kenntnis der Informationsanforderungen der verschiedenen Anwendungsprogramme weiterzuleiten, wobei in den Nachrichten-Headern enthaltene Nachricht-”Themen”-Informationen verwendet werden, und die Fähigkeit, Nachrichtenformate mithilfe der Kenntnis der Nachrichtenformatanforderungen der Zielanwendungen oder -systeme umzuwandeln, um die Unterschiede zwischen den Systemen und Anwendungen aufeinander abzustimmen.
  • Einige Brokering-Einrichtungen (wie die, die beispielsweise vom IBM WebSphere Message Broker bereitgestellt werden) stellen intelligente Weiterleitungs- und Umwandlungsdienste für Nachrichten bereit, die mithilfe von Messaging-Produkten zwischen Anwendungsprogrammen ausgetauscht werden.
  • Die Unterstützung für die Verwaltung und die Entwicklung von Message Brokering-Anwendungen kann in einer Nachrichten-Broker-Architektur implementiert werden, um Funktionen wie das Veröffentlichen/Abonnieren (Publish/Subscribe) der Nachrichtenzustellung, die Nachrichtenumwandlung, die Datenbankintegration, Message Warehousing und das Weiterleiten von Nachrichten bereitzustellen.
  • Es folgt nun eine detailliertere Beschreibung des Stands der Technik mit Bezugnahme auf 1, in der ein System (100) dargestellt ist, das eine Umgebung (120) mit einer zugrundeliegenden Messaging-Unterstützung (mit einem Warteschlangenmanager (130), einer Eingabewarteschlange (135); einer Ausgabewarteschlange (140); einer Fehlerwarteschlange (145)) und einem Computerprogramm (125) z. B. einem Datenbankmanager (125) mit Datenbanktabellen (127) eines Datenverarbeitungssystems aufweist.
  • Das System (100) weist auch einen Nachrichten-Broker (105) auf, der eine Ausführungsgruppe (110) hostet, die wiederum einen Nachrichtenfluss (115) hostet.
  • Ein Nachrichtenfluss ist eine visuelle Darstellung einer Folge von Operationen, die von der Verarbeitungslogik eines Nachrichten-Brokers als gerichteter Graph (ein Nachrichtenflussdiagramm) zwischen einer Eingabe und einem Ziel (zum Beispiel einer Eingabewarteschlange und einer Zielwarteschlange) ausgeführt wird. Das Nachrichtenflussdiagramm besteht aus Nachrichtenverarbeitungsknoten, die Darstellungen der Verarbeitungskomponenten sind, und Nachrichtenflusskonnektoren zwischen den Knoten.
  • In dem Beispiel stellt der Nachrichtenfluss (115) die Verarbeitungslogik der Eingabewarteschlange (135); der Ausgabewarteschlange (140); der Fehlerwarteschlange (145) und des Datenbankmanagers (125) dar.
  • In einem ersten Beispiel des Stands der Technik erhält die Verarbeitungslogik in der Regel eine Nachricht von der Eingabewarteschlange (135) (dadurch wird eine Transaktion gestartet); aktualisiert eine Datenbanktabelle (127); und fügt eine Nachricht in die Ausgabewarteschlange (140) ein – dieser Vorgang wird in der Regel in der Transaktion ausgeführt und die Arbeit wird festgeschrieben, bevor die nächste Nachricht aus der Eingabewarteschlange (135) abgerufen wird. Wenn ein Fehler auftritt, wird die Arbeit zurückgesetzt bzw. zurückgezogen und die Nachricht in die Eingabewarteschlange (135) „zurückgeschrieben” – in diesem Fall wird ein Zurückziehungszähler um 1 erhöht.
  • In der Regel wird für Warteschlangen auch ein Zurückziehungsgrenzwert definiert, der angibt, wie oft eine Nachricht zurückgesetzt bzw. zurückgezogen werden darf, bevor sie in die Fehlerwarteschlange (145) eingefügt wird. Anders ausgedrückt, wenn der Zurückziehungszähler größer ist als der Zurückziehungsgrenzwert, wird die Nachricht in die Fehlerwarteschlange (145) eingefügt.
  • Das Problem mit dem oben beschriebenen ersten Beispiel des Stands der Technik ist die Leistung: Das Festschreiben der Arbeit führt dazu, dass ein zugehöriger Transaktionskoordinator und die Ressourceneigentümer – in diesem Beispiel sind die Ressourceneigentümer der Warteschlangenmanager (130) und der Datenbankmanager (125) – Schreibvorgänge in ein Log (Protokoll) erzwingen, was eine Verzögerung verursacht.
  • Eine Lösung für dieses Problem findet sich im zweiten Beispiel des Stands der Technik. Wie bei den Hintergrundinformationen beschrieben, ist es möglich, die Effizienz durch Stapelverarbeitung zu erhöhen, sodass eine einzelne Transaktion mit einer bestimmten Anzahl an Nachrichten verknüpft ist. In diesem Beispiel wird nicht die Arbeit für jede Nachricht einzeln festgeschrieben, sondern die Transaktion wird nach den Festschreibeoperationen einer bestimmten Anzahl an Nachrichten festgeschrieben.
  • In einer Implementierung des zweiten Beispiels des Stands der Technik wird ein Nachrichtenflussattribut namens Festschreibezähler (commit count) verwendet.
  • In der Implementierung wird ein Nachrichtenzähler (Message Count) vor der Verarbeitung anfangs auf Null gesetzt.
  • Als Nächstes ruft die Verarbeitungslogik eine Nachricht aus der Eingabewarteschlange (135) ab (damit wird eine Transaktion gestartet).
  • Der Nachrichtenzähler wird um 1 erhöht.
  • Eine Prüfung wird durchgeführt, um zu bestimmen, ob der Zurückziehungszähler größer ist als ein Zurückziehungsgrenzwert – ist dies der Fall, wird die Nachricht in die Fehlerwarteschlange (145) eingefügt.
  • Wenn der Zurückziehungszähler nicht größer ist als der Zurückziehungsgrenzwert, wird die Datenbanktabelle (127) aktualisiert und die Nachricht in die Ausgabewarteschlange (140) eingefügt.
  • Eine weitere Prüfung wird durchgeführt, um zu bestimmen, ob der Nachrichtenzähler größer oder gleich dem Festschreibezähler ist.
  • Wenn der Nachrichtenzähler nicht größer oder gleich dem Festschreibezähler ist, ruft die Verarbeitungslogik eine weitere Nachricht aus der Eingabewarteschlange (135) ab und die obigen Schritte werden wiederholt.
  • Wenn der Nachrichtenzähler größer oder gleich dem Festschreibezähler ist, wird die Transaktion für jede Nachricht festgeschrieben (ein Logschreibvorgang wird für die Transaktion erzwungen), und der Nachrichtenzähler wird auf Null gesetzt.
  • Mit dem zweiten Beispiel des Stands der Technik sind verschiedene Probleme verbunden.
  • Als Erstes, obwohl der Festschreibezähler gemäß der Implementierung die Verarbeitung erheblich beschleunigt, weist er den Nachteil auf, dass wenn ein Fehler vorliegt, der zum Zurücksetzen einer Transaktion führt, der gesamte Nachrichtenstapel betroffen ist. Wenn beispielsweise der Festschreibezähler auf „300” festgelegt ist und die 200. Nachricht eine Ausnahme verursacht, werden alle 200 Nachrichten im aktuellen Stapel zurückgesetzt bzw. zurückgezogen und später in die Fehlerwarteschlange eingefügt.
  • Zweitens können Datenbankmanager bei hoher Belastung eine „Eskalation sperren”, was dazu führen kann, dass Fehler bei Festschreibungen auftreten, selbst wenn keine Anwendungsfehler vorliegen. Im Besonderen können Fehler bei Festschreibungen auftreten, wenn ein großer Nachrichtenstapel verarbeitet wird, selbst wenn kleinere mit den gleichen Informationen verarbeitete Nachrichtenstapel erfolgreich sind.
  • Eine Lösung für dieses Problem ist in einem dritten Beispiel des Stands der Technik vorgesehen – in einer Implementierung wird ein zweiter „kopierter” („cloned”) Nachrichtenfluss bereitgestellt, der mit dem Festschreibezähler = 1 ausgeführt wird. Wenn der erste Nachrichtenfluss eine Nachricht mit Zurückziehungszähler > Zurückziehungsgrenzwert liest, fügt er dies anstatt in die Fehlerwarteschlange in die Eingabewarteschlange des zweiten, „kopierten” Nachrichtenflusses ein (die Nachricht wird in die Eingabewarteschlange mit dem Zurückziehungszähler = 0 eingefügt). Wenn der zweite, „kopierte” Nachrichtenfluss eine Nachricht mit dem Zurückziehungszähler = 0 liest, wird sie auf die gleiche Weise verarbeitet im ersten Nachrichtenfluss. Wenn der zweite, „kopierte” Nachrichtenfluss eine Nachricht mit einem Zurückziehungszähler > Zurückziehungsgrenzwert liest, wird die Nachricht in die Fehlerwarteschlange eingefügt. Wenn, mit Bezugnahme auf das frühere Beispiel, bei der 200. Nachricht im Stapel ein Fehler auftritt, wird der zweite, „kopierte” Nachrichtenfluss die Nachrichten 1 bis 199 erfolgreich verarbeiten und die 200. Nachricht wird wieder zu einem Fehler führen und in die Fehlerwarteschlange eingefügt.
  • Das dritte Beispiel des Stands der Technik führt weitere Probleme ein.
  • Als Erstes schafft das dritte Beispiel des Stands der Technik einen zusätzlichen Administrationsaufwand, da zwei Kopien der Nachrichtenflüsse bereitgestellt und verwaltet werden müssen.
  • Zweitens geht die Reihenfolge der Nachrichten verloren – wenn z. B. eine Nachricht in der Mitte eines großen Stapels zu einem Fehler führt, werden alle Nachrichten im Stapel vom zweiten (kopierten/ge-clonten) Fluss parallel zum ersten (originalen) Fluss verarbeitet. Dies ist möglicherweise für Anwendungen, die Nachrichten in einer bestimmten Reigenfolge verarbeiten müssen, nicht akzeptabel.
  • Diese Probleme werden in der bevorzugten Ausführungsform behandelt, die mit Bezugnahme auf 2 und 3 beschrieben wird.
  • Gemäß der bevorzugten Ausführungsform wird ein Controller (29) (Steuereinheit) bereitgestellt, der in 2 dargestellt ist. Der Controller (200) umfasst ein Prüfprogramm (205) und eine Überschreibungskomponente (210). Das Prüfprogramm (205) ist für den Zugriff auf einen Datenspeicher (215) funktionsfähig, der die Werte eines Nachrichtenzählers, eines Festschreibezählers, eines Zurückziehungszähler und eines Zurückziehungsgrenzwerts speichert. Der Controller (200) ist für die Verwendung mit dem System von 1 funktionsfähig.
  • Der Controller (200) ist funktionsfähig, um den Festschreibezähler konditional zu verwenden: Wenn der Zurückziehungszähler größer Null ist (aber unter dem Zurückziehungsgrenzwert liegt), ignoriert der Controller (200) den Festschreibezähler und schreibt die Transaktion für jede Nachricht fest (wie bei einem Festschreibezähler von 1).
  • Ein Prozess der bevorzugten Ausführungsform wird im Folgenden mit Bezugnahme auf 3 beschrieben.
  • In Schritt 300 wird ein Nachrichtenzähler vor der Verarbeitung anfangs auf Null gesetzt.
  • In Schritt 305 wird eine Nachricht aus der Eingabewarteschlange (135) abgerufen (dies startet eine Transaktion).
  • Der Nachrichtenzähler wird um 1 erhöht.
  • Eine Prüfung (Schritt 310) wird von dem Prüfprogramm (205) durchgeführt, wobei auf den Datenspeicher (215) zugegriffen wird, um zu bestimmen, ob ein Zurückziehungszähler größer als Zurückziehungsgrenzwert ist – ist dies der Fall, wird die Nachricht in die Fehlerwarteschlange (145) eingefügt (Schritt 315).
  • Wenn der Zurückziehungszähler nicht über dem Zurückziehungsgrenzwert liegt, wird die Datenbanktabelle (127) aktualisiert (Schritt 320) und die Nachricht in die Ausgabewarteschlange (140) eingefügt (Schritt 325).
  • Eine weitere Prüfung wird vom Prüfprogramm (205) durchgeführt, wobei auf den Datenspeicher (215) zugegriffen wird, um zu bestimmen, ob der Nachrichtenzähler größer oder gleich dem Festschreibezähler ist oder ob der Zurückziehungszähler größer Null ist.
  • Wenn der Nachrichtenzähler nicht größer oder gleich dem Festschreibezähler ist oder der Zurückziehungszähler nicht größer Null ist, wird eine weitere Nachricht aus der Eingabewarteschlange (135) abgerufen.
  • Wenn der Nachrichtenzähler größer oder gleich dem Festschreibezähler ist, wird die Transaktion festgeschrieben (Schritt 335) (ein Logschreibvorgang wird für die Transaktion erzwungen), und der Nachrichtenzähler wird auf Null gesetzt (Schritt 340).
  • Man beachte auch, dass wenn der Zurückziehungszähler größer Null ist (aber unter dem Zurückziehungsgrenzwert liegt), ignoriert die Überschreibungskomponente (210) den Festschreibezähler und schreibt die Transaktion für jede Nachricht fest (Schritt 335) (wie wenn der Festschreibezähler 1 wäre). Der Nachrichtenzähler wird auf Null gesetzt (Schritt 340).
  • Ein Beispiel wird im Folgenden beschrieben. In dem Beispiel ist der Zurückziehungsgrenzwert „1” und der Festschreibezähler ist „5”.
  • In Schritt 300 wird ein Nachrichtenzähler vor der Verarbeitung ursprünglich auf Null gesetzt (man beachte auch, dass in diesem Beispiel der Zurückziehungszähler Null ist).
  • In Schritt 305 wird eine Nachricht M_1 aus der Eingabewarteschlange (135) abgerufen (dies startet eine Transaktion T_1).
  • Der Nachrichtenzähler wird um 1 erhöht und im Datenspeicher (215) gespeichert.
  • Eine Prüfung (Schritt 310) wird vom Prüfprogramm (205) durchgeführt, um zu bestimmen, ob ein Zurückziehungszähler größer ist als der Zurückziehungsgrenzwert. In dem Beispiel tritt kein Fehler auf, was dazu führt, dass der Zurückziehungszähler „0” bleibt. Da der Zurückziehungszähler („0”) nicht über dem Zurückziehungsgrenzwert („1”) liegt, wird die Datenbanktabelle (127) aktualisiert (Schritt 320) und die Nachricht M_1 in die Ausgabewarteschlange (140) eingefügt (Schritt 325).
  • Eine weitere Prüfung wird vom Prüfprogramm (205) durchgeführt, um zu bestimmen, ob der Nachrichtenzähler („1”) größer oder gleich dem Festschreibezähler („5”) ist, oder ob der Zurückziehungszähler („0”) größer Null ist – da keine dieser Bedingungen wahr ist, wird eine weitere Nachrichten aus der Eingabewarteschlange abgerufen (135).
  • In Schritt 305 wird eine weitere Nachricht M_2 aus der Eingabewarteschlange (135) abgerufen (man beachte, dass die andere Nachricht M_2 mit der gleichen Transaktion T_1 verknüpft ist, die früher gestartet wurde).
  • Der Nachrichtenzähler wird um 1 erhöht, was zu einem Nachrichtenzähler von „2” führt, und im Datenspeicher (215) gespeichert.
  • Eine Prüfung (Schritt 310) wird vom Prüfprogramm (205) durchgeführt, um zu bestimmen, ob der Zurückziehungszähler größer ist als der Zurückziehungsgrenzwert. An diesem Punkt tritt in dem Beispiel ein Fehler auf (in 3 aus Gründen der Übersichtlichkeit nicht dargestellt), was dazu führt, dass die Arbeit (die Transaktion T_1) zurückgesetzt bzw. zurückgezogen wird und die beiden Nachrichten (M_1 und M_2) in die Eingabewarteschlange (135) „zurückgeschrieben” werden. Darüber hinaus wird der Zurückziehungszähler um 1 erhöht, was zu einem Zurückziehungszähler von „1” führt. Der Nachrichtenzähler wird auf „0” (215) gesetzt und im Datenspeicher (215) gespeichert.
  • Der Prozess geht zurück zu Schritt 305, wo die erste Nachricht M_1 erneut aus der Eingabewarteschlange (135) abgerufen wird. Dadurch wird eine neue Transaktion T_2 gestartet.
  • Der Nachrichtenzähler wird um 1 erhöht, was zu einem Nachrichtenzähler von „1” (215) führt.
  • Eine Prüfung (Schritt 310) wird vom Prüfprogramm (2) durchgeführt, um zu bestimmen, ob der Zurückziehungszähler („1”) größer ist als der Zurückziehungsgrenzwert („1”).
  • In dem Beispiel bestimmt das Prüfprogramm (205), dass der Zurückziehungszähler („1”) nicht größer ist als der Zurückziehungsgrenzwert („1”). In der Folge wird die Datenbanktabelle (127) aktualisiert (Schritt 320) und eine erste Meldung M_1 wird in die Ausgabewarteschlange (140) eingefügt (Schritt 325).
  • Eine weitere Prüfung (Schritt 330) wird vom Prüfprogramm (205) durchgeführt, um zu bestimmen, ob der Nachrichtenzähler („1”) größer oder gleich dem Festschreibezähler („5”) ist – diese Bedingung trifft nicht zu.
  • Das Prüfprogramm (205) bestimmt auch, ob der Zurückziehungszähler („1”) größer Null ist (aber unter dem Zurückziehungsgrenzwert von „1” liegt) – diese Bedingung trifft zu.
  • In der Folge übergeht die Überschreibungskomponente (210) den Festschreibezähler von „5” (das heißt, der Nachrichtenzähler muss größer oder gleich dem Festschreibezähler sein, bevor die Transaktion festgeschrieben wird).
  • Stattdessen verursacht die Überschreibungskomponente (210), dass die Transaktion (T_2) festgeschrieben wird (Schritt 335) (das Ergebnis davon entspricht dem, wenn der Festschreibungszähler „1” ist).
  • Der Nachrichtenzähler wird auf „0” (215) (Schritt 340) gesetzt und im Datenspeicher (215) gespeichert.
  • Der Prozess geht zurück zu Schritt 305, wo die zweite Nachricht M_2 erneut aus der Eingabewarteschlange (135) abgerufen wird. Dadurch wird eine neue Transaktion T_3 gestartet.
  • Der Nachrichtenzähler wird um 1 erhöht, was zu einem Nachrichtenzähler von „1” (215) führt.
  • Eine Prüfung (Schritt 310) wird vom Prüfprogramm (205) durchgeführt, um zu bestimmen, ob der Zurückziehungszähler („1”) größer ist als der Zurückziehungsgrenzwert („1”).
  • In dem Beispiel bestimmt das Prüfprogramm (205), dass der Zurückziehungszähler („1”) nicht größer ist als der Zurückziehungsgrenzwert („1”). An diesem Punkt tritt in dem Beispiel erneut ein Fehler auf (in 3 aus Gründen der Übersichtlichkeit nicht dargestellt), was dazu führt, dass die Arbeit (die Transaktion T_3) zurückgesetzt bzw. zurückgezogen wird und die zweite Nachricht M_2) in die Eingabewarteschlange (135) „zurückgeschrieben” wird. Darüber hinaus wird der Zurückziehungszähler um 1 erhöht, was zu einem Zurückziehungszähler von „2” führt. Der Nachrichtenzähler wird auf „0” (215) gesetzt und im Datenspeicher (215) gespeichert.
  • Der Prozess geht zurück zu Schritt 305, wo die erste Nachricht M_1 erneut aus der Eingabewarteschlange (135) abgerufen wird. Dadurch wird eine neue Transaktion T_4 gestartet.
  • Der Nachrichtenzähler wird um 1 erhöht, was zu einem Nachrichtenzähler von „1” (215) führt.
  • Eine Prüfung (Schritt 310) wird vom Prüfprogramm (205) durchgeführt, um zu bestimmen, ob der Zurückziehungszähler („2”) größer ist als der Zurückziehungsgrenzwert („1”).
  • In dem Beispiel bestimmt das Prüfprogramm (205), dass der Zurückziehungszähler („2”) größer ist als der Zurückziehungsgrenzwert („1”). An diesem Punkt wird die zweite Nachricht M_2 in die Fehlerwarteschlange (145) eingefügt (Schritt 315), und die Transaktion T_4 wird festgeschrieben.
  • Der Nachrichtenzähler wird auf Null eingestellt (Schritt 340). Wenn eine weitere Verarbeitung ansteht, wird der Prozess an Schritt 305 übergeben, andernfalls endet der Prozess.
  • Wenngleich es möglich ist, dass ein Konfigurationsattribut vorhanden ist, um das Verhalten der bevorzugten Ausführungsform zu aktivieren oder deaktivieren, ist dies nicht unbedingt erforderlich. Die bevorzugte Ausführungsform stellt das Standardverhalten vorzugsweise immer dann bereit, wenn das Attribut des Zurückziehungsgrenzwerts der Eingabewarteschlange größer 0 ist. Somit wird bei einem Zurückziehungsgrenzwert = 0 die bevorzugte Ausführungsform effektiv deaktiviert. Das ist darin begründet, dass wenn der Zurückziehungsgrenzwert = 0 ist, alle zurückgesetzten bzw. zurückgezogenen Nachrichten an die Fehlerwarteschlange (145) gesendet werden.
  • Zweckmäßigerweise stellt die bevorzugte Ausführungsform durch die konditionale Verwendung des Festschreibezählers sicher, dass nur Nachrichten, die zu Fehlern führen, in die Fehlerwarteschlange (145) eingefügt werden. Nachrichten, die zurückgesetzt bzw. zurückgezogen wurden, weil sie sich im gleichen Stapel wie eine fehlerhafte Nachricht befanden, werden erfolgreich neu verarbeitet und ihre Transaktion wird festgeschrieben, wenn sie erneut abgerufen werden.
  • Weiterhin stellt die bevorzugte Ausführungsform sicher, da der Festschreibezähler konditional verwendet wird, dass wenn bei einem Nachrichtenstapel ein Fehler auftritt, z. B. aufgrund eines vorübergehenden Problems in der Datenbank, das durch die Verwendung eines großes Stapel verursacht wurde (wie die Eskalation einer Sperre, wie oben beschrieben), die Arbeit automatisch erneut verarbeitet wird und erfolgreich sein kann, wenn eine Nachricht pro Transaktion festgeschrieben wird (dies ist das, was vom Verfahren der vorliegenden Erfindung durchgeführt wird, wenn der Zurückziehungszähler größer Null ist).
  • Weiterhin stellt die bevorzugte Ausführungsform zweckmäßigerweise sicher, indem der Festschreibezähler konditional verwendet wird, dass eine Nachrichtenfolge bei Bedarf für alle Nachrichten bewahrt wird, die nicht fehlerhaft sind.
  • Für Fachleuten ist es ersichtlich, dass das gesamte Verfahren oder ein Teil davon der bevorzugten Ausführungsformen der vorliegenden Erfindung geeignet und nützlich in der Ausführung in einer logischen Vorrichtung oder mehreren logischen Vorrichtungen sind, die logische Elemente aufweisen, die zum Durchführen der Schritte des Verfahrens angeordnet sind und dass zu solchen logischen Elementen Hardwarekomponenten, Firmwarekomponenten oder eine Kombination davon gehören können.
  • Ebenso ist es für Fachleute ersichtlich, dass die gesamte logische Anordnung oder ein Teil davon gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung in geeigneter Weise in einer logischen Vorrichtung ausgeführt werden kann, die logische Elemente aufweist, um die Schritte des Verfahrens auszuführen, und dass solche logischen Elemente Komponenten aufweisen können, wie Logikgatter in beispielsweise einem programmierbaren Logikarray oder eines anwendungsspezifischen integrierten Schaltkreises. Diese logische Anordnung kann weiterhin in verwirklichenden Elementen zur temporären oder dauerhaften Errichtung logischer Strukturen in einem solchen Array oder eines solchen Schaltkreises unter Verwendung von beispielsweise einer virtuellen Hardwarebeschreibungssprache ausgeführt sein, die mit einem festen oder übertragbaren Trägermedium gespeichert und übertragen werden kann.
  • Es ist hervorzuheben, dass das oben beschriebene Verfahren und Anordnung in geeigneter Weise vollständig oder teilweise in Software ausgeführt werden können, die auf einem oder mehreren Prozessoren ausgeführt wird (nicht in den Fig. dargestellt), und dass die Software in Form eines oder mehrerer Computerprogrammelemente bereitgestellt werden kann, die auf jedem geeigneten Datenträger (ebenso nicht in den Fig. dargestellt) ausgeführt werden, wie eine Magnet- oder optischen Platte oder Ähnliches. Kanäle für die Datenübertragung können ebenso Speichermedien aller Beschreibungen sowie signalübertragende Medien wie kabelgebundene oder drahtlose signalübertragende Medien sein.
  • Die vorliegende Erfindung kann weiterhin in geeigneter Weise als Computerprogramm zur Verwendung mit einem Computersystem ausgeführt werden. Eine solche Implementierung kann eine Reihe von computerlesbaren Anweisungen aufweisen, die entweder auf einem materiellen Medium wie einem computerlesbaren Medium, wie eine Diskette, CD-ROM, ROM oder Festplatte, fest gespeichert sind oder auf ein Computersystem über ein Modem oder ein anderes Schnittstellengerät über ein materielles Medium, wie ohne darauf beschränkt zu sein, optische und analoge Datenübertragungsleitungen, oder nicht-materielle Funktechnologien, wie ohne darauf beschränkt zu sein Mikrowellen-, Infrarot- oder anderer Übertragungstechniken, übertragen werden. Die Folge der computerlesbaren Anweisungen verkörpert die gesamte oder einen Teil der hier beschriebenen Funktionalität.
  • Fachleute werden verstehen, dass diese computerlesbaren Anweisungen in verschiedenen Programmiersprachen erstellt werden können, die für viele Computerarchitekturen oder Betriebssysteme verwendet werden können. Weiterhin können diese Anweisungen mit jeder aktuellen oder zukünftigen Speichertechnologie gespeichert werden, einschließlich, ohne darauf beschränkt zu sein, Halbleiter-, magnetische oder optische Technologien, oder mit einer beliebigen aktuellen oder zukünftigen Datenübertragungstechnologie übertragen werden, einschließlich ohne darauf beschränkt zu sein, optische Verfahren, Infrarot und Mikrowelle. Es ist vorgesehen, dass ein solches Computerprogrammprodukt als entfernbares Medium mit begleitender gedruckter oder elektronischer Dokumentation verteilt werden kann, zum Beispiel als eingeschweißte Software, die bereits auf einem Computersystem geladen ist, beispielsweise auf einem System-ROM oder einer Festplatte oder über einen Server oder ein elektronisches Bulletin Board über ein Netzwerk, wie das Internet oder das World Wide Web, verteilt wird.
  • In einer Alternative kann die bevorzugte Ausführungsform der vorliegenden Erfindung in Form eines auf einem Computer implementierten Verfahrens zur Bereitstellung von Diensten verwirklicht werden, das die Schritte des Bereitstellens von Computerprogrammcode aufweist, der bei der Bereitstellung in einer Computerinfrastruktur und der Ausführung darin einsatzfähig ist, das Computersystem zur Ausführung aller Schritte des beschriebenen Verfahrens zu veranlassen.
  • Für Fachleute ist es ersichtlich, dass viele Verbesserungen und Änderungen an der obigen beispielhaften Ausführungsform vorgenommen werden können, ohne vom Umfang der vorliegenden Erfindung abzuweichen.

Claims (8)

  1. Eine Vorrichtung zum Verarbeiten einer Stapelarbeitseinheit, die mit einer Mehrzahl von Nachrichten verknüpft ist, zur Verwendung mit einem Datenspeicher zum Speichern: eines Zurückziehungszählers, der mit einer Reihe von Instanzen verknüpft ist, die in Verbindung mit der zurückgesetzten Stapelarbeitseinheit arbeiten, die eine Zurückziehung erfährt; eines Zurückziehungsgrenzwerts, der mit dem Zurückziehungszähler verknüpft ist; und eines Festschreibezählers, der mit dem Festschreiben der Stapelarbeitseinheit als Reaktion auf die erfolgreichen Festschreibeoperationen für eine bestimmte Anzahl der mehreren Nachrichten verknüpft ist, wobei die Vorrichtung aufweist: ein Prüfprogramm zum Prüfen, ob der Zurückziehungszähler größer Null und kleiner als der Zurückziehungsgrenzwert ist; und eine Überschreibungskomponente, die die darauf reagiert, dass der Zurückziehungszähler größer Null und kleiner als der Zurückziehungsgrenzwert ist, um den Festschreibezähler zu überschreiben und die Stapelarbeitseinheit für eine Teilmenge der mehreren Nachrichten festzuschreiben.
  2. Eine Vorrichtung gemäß Anspruch 1, die weiterhin Mittel aufweist, die in Reraktion darauf, dass der Zurückziehungszähler größer Null und größer als der Zurückziehungsgrenzwert ist, um eine Teilmenge der mehreren Nachrichten in eine Fehlerwarteschlange einfügen.
  3. Eine Vorrichtung gemäß einem der Ansprüche 1 oder 2, wobei der Zurückziehungsgrenzwert größer Null ist.
  4. Ein Verfahren zum Verarbeiten einer Stapelarbeitseinheit, die mit eine Mehrzahl von Nachrichten verknüpft ist, zur Verwendung mit einem Datenspeicher zum Speichern: eines Zurückziehungszählers, der mit einer Reihe von Instanzen verknüpft ist, die in Verbindung mit der zurückgesetzten Stapelarbeitseinheit arbeiten, die eine Zurückziehung erfährt; eines Zurückziehungsgrenzwerts, der mit dem Zurückziehungszähler verknüpft ist; und eines Festschreibzählers, der mit dem Festschreiben der Stapelarbeitseinheit als Reaktion auf eine erfolgreiche Festschreibeoperationen für eine bestimmte Anzahl der Mehrzahl der Nachrichten verknüpft ist, wobei das Verfahren aufweist: Prüfen, ob der Zurückziehungszähler größer Null und kleiner als der Zurückziehungsgrenzwert ist; und Überschreiben des Festschreibezählers und Festschreiben der Stapelarbeitseinheit für eine Teilmenge der mehreren Nachrichten als Reaktion darauf, dass der Zurückziehungszähler größer Null und kleiner als der Zurückziehungsgrenzwert ist.
  5. Ein Verfahren gemäß Anspruch 4, das weiterhin aufweist: Einfügen einer Teilmenge der mehreren Nachrichten in eine Fehlerwartschlange als Reaktion darauf, dass Zurückziehungszähler größer Null und größer als der Zurückziehungsgrenzwert ist.
  6. Ein Verfahren gemäß einem der Ansprüche 4 oder 5, wobei der Zurückziehungsgrenzwert größer Null ist.
  7. Ein Computerprogrammprodukt zum Verarbeiten einer Stapelarbeitseinheit, die mit mehreren Nachrichten verknüpft ist, zur Verwendung mit einem Datenspeicher, wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium, das von einem Verarbeitungsschaltkreis lesbar ist und Anweisungen zum Ausführen eines Verfahrens gemäß einem der Ansprüche 4 bis 6 durch den Verarbeitungsschaltkreis speichert.
  8. Ein auf einem computerlesbaren Medium gespeichertes und in den internen Hauptspeicher eines digitalen Computers ladbares Computerprogramm, das Softwarecodeabschnitte enthält, um das Verfahren gemäß einem der Ansprüche 4 bis 6 durchzuführen, wenn das Programm auf einem Computer ausgeführt wird.
DE112011102242T 2010-07-02 2011-06-28 Vorrichtung zum Verarbeiten einer Stapelarbeitseinheit Ceased DE112011102242T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10168325 2010-07-02
EP10168325.8 2010-07-02
PCT/EP2011/060824 WO2012000997A1 (en) 2010-07-02 2011-06-28 An apparatus for processing a batched unit of work

Publications (1)

Publication Number Publication Date
DE112011102242T5 true DE112011102242T5 (de) 2013-04-25

Family

ID=44512806

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011102242T Ceased DE112011102242T5 (de) 2010-07-02 2011-06-28 Vorrichtung zum Verarbeiten einer Stapelarbeitseinheit

Country Status (5)

Country Link
US (2) US8799906B2 (de)
CN (1) CN102971711B (de)
DE (1) DE112011102242T5 (de)
GB (1) GB2495045B (de)
WO (1) WO2012000997A1 (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8065161B2 (en) 2003-11-13 2011-11-22 Hospira, Inc. System for maintaining drug information and communicating with medication delivery devices
AU2007317669A1 (en) 2006-10-16 2008-05-15 Hospira, Inc. System and method for comparing and utilizing activity information and configuration information from mulitple device management systems
US8271106B2 (en) 2009-04-17 2012-09-18 Hospira, Inc. System and method for configuring a rule set for medical event management and responses
CA2852271A1 (en) 2011-10-21 2013-04-25 Hospira, Inc. Medical device update system
WO2014138446A1 (en) 2013-03-06 2014-09-12 Hospira,Inc. Medical device communication method
US20150066531A1 (en) 2013-08-30 2015-03-05 James D. Jacobson System and method of monitoring and managing a remote infusion regimen
US9662436B2 (en) 2013-09-20 2017-05-30 Icu Medical, Inc. Fail-safe drug infusion therapy system
US10311972B2 (en) 2013-11-11 2019-06-04 Icu Medical, Inc. Medical device system performance index
JP2016537175A (ja) 2013-11-19 2016-12-01 ホスピーラ インコーポレイテッド 注入ポンプ自動化システムおよび方法
WO2015100627A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 一种分布式文件存储系统中的数据处理方法及设备
CA2945647C (en) 2014-04-30 2023-08-08 Hospira, Inc. Patient care system with conditional alarm forwarding
US9724470B2 (en) 2014-06-16 2017-08-08 Icu Medical, Inc. System for monitoring and delivering medication to a patient and method of using the same to minimize the risks associated with automated therapy
US9539383B2 (en) 2014-09-15 2017-01-10 Hospira, Inc. System and method that matches delayed infusion auto-programs with manually entered infusion programs and analyzes differences therein
WO2016189417A1 (en) 2015-05-26 2016-12-01 Hospira, Inc. Infusion pump system and method with multiple drug library editor source capability
CN105630635B (zh) * 2015-12-29 2019-07-30 北京京东尚科信息技术有限公司 数据容灾系统和方法
US10417038B2 (en) 2016-02-18 2019-09-17 Red Hat, Inc. Batched commit in distributed transactions
WO2018013842A1 (en) 2016-07-14 2018-01-18 Icu Medical, Inc. Multi-communication path selection and security system for a medical device
US10462067B2 (en) * 2017-01-26 2019-10-29 International Business Machines Corporation Proactive channel agent
US11347712B2 (en) * 2017-11-07 2022-05-31 International Business Machines Corporation Preventing long running transactions from holding record locks
WO2020018389A1 (en) 2018-07-17 2020-01-23 Icu Medical, Inc. Systems and methods for facilitating clinical messaging in a network environment
US10964428B2 (en) 2018-07-17 2021-03-30 Icu Medical, Inc. Merging messages into cache and generating user interface using the cache
NZ771914A (en) 2018-07-17 2023-04-28 Icu Medical Inc Updating infusion pump drug libraries and operational software in a networked environment
US10861592B2 (en) 2018-07-17 2020-12-08 Icu Medical, Inc. Reducing infusion pump network congestion by staggering updates
CA3107315C (en) 2018-07-26 2023-01-03 Icu Medical, Inc. Drug library management system
US10692595B2 (en) 2018-07-26 2020-06-23 Icu Medical, Inc. Drug library dynamic version management

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2276737A (en) * 1993-03-30 1994-10-05 Ibm Fault-tolerant transaction-oriented data processing
US7177859B2 (en) * 2002-06-26 2007-02-13 Microsoft Corporation Programming model for subscription services
US20040002988A1 (en) * 2002-06-26 2004-01-01 Praveen Seshadri System and method for modeling subscriptions and subscribers as data
US20070186056A1 (en) * 2006-02-07 2007-08-09 Bratin Saha Hardware acceleration for a software transactional memory system
CN101673275B (zh) * 2009-08-11 2012-07-25 东软集团股份有限公司 一种保证数据库内事务一致的方法及装置

Also Published As

Publication number Publication date
US8769536B2 (en) 2014-07-01
CN102971711B (zh) 2016-06-01
US20120174109A1 (en) 2012-07-05
GB2495045A (en) 2013-03-27
GB201300613D0 (en) 2013-02-27
US8799906B2 (en) 2014-08-05
CN102971711A (zh) 2013-03-13
GB2495045B (en) 2017-07-26
US20120005680A1 (en) 2012-01-05
WO2012000997A1 (en) 2012-01-05

Similar Documents

Publication Publication Date Title
DE112011102242T5 (de) Vorrichtung zum Verarbeiten einer Stapelarbeitseinheit
DE69635099T2 (de) Verfahren und Vorrichtung für kontextempfindliches Pfadsende
DE69429686T2 (de) Transaktionsverwaltung in objektorientiertem System
DE69316639T2 (de) System und verfahren zur schnittstellenbildung fur transaktion-verarbeitungssystem
DE69618131T2 (de) Anordnung und Verfahren zur Betriebsmittelverwaltung von verteilten Objekten
DE69422743T2 (de) Endlosschleife-Erkennungsgerät
DE69425470T2 (de) Verfahren zur Ereignismeldung in einem Betriebssystem
DE60302876T2 (de) Master-knotenauswahl in geclusterten knotenkonfigurationen
DE68926345T2 (de) Datenverarbeitungsnetzwerk
DE112010004187T5 (de) Verfahren und System zum Verarbeiten von Netzwerkereignissen
DE69815946T2 (de) Informationsverarbeitungsvorrichtung
DE112010004652T5 (de) Zuverlässige Replikation mit hohem Durchsatz von umgewandelten Daten in Datensystemen
DE60012041T2 (de) Kommunikationsarchitektur für eine verteilte rechnerumgebung
DE10119876A1 (de) Verfahren, System und Computerprorammprodukt zur Bereitstellung einer Jobüberwachung
DE112018003087T5 (de) On-chip-rauschunterdrückung oder -minderung der versorgungsspannung unter verwendung von lokalen detektionsschleifen in einem prozessorkern
DE112020006047T5 (de) Steuern von transaktionsanforderungen zwischen anwendungen und servern
DE112010004530T5 (de) Transaktionsaktualisierung bei Dynamischen Verteilten Arbeitslasten
DE112011103288T5 (de) Anpassbare, auf Inhalten beruhende Publish/Subscribe-Nachrichtenvermittlung
DE102021125630A1 (de) Datensynchronisation in einem datenanalysesystem
WO2005073852A1 (de) Verfahren zum betreiben einer anordnung mehrerer rechner bei einem rechnerausfall
EP2648094B1 (de) Verfahren und system zum erzeugen eines quellcodes für ein computerprogramm zur ausführung und simulation eines prozesses
DE112020004760T5 (de) Steuern von interaktionen mit einer skalierbaren anwendung
DE112018005359T5 (de) Verhindern eines Beibehaltens von Datensatzsperren durch Transaktionen mit langer Laufzeit
DE112021000338T5 (de) Auslagern der statistikerfassung
DE112013001175T5 (de) Erzeugen von elektronischen Stammbäumen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER, PATENTANWA, DE

Representative=s name: SPIES DANNER & PARTNER PATENTANWAELTE PARTNERS, DE

R082 Change of representative

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER, PATENTANWA, DE

R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final
R082 Change of representative

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

R003 Refusal decision now final

Effective date: 20140812