DE112018005359T5 - Verhindern eines Beibehaltens von Datensatzsperren durch Transaktionen mit langer Laufzeit - Google Patents

Verhindern eines Beibehaltens von Datensatzsperren durch Transaktionen mit langer Laufzeit Download PDF

Info

Publication number
DE112018005359T5
DE112018005359T5 DE112018005359.8T DE112018005359T DE112018005359T5 DE 112018005359 T5 DE112018005359 T5 DE 112018005359T5 DE 112018005359 T DE112018005359 T DE 112018005359T DE 112018005359 T5 DE112018005359 T5 DE 112018005359T5
Authority
DE
Germany
Prior art keywords
records
record
batch application
group
processing
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.)
Pending
Application number
DE112018005359.8T
Other languages
English (en)
Inventor
Roity Prieto Perez
Terri Menendez
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 DE112018005359T5 publication Critical patent/DE112018005359T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Ein Verfahren umfasst ein Empfangen eines Befehls, der ein Ausführen einer Stapelanwendung festlegt, an einer Jobsteuerungs-Verwaltungseinheit. Das Verfahren umfasst darüber hinaus ein Empfangen eines Festschreibungszählerstands an der Jobsteuerungs-Verwaltungseinheit, welcher der Stapelanwendung zugehörig ist, und ein Initiieren der Stapelanwendung, wobei die Stapelanwendung eine Gruppe von Datensätzen verarbeitet. Das Verfahren umfasst auch ein Sperren eines ersten Datensatzes der Gruppe von Datensätzen als Reaktion darauf, dass der erste Datensatz durch die Stapelanwendung verarbeitet wird, mit der Maßgabe, dass die Stapelanwendung ein Entsperren des ersten Datensatzes erst dann bewirkt, wenn die Stapelanwendung ein Verarbeiten eines letzten Datensatzes in der Gruppe von Datensätzen abgeschlossen hat. Außerdem umfasst das Verfahren ein Festschreiben aller Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, und zwar als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten eines n-ten Datensatzes der Gruppe von Datensätzen abgeschlossen hat.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft ein Verwalten von Datensatzsperren und insbesondere ein Verhindern, dass Transaktionen mit langer Laufzeit Datensatzsperren über längere Zeiträume beibehalten, die sich auf andere Transaktionen auswirken.
  • HINTERGRUND
  • Innerhalb eines Datensystems werden Datensätze auf durch einen Computer lesbaren Medien gespeichert, und ein oder mehrere Benutzer des Datensystems können darauf zugreifen. Jedes Mal, wenn auf einen Datensatz zugegriffen wird, wird eine Datensatzsperre ausgegeben, die andere Benutzer daran hindert, auf denselben Datensatz zuzugreifen. Diese Datensatzsperren für einzelne Datensätze können bis zur expliziten Freigabe beibehalten werden. Ein Stapeljob, der auf viele verschiedene Datensätze zugreift, kann Datensatzsperren für einen längeren Zeitraum beibehalten, was zu Zeitüberschreitungen bei anderen Transaktionen führen kann, die auf die zugrundeliegenden, den Datensatzsperren zugehörigen Datensätze und/oder andere datensatzgesperrte Ressourcen warten. Dieses Problem zeigt sich besonders deutlich in einer Umgebung mit Transaktionsdaten, in der Datensätze verwendet werden, die Transaktionen verfolgen, wie zum Beispiel Finanzdatensätze, Buchhaltungsdatensätze usw.
  • In einer Umgebung mit Transaktionsdaten werden Datensatzsperren so lange beibehalten, bis ein expliziter Synchronisierungs- (Sync-) Punkt (allgemein als Festschreiben (commit) oder Zurücksetzen (backout) bezeichnet) von der Stapelanwendung, welche die Datensatzsperren angefordert hat, ausgegeben wird oder bis ein impliziter Sync-Punkt an einem Ende der Stapelanwendung ausgegeben wird, der als Beendigung einer Aufgabe (EOT, end of task) bezeichnet wird. Wenn eine Stapelanwendung, die Bearbeitungsvorgänge mit Transaktionsdaten verwendet, keine Festschreibungspunkte enthält, würde der gesamte Stapeljob als eine einzige Transaktion betrachtet, und die Datensatzsperren für die Datensätze, auf welche die Stapelanwendung zugreift, werden erst zum Zeitpunkt der EOT freigegeben. Dies birgt das Potenzial, Zeitüberschreitungen für möglicherweise wichtigere Transaktionen zu verursachen, die auf diese datensatzgesperrten Ressourcen in dem System warten.
  • KURZDARSTELLUNG
  • In einer Ausführungsform umfasst ein Verfahren ein Empfangen eines Befehls, der ein Ausführen einer Stapelanwendung festlegt, an einer Jobsteuerungs-Verwaltungseinheit eines Datensystems. Das Verfahren umfasst auch ein Empfangen eines der Stapelanwendung zugehörigen Festschreibungszählerstands an der Jobsteuerungs-Verwaltungseinheit. Zusätzlich umfasst das Verfahren ein Initiieren der Stapelanwendung, wobei die Stapelanwendung eine Gruppe von Datensätzen verarbeitet. Das Verfahren umfasst auch ein Sperren eines ersten Datensatzes der Gruppe von Datensätzen als Reaktion darauf, dass der erste Datensatz durch die Stapelanwendung verarbeitet wird, mit der Maßgabe, dass die Stapelanwendung ein Entsperren des ersten Datensatzes erst dann bewirkt, wenn die Stapelanwendung ein Verarbeiten eines letzten Datensatzes in der Gruppe von Datensätzen abgeschlossen hat. Außerdem umfasst das Verfahren ein Festschreiben aller Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, und zwar als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten eines n-ten Datensatzes der Gruppe von Datensätzen abgeschlossen hat. In dieser Ausführungsform ist n gleich dem Festschreibungszählerstand.
  • In einer anderen Ausführungsform umfasst ein Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium, auf dem Programmanweisungen enthalten sind. Bei dem durch einen Computer lesbaren Speichermedium handelt es sich nicht per se um ein flüchtiges Signal, und die enthaltenen Programmanweisungen sind durch einen Verarbeitungsschaltkreis ausführbar, um zu bewirken, dass der Verarbeitungsschaltkreis an einer Jobsteuerungs-Verwaltungseinheit eines Datensystems durch den Verarbeitungsschaltkreis einen Befehl empfängt, der ein Ausführen einer Stapelanwendung festlegt. Darüber hinaus sind die Programmanweisungen ausführbar, um zu bewirken, dass der Verarbeitungsschaltkreis an der Jobsteuerungs-Verwaltungseinheit durch den Verarbeitungsschaltkreis einen Festschreibungszählerstand empfängt, welcher der Stapelanwendung zugehörig ist. Auch sind die Programmanweisungen ausführbar, um zu bewirken, dass der Verarbeitungsschaltkreis durch den Verarbeitungsschaltkreis die Stapelanwendung initiiert, wobei die Stapelanwendung eine Gruppe von Datensätzen verarbeitet. Zusätzlich sind die Programmanweisungen ausführbar, um zu bewirken, dass der Verarbeitungsschaltkreis durch den Verarbeitungsschaltkreis einen ersten Datensatz der Gruppe von Datensätzen als Reaktion darauf sperrt, dass der erste Datensatz durch die Stapelanwendung verarbeitet wird, mit der Maßgabe, dass die Stapelanwendung ein Entsperren des ersten Datensatzes erst dann bewirkt, wenn die Stapelanwendung ein Verarbeiten eines letzten Datensatzes in der Gruppe von Datensätzen abgeschlossen hat. Außerdem sind die Programmanweisungen ausführbar, um zu bewirken, dass der Verarbeitungsschaltkreis durch den Verarbeitungsschaltkreis und als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten eines n-ten Datensatzes der Gruppe von Datensätzen abgeschlossen hat, alle Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, festschreibt. In dieser Ausführungsform ist n gleich dem Festschreibungszählerstand.
  • In noch einer anderen Ausführungsform umfasst ein System einen Verarbeitungsschaltkreis, einen Speicher und eine in dem Speicher gespeicherte Logik, die bei Ausführung durch den Verarbeitungsschaltkreis bewirkt, dass der Verarbeitungsschaltkreis an einer Jobsteuerungs-Verwaltungseinheit eines Datensystems einen Befehl empfängt, der ein Ausführen einer Stapelanwendung festlegt. Die Logik bewirkt auch, dass der Verarbeitungsschaltkreis an der Jobsteuerungs-Verwaltungseinheit einen Festschreibungszählerstand empfängt, welcher der Stapelanwendung zugehörig ist, und dass die Stapelanwendung initiiert wird, wobei die Stapelanwendung eine Gruppe von Datensätzen verarbeitet. Zusätzlich bewirkt die Logik, dass der Verarbeitungsschaltkreis einen ersten Datensatz der Gruppe von Datensätzen als Reaktion darauf sperrt, dass der erste Datensatz durch die Stapelanwendung verarbeitet wird, mit der Maßgabe, dass die Stapelanwendung ein Entsperren des ersten Datensatzes erst dann bewirkt, wenn die Stapelanwendung ein Verarbeiten eines letzten Datensatzes in der Gruppe von Datensätzen abgeschlossen hat. Außerdem bewirkt die Logik, dass der Verarbeitungsschaltkreis als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten eines n-ten Datensatzes der Gruppe von Datensätzen abgeschlossen hat, alle Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, festschreibt. In dieser Ausführungsform ist n gleich dem Festschreibungszählerstand.
  • Andere Aspekte und Ausführungsformen der vorliegenden Erfindung ergeben sich aus der folgenden ausführlichen Beschreibung, die in Verbindung mit den Zeichnungen beispielhaft die Grundgedanken der Erfindung veranschaulicht.
  • Figurenliste
    • 1A zeigt einen Datenverarbeitungsknoten gemäß einer Ausführungsform der Erfindung.
    • 1 B veranschaulicht eine Netzwerkarchitektur gemäß einer Ausführungsform.
    • 2 veranschaulicht ein mehrstufiges Datenspeichersystem gemäß einer Ausführungsform.
    • 3 zeigt ein paralleles Datenverarbeitungssystem gemäß einer Ausführungsform.
    • 4 zeigt einen Ablaufplan eines Verfahrens gemäß einer Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung dient dem Zwecke des Veranschaulichens der allgemeinen Grundgedanken der vorliegenden Erfindung und soll die hierin beanspruchten erfindungsgemäßen Konzepte nicht einschränken. Darüber hinaus können bestimmte hierin beschriebene Merkmale in Kombination mit anderen beschriebenen Merkmalen in jeder der verschiedenen möglichen Kombinationen und Umsetzungen verwendet werden.
  • Soweit nicht konkret anderweitig hierin festgelegt, ist sämtlichen Begriffen deren größtmögliche Auslegung zuzuordnen, darunter durch die Beschreibung angedeutete Bedeutungen sowie durch einen Fachmann verstandene Bedeutungen und/oder wie in Wörterbüchern, Abhandlungen usw. festgelegt.
  • Es ist ebenfalls zu beachten, dass die Verwendung der Singularform „ein“, „eine“ bzw. „der“, „die“, „das“ in der Beschreibung und den beigefügten Ansprüchen die Pluralformen einschließt, soweit nicht anderweitig angegeben. Es wird ferner darauf hingewiesen, dass die Begriffe „aufweisen“ und/oder „aufweisend“, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von aufgeführten Eigenschaften, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten angeben, jedoch nicht das Vorhandensein oder das Hinzufügen einer oder mehrerer anderer Eigenschaften, ganzer Zahlen, Schritte, Operation, Elemente, Komponenten und/oder Gruppen hiervon ausschließen. In der Verwendung hierin gibt der Begriff „circa“ den Wert an, dem der Begriff „circa“ vorausgeht, zusammen mit allen Werten, die dem Wert, dem der Begriff „circa“ vorausgeht, einigermaßen nahe kommen, wie der Fachmann verstehen wird. Sofern nicht anders angegeben, bezeichnet der Begriff „circa“ den Wert, dem der Begriff „circa“ vorausgeht, ± 10 % des Wertes. Zum Beispiel gibt „circa 10“ alle Werte von einschließlich 9,0 bis 11,0 an.
  • Die folgende Beschreibung offenbart mehrere bevorzugte Ausführungsformen von Systemen, Verfahren und Computerprogrammprodukten zum Verhindern, dass Transaktionen mit langer Laufzeit Datensatzsperren beibehalten.
  • In einer allgemeinen Ausführungsform umfasst ein Verfahren ein Empfangen eines Befehls, der ein Ausführen einer Stapelanwendung festlegt, an einer Jobsteuerungs-Verwaltungseinheit eines Datensystems. Das Verfahren umfasst auch ein Empfangen eines der Stapelanwendung zugehörigen Festschreibungszählerstands an der Jobsteuerungs-Verwaltungseinheit. Zusätzlich umfasst das Verfahren ein Initiieren der Stapelanwendung, wobei die Stapelanwendung eine Gruppe von Datensätzen verarbeitet. Das Verfahren umfasst auch ein Sperren eines ersten Datensatzes der Gruppe von Datensätzen als Reaktion darauf, dass der erste Datensatz durch die Stapelanwendung verarbeitet wird, mit der Maßgabe, dass die Stapelanwendung ein Entsperren des ersten Datensatzes erst dann bewirkt, wenn die Stapelanwendung ein Verarbeiten eines letzten Datensatzes in der Gruppe von Datensätzen abgeschlossen hat. Außerdem umfasst das Verfahren ein Festschreiben aller Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, und zwar als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten eines n-ten Datensatzes der Gruppe von Datensätzen abgeschlossen hat. In dieser Ausführungsform ist n gleich dem Festschreibungszählerstand.
  • In einer anderen allgemeinen Ausführungsform umfasst ein Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium, auf dem Programmanweisungen enthalten sind. Bei dem durch einen Computer lesbaren Speichermedium handelt es sich nicht per se um ein flüchtiges Signal, und die enthaltenen Programmanweisungen sind durch einen Verarbeitungsschaltkreis ausführbar, um zu bewirken, dass der Verarbeitungsschaltkreis an einer Jobsteuerungs-Verwaltungseinheit eines Datensystems durch den Verarbeitungsschaltkreis einen Befehl empfängt, der ein Ausführen einer Stapelanwendung festlegt. Darüber hinaus sind die Programmanweisungen ausführbar, um zu bewirken, dass der Verarbeitungsschaltkreis an der Jobsteuerungs-Verwaltungseinheit durch den Verarbeitungsschaltkreis einen Festschreibungszählerstand empfängt, welcher der Stapelanwendung zugehörig ist. Auch sind die Programmanweisungen ausführbar, um zu bewirken, dass der Verarbeitungsschaltkreis durch den Verarbeitungsschaltkreis die Stapelanwendung initiiert, wobei die Stapelanwendung eine Gruppe von Datensätzen verarbeitet. Zusätzlich sind die Programmanweisungen ausführbar, um zu bewirken, dass der Verarbeitungsschaltkreis durch den Verarbeitungsschaltkreis einen ersten Datensatz der Gruppe von Datensätzen als Reaktion darauf sperrt, dass der erste Datensatz durch die Stapelanwendung verarbeitet wird, mit der Maßgabe, dass die Stapelanwendung ein Entsperren des ersten Datensatzes erst dann bewirkt, wenn die Stapelanwendung ein Verarbeiten eines letzten Datensatzes in der Gruppe von Datensätzen abgeschlossen hat. Außerdem sind die Programmanweisungen ausführbar, um zu bewirken, dass der Verarbeitungsschaltkreis durch den Verarbeitungsschaltkreis und als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten eines n-ten Datensatzes der Gruppe von Datensätzen abgeschlossen hat, alle Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, festschreibt. In dieser Ausführungsform ist n gleich dem Festschreibungszählerstand.
  • In noch einer anderen allgemeinen Ausführungsform umfasst ein System einen Verarbeitungsschaltkreis, einen Speicher und eine in dem Speicher gespeicherte Logik, die bei Ausführung durch den Verarbeitungsschaltkreis bewirkt, dass der Verarbeitungsschaltkreis an einer Jobsteuerungs-Verwaltungseinheit eines Datensystems einen Befehl empfängt, der ein Ausführen einer Stapelanwendung festlegt. Die Logik bewirkt auch, dass der Verarbeitungsschaltkreis an der Jobsteuerungs-Verwaltungseinheit einen Festschreibungszählerstand empfängt, welcher der Stapelanwendung zugehörig ist, und dass die Stapelanwendung initiiert wird, wobei die Stapelanwendung eine Gruppe von Datensätzen verarbeitet. Zusätzlich bewirkt die Logik, dass der Verarbeitungsschaltkreis einen ersten Datensatz der Gruppe von Datensätzen als Reaktion darauf sperrt, dass der erste Datensatz durch die Stapelanwendung verarbeitet wird, mit der Maßgabe, dass die Stapelanwendung ein Entsperren des ersten Datensatzes erst dann bewirkt, wenn die Stapelanwendung ein Verarbeiten eines letzten Datensatzes in der Gruppe von Datensätzen abgeschlossen hat. Außerdem bewirkt die Logik, dass der Verarbeitungsschaltkreis als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten eines n-ten Datensatzes der Gruppe von Datensätzen abgeschlossen hat, alle Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, festschreibt. In dieser Ausführungsform ist n gleich dem Festschreibungszählerstand.
  • Unter Bezugnahme auf 1A ist eine schematische Abbildung eines Beispiels eines Datenverarbeitungsknotens 10 gemäß einer Ausführungsform gezeigt. Der Datenverarbeitungsknoten 10 ist lediglich ein Beispiel eines geeigneten Datenverarbeitungsknotens und soll keinerlei Einschränkungen hinsichtlich des Anwendungsbereichs oder der Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung andeuten. Trotzdem kann eine beliebige hierin dargelegte Funktionalität in dem Datenverarbeitungsknoten 10 umgesetzt und/oder von diesem durchgeführt werden. Außerdem kann der Datenverarbeitungsknoten 10 in jedem beliebigen System, jedem beliebigen Netzwerk, jeder beliebigen Cloud, jedem beliebigen Cluster und/oder jeder beliebigen Datenspeicherumgebung enthalten sein, wie hierin beschrieben ist und/oder dem Fachmann bekannt ist.
  • In dem Datenverarbeitungsknoten 10 gibt es ein Computersystem/einen Server 12, das/der mit zahlreichen anderen Universal- oder Spezial-Datenverarbeitungssystem-Umgebungen bzw. -konfigurationen betriebsfähig ist. Zu Beispielen für allgemein bekannte Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die zur Verwendung mit dem Computersystem/Server 12 geeignet sein können, gehören Personal-ComputerSysteme, Server-Computersysteme, Thin Clients, Thick Clients, Handheld-Geräte, Laptop-Geräte, Multiprozessorsysteme, auf Mikroprozessoren beruhende Systeme, Set-Top-Boxen, programmierbare Verbraucherelektronik, Netzwerk-Personal-Computer (PCs), Minicomputersysteme, Mainframe-Computersysteme sowie verteilte Cloud-Computing-Umgebungen, die irgendeine(s) der obigen Systeme bzw. Einheiten enthalten, und dergleichen, aber nicht darauf beschränkt.
  • Das Computersystem/der Server 12 kann in dem allgemeinen Kontext von durch Computersysteme ausführbaren Anweisungen, z.B. Programmmodulen, beschrieben werden, die von einem Computersystem ausgeführt werden. Allgemein können zu Programmmodulen Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter gehören, die bestimmte Aufgaben durchführen bzw. bestimmte abstrakte Datentypen umsetzen. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen ausgeführt werden, wo Aufgaben durch entfernt angeordnete Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in entfernt angeordneten Computersystem-Speichermedien befinden, darunter Hauptspeichereinheiten.
  • Wie in 1A gezeigt ist, ist das Computersystem/der Server 12 in dem Datenverarbeitungsknoten 10 in Form einer Universal-Datenverarbeitungseinheit gezeigt. Die Komponenten des Computersystems/Servers 12 können eine(n) oder mehrere Prozessoren, Verarbeitungsschaltkreise und/oder Verarbeitungseinheiten (gemeinsam ein Prozessor 16), einen Systemspeicher 28 und einen Bus 18 aufweisen, der verschiedene Systemkomponenten, darunter den Systemspeicher 28, mit dem Prozessor 16 verbindet, sind aber nicht darauf beschränkt.
  • Der Bus 18 stellt eine oder mehrere einer beliebigen von mehreren Arten von Busstrukturen dar, darunter ein Speicherbus, eine Speichersteuereinheit, ein Peripheriebus, ein beschleunigter Grafikanschluss, ein Prozessor und ein lokaler Bus, die eine beliebige aus einer Vielfalt von Busarchitekturen verwenden. Zu derartigen Architekturen gehören als Beispiel und nicht als Einschränkung ein ISA-Bus (Industry Standard Architecture), ein MCA-Bus (Micro Channel Architecture), ein EISA-Bus (Enhanced ISA), ein VESA-Lokalbus (Video Electronics Standards Association) sowie ein PCI-Bus (Peripheral Component Interconnects).
  • Das Computersystem/der Server 12 beinhaltet üblicherweise eine Vielfalt von durch einen Computer lesbaren Speichermedien. Bei derartigen Medien kann es sich um jedes beliebige Medium handeln, auf welches das Computersystem/der Server 12 zugreifen kann, und es beinhaltet sowohl flüchtige als auch nichtflüchtige Medien, austauschbare und nicht austauschbare Medien usw.
  • Der Systemspeicher 28 kann durch einen Computer lesbare Speichermedien in Form eines flüchtigen Speichers wie zum Beispiel einen Direktzugriffsspeicher (RAM) 30 und/oder Cachespeicher 32 enthalten. Das Computersystem/der Server 12 kann darüber hinaus andere austauschbare/nicht austauschbare, flüchtige/nichtflüchtige, durch einen Computer lesbare Speichermedien beinhalten. Lediglich als Beispiel kann ein Speichersystem 34 zum Lesen von und zum Schreiben auf ein nicht austauschbares, nichtflüchtiges magnetisches Speichermedium bereitgestellt werden (das nicht gezeigt ist und üblicherweise „Festplattenlaufwerk“ oder „Solid-State-Laufwerk“ genannt wird). Es können auch ein Magnetplattenlaufwerk zum Lesen von und Schreiben auf eine austauschbare, nichtflüchtige Magnetplatte (z.B. eine „Floppy-Diskette“) und ein optisches Plattenlaufwerk zum Lesen von und/oder Schreiben auf eine austauschbare, nichtflüchtige optische Platte wie eine CD-ROM, DVD-ROM und/oder ein anderes optisches Medium bereitgestellt werden, auch wenn diese nicht gezeigt sind. In derartigen Fällen können sie jeweils über eine oder mehrere Datenmedienschnittstellen mit dem Bus 18 verbunden sein. Wie nachfolgend weiter abgebildet und beschrieben wird, kann der Speicher 28 mindestens ein Computerprogrammprodukt enthalten, das einen Satz von Programmmodulen (z.B. mindestens einen) aufweist, die so konfiguriert sind, dass sie die in Ausführungsformen der Erfindung beschriebenen Funktionen ausführen.
  • Als Beispiel und nicht als Einschränkung können ein Programm/Dienstprogramm 40 mit (mindestens) einem Satz von Programmmodulen 42 sowie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten in dem Systemspeicher 28 gespeichert sein. Das Betriebssystem, das eine oder die mehreren Anwendungsprogramme, andere Programmmodule und die Programmdaten oder eine beliebige Kombination daraus können jeweils eine Umsetzung einer Netzwerkumgebung enthalten. Die Programmmodule 42 führen allgemein die hierin beschriebenen Funktionen und/oder Methodiken von Ausführungsformen der Erfindung aus.
  • Das Computersystem/der Server 12 kann auch mit einer oder mehreren externen Einheiten 14 wie einer Tastatur, einer Zeigeeinheit, einer Anzeige 24 usw., einer oder mehreren Einheiten, die es einem Benutzer ermöglichen, mit dem Computersystem/Server 12 zu interagieren, und/oder beliebigen Einheiten (z.B. Netzwerkkarten, Modems usw.) Daten austauschen, die es dem Computersystem/Server 12 ermöglichen, mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten auszutauschen. Ein derartiger Datenaustausch kann über Eingabe/Ausgabe- (E/A-) Schnittstellen 22 erfolgen. Außerdem kann das Computersystem/der Server 12 über den Netzwerkadapter 20 mit einem oder mehreren Netzwerken Daten austauschen, wie zum Beispiel einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet). Wie dargestellt ist, tauscht der Netzwerkadapter 20 mit den anderen Komponenten des Computersystems/Servers 12 über den Bus 18 Daten aus. Es sollte klar sein, dass andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden könnten, auch wenn diese nicht gezeigt sind. Zu Beispielen gehören folgende, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Festplattenlaufwerk-Arrays, RAID-Systeme (redundante Anordnung unabhängiger Festplatten), Bandlaufwerke, Speichersysteme zur Datenarchivierung usw.
  • Auf dem Computersystem/Server 12 kann ein Betriebssystem wie zum Beispiel das Microsoft Windows® Betriebssystem (OS), ein Apple® OS, ein UNIX OS usw. installiert sein. Man wird verstehen, dass eine bevorzugte Ausführungsform auch auf anderen als den genannten Plattformen und Betriebssystemen umgesetzt werden kann. Eine bevorzugte Ausführungsform kann unter Verwendung von XML, C und/oder C++ oder anderen Programmiersprachen zusammen mit einer objektorientierten Programmiermethodik geschrieben werden. Es kann eine objektorientierte Programmierung (OOP) verwendet werden, die zunehmend zum Entwickeln komplexer Anwendungen eingesetzt wird.
  • 1 B veranschaulicht eine Architektur 100 gemäß einer Ausführungsform. Der in 1A gezeigte Datenverarbeitungsknoten 10 kann in der in 1B gezeigten Architektur 100 verwendet werden. Außerdem kann die Architektur 100 eine Mehrzahl von entfernt angeordneten Netzwerken 102 umfassen, darunter ein erstes entfernt angeordnetes Netzwerk 104 und ein zweites entfernt angeordnetes Netzwerk 106. Ein Gateway 101 kann zwischen den entfernt angeordneten Netzwerken 102 und einem nahe gelegenen Netzwerk 108 angeschlossen sein. In dem Kontext der vorliegenden Architektur 100 können die Netzwerke 104, 106 jeweils jede beliebige Form annehmen, darunter ein LAN, ein WAN wie zum Beispiel das Internet, ein öffentliches Telefonnetz (PSTN, public switched telephone network), ein internes Telefonnetz usw., aber nicht darauf beschränkt.
  • Im Einsatz dient das Gateway 101 als Zugangspunkt von den entfernt angeordneten Netzwerken 102 zu dem nahe gelegenen Netzwerk 108. Als solches kann das Gateway 101 als Router, der in der Lage ist, ein bestimmtes Datenpaket, das an dem Gateway 101 ankommt, zu leiten, und als Vermittlungseinheit fungieren, die den tatsächlichen Pfad in das und aus dem Gateway 101 für ein bestimmtes Paket bereitstellt.
  • Weiterhin ist mindestens ein Datenserver 114 enthalten, der mit dem nahe gelegenen Netzwerk 108 verbunden ist und von den entfernt angeordneten Netzwerken 102 aus über das Gateway 101 zugänglich ist. Es ist zu beachten, dass der/die Datenserver 114 jede beliebige Art von Datenverarbeitungseinheit/Groupware enthalten können. Mit jedem Datenserver 114 ist eine Mehrzahl von Benutzereinheiten 116 verbunden. Die Benutzereinheiten 116 können auch direkt durch eines der Netzwerke 104, 106, 108 verbunden sein. Zu derartigen Benutzereinheiten 116 können ein Desktop-Computer, ein Laptop-Computer, ein Handheld-Computer, ein Drucker und/oder jede beliebige andere Art von Logik gehören. Es ist zu beachten, dass eine Benutzereinheit 111 in einer Ausführungsform auch direkt mit jedem beliebigen der Netzwerke verbunden sein kann.
  • Ein Peripheriegerät 120 oder eine Reihe von Peripheriegeräten 120, z.B. Faxgeräte, Drucker, vernetzte und/oder lokale Speichereinheiten oder -systeme usw., können mit einem oder mehreren der Netzwerke 104, 106, 108 verbunden sein. Es ist zu beachten, dass Datenbanken und/oder zusätzliche Komponenten mit jeder beliebigen Art von Netzwerkelementen, die mit den Netzwerken 104, 106, 108 verbunden sind, verwendet werden oder in diese integriert sein können. In dem Kontext der vorliegenden Beschreibung kann sich ein Netzwerkelement auf jede beliebige Komponente eines Netzwerks beziehen.
  • Gemäß einigen Ansätzen können die hierin beschriebenen Verfahren und Systeme mit und/oder auf virtuellen Systemen und/oder Systemen implementiert werden, die ein oder mehrere andere Systeme emulieren, wie zum Beispiel ein UNIX-System, das eine IBM z/OS-Umgebung emuliert, ein UNIX-System, das eine MICROSOFT WINDOWS-Umgebung virtuell hostet, ein MICROSOFT WINDOWS-System, das eine IBM z/OS-Umgebung emuliert, usw. Diese Virtualisierung und/oder Emulation kann in einigen Ausführungsformen durch die Verwendung von VMWARE-Software oder einer anderen bekannten Virtualisierungsschicht verbessert werden.
  • Bei mehreren Ansätzen können ein oder mehrere Netzwerke 104, 106, 108 ein Cluster von Systemen darstellen, das allgemein als „Cloud“ bezeichnet wird. Bei Cloud-Computing werden gemeinsam genutzte Ressourcen wie zum Beispiel Verarbeitungsleistung, Peripheriegeräte, Software, Daten, Server usw. jedem System in der Cloud in einer bedarfsgesteuerten Beziehung bereitgestellt, wodurch ein Zugriff und eine Verteilung von Diensten über viele Datenverarbeitungssystem hinweg ermöglicht wird. Cloud-Computing geht üblicherweise mit einer Internetverbindung zwischen den in der Cloud betriebenen Systemen einher, aber es können auch andere Techniken zum Verbinden der Systeme verwendet werden.
  • Unter Bezugnahme auf 2 ist ein mehrstufiges Speichersystem 200 gemäß einer Ausführungsform gezeigt. Man beachte, dass einige der in 2 gezeigten Elemente gemäß verschiedenen Ausführungsformen als Hardware und/oder Software umgesetzt werden können. Das Speichersystem 200 kann eine Speichersystem-Verwaltungseinheit 212 zum Austausch von Daten mit einer Mehrzahl von Medien auf mindestens einer höheren Speicherschicht 202 und mindestens einer niedrigeren Speicherschicht 206 beinhalten. Die Speichersystem-Verwaltungseinheit kann auch eine Jobsteuerungs-Verwaltungseinheit zum Verwalten von Jobanforderungen enthalten, wie hierin gemäß verschiedenen Ausführungsformen ausführlicher beschrieben ist. Die höhere(n) Speicherschicht(en) 202 kann/können vorzugsweise ein oder mehrere Zufallszugriffs- und/oder Direktzugriffsmedien 204 beinhalten, wie zum Beispiel nichtflüchtigen Speicher (NVM), Halbleiterspeicher in Solid-State-Laufwerken (SSDs), Flash-Speicher, SSD-Arrays, Flash-Speicher-Arrays, Festplatten in Festplattenlaufwerken (HDDs) usw. und/oder andere, die hierin erwähnt oder nach dem Stand der Technik bekannt sind. Die niedrigere(n) Speicherschicht(en) 206 kann/können vorzugsweise ein oder mehrere leistungsschwächere Speichermedien 208 umfassen, darunter Festplattenlaufwerke mit langsamerem Zugriff, Medien mit sequenziellem Zugriff wie zum Beispiel Magnetband in Bandlaufwerken und/oder optische Medien usw. und/oder andere, die hierin erwähnt oder nach dem Stand der Technik bekannt sind. Eine oder mehrere zusätzliche Speicherschichten 216 können jede beliebige Kombination aus Speichermedien beinhalten, wie von einem Entwickler des Systems 200 gewünscht. Auch kann jede der höheren Speicherschichten 202 und/oder der niedrigeren Speicherschichten 206 eine Kombination von Speichereinheiten und/oder Speichermedien beinhalten.
  • Die Speichersystem-Verwaltungseinheit 212 kann mit den Speichermedien 204, 208 auf der/den höheren Speicherschicht(en) 202 und der/den niedrigeren Speicherschicht(en) 206 über ein Netzwerk 210 wie zum Beispiel ein in 2 gezeigtes Speicherbereichsnetz (SAN, storage area network) oder einen anderen geeigneten Netzwerktyp Daten austauschen. Die Speichersystem-Verwaltungseinheit 212 kann auch mit einem oder mehreren Host-Systemen (nicht gezeigt) über eine Host-Schnittstelle 214 Daten austauschen, die Teil der Speichersystem-Verwaltungseinheit 212 sein kann, aber nicht muss. Die Speichersystem-Verwaltungseinheit 212 und/oder jegliche andere Komponente des Speichersystems 200 können in Hardware und/oder Software umgesetzt sein und zum Ausführen von Befehlen einen Prozessor (nicht gezeigt) eines nach dem Stand der Technik bekannten Typs nutzen, wie zum Beispiel eine zentrale Verarbeitungseinheit (CPU, central processing unit), eine im Feld programmierbare Gatter-Anordnung (FPGA, field programmable gate array), eine anwendungsspezifische integrierte Schaltung (ASIC, application specific integrated circuit) usw. Natürlich kann jede beliebige Anordnung eines Speichersystems verwendet werden, wie dem Fachmann beim Lesen der vorliegenden Beschreibung ersichtlich ist.
  • In weiteren Ausführungsformen kann das Speichersystem 200 eine beliebige Anzahl von Datenspeicherschichten beinhalten und kann dieselben oder unterschiedliche Speichermedien in jeder Speicherschicht beinhalten. Zum Beispiel kann jede Datenspeicherschicht denselben Typ Speichermedien beinhalten, wie zum Beispiel HDDs, SSDs, Medien mit sequenziellem Zugriff (Band in Bandlaufwerken, optische Platten in optischen Laufwerken usw.), Direktzugriffsmedien (CD-ROM, DVD-ROM usw.) oder jede Kombination von Medienspeichertypen. In einer derartigen Konfiguration kann eine höhere Speicherschicht 202 eine Mehrheit an SSD-Speichermedien (bis einschließlich sämtlicher SSD-Speichermedien) zum Speichern von Daten in einer leistungsfähigeren Speicherumgebung beinhalten, und die verbleibenden Speicherschichten, darunter die niedrigere Speicherschicht 206, und die zusätzlichen Speicherschichten 216 können jede beliebige Kombination von SSDs, HDDs, Bandlaufwerken usw. zum Speichern von Daten in einer weniger leistungsfähigen Speicherumgebung beinhalten. Auf diese Weise können häufiger abgerufene Daten, Daten mit höherer Priorität, Daten, auf die schneller zugegriffen werden muss, usw. in der höheren Speicherschicht 202 gespeichert werden, während Daten, die nicht eines dieser Attribute aufweisen, in den zusätzlichen Speicherschichten 216 gespeichert werden können, darunter die niedrigere Speicherschicht 206. Natürlich kann der Fachmann beim Lesen der vorliegenden Beschreibungen viele andere Kombinationen von Speichermedientypen zur Umsetzung in verschiedenen Speicherschemata gemäß den hierin dargestellten Ausführungsformen konzipieren.
  • In einer bestimmten Ausführungsform kann das Speichersystem 200 eine Kombination aus SSDs und HDDs enthalten, wobei die höhere Speicherschicht 202 SSDs (und möglicherweise etwas Pufferspeicher) enthält und die untere Speicherschicht 206 HDDs (und möglicherweise etwas Pufferspeicher) enthält. Gemäß einer anderen Ausführungsform kann das Speichersystem 200 eine Kombination aus SSDs und Magnetband mit Magnetbandlaufwerken umfassen, wobei die höhere Speicherschicht 202 SSDs (und möglicherweise etwas Pufferspeicher) enthält und die untere Speicherschicht 206 Magnetband (und möglicherweise etwas Pufferspeicher) und Magnetbandlaufwerke zum Zugreifen auf Daten von den Magnetbändern enthält. In noch einer anderen Ausführungsform kann das Speichersystem 200 eine Kombination aus HDDs und Magnetband enthalten, wobei die höhere Speicherschicht 202 HDDs (und möglicherweise etwas Pufferspeicher) enthält und die untere Speicherschicht 206 Magnetband (und möglicherweise etwas Pufferspeicher) enthält.
  • Unter Bezugnahme auf 3 ist ein Parallel-Datenverarbeitungssystem (Sysplex) 300 gezeigt, das mehr als ein System 302 umfasst, z.B. System 1 302a, System 2 302b, ... System N 302n. Jedes System enthält eine Anzahl von Komponenten. Wie in 3 gezeigt, enthält das System 1 302a eine VTAM- (Virtual Telecommunications Access Method) Steuerungsroutine 304, bei der es sich um einen Satz von Programmen handelt, welche die Steuerung über den Datenaustausch zwischen Terminals und Anwendungsprogrammen aufrechterhalten und als Jobsteuerungs-Verwaltungseinheit bezeichnet werden können. Das System 1 302a umfasst auch eine Terminalverwaltungsregion (TOR, terminal owning region) 306, bei der es sich um eine CICS- (Customer Information Control System-) Region handelt, die dem Verwalten des Terminalnetzwerks gewidmet ist, sowie eine Mehrzahl von Anwendungsverwaltungsregionen (AORs, application owning regions) 308, z.B. AOR1 308a, AOR2 308b, ... AORn 308n. Jede AOR 308 ist dem Bereitstellen von Platz für eine Anwendung gewidmet, um Ressourcen des Systems zu betreiben und zu nutzen. Die AORs 308 sind mit einem Teilsystem mit gemeinsamer Datennutzung des Speicherverwaltungsteilsystems (SMSVSAM) 310 und einer Systemprotokollfunktion 312 verbunden. Diese Komponenten sind mit einer Mehrzahl von Datensätzen 318 eines Verfahrens zum Zugreifen auf virtuellen Speicher (VSAM, Virtual Storage Access Method), einem oder mehreren Netzwerken 314 und einer Mehrzahl von Datensätzen 316 der Systemprotokollfunktion verbunden.
  • Dieses Parallel Sysplex 300 kann verwendet werden, um einen Datenzugriff mit gemeinsamer Nutzung auf Datensatzebene (RLS, record level sharing) bereitzustellen, der einen Mehrfachsystemzugriff auf einen VSAM-Datensatz ermöglicht und gleichzeitig ein systemübergreifendes Sperren und ein Inaktivieren eines Puffers sicherstellt. RLS verwendet systemübergreifende erweiterte Dienste (XES, cross-system extended services), um ein Sperren auf Datensatzebene, Datensatzsperren und Datenzwischenspeichern durchzuführen. RLS erhält eine Datenkohärenz auf der Steuerintervallebene aufrecht. Es verwendet Coupling Facility- (CF-) Cachespeicher als Durchschreib-Cachespeicher (store-through caches). Als Reaktion darauf, dass ein Steuerintervall von Daten geschrieben wird, wird dieses sowohl in den CF-Cachespeicher als auch in eine Einheit mit direktem Zugriff auf Speicher (DASD, Direct Access Storage Device) geschrieben. Dadurch wird sichergestellt, dass ein Fehler in dem CF-Cachespeicher nicht zu dem Verlust von VSAM-Daten führt. Natürlich kann in einigen Ausführungsformen ein einzelnes System wie zum Beispiel das System 1 302a verwendet werden, um einen Zugriff auf die VSAM-Datensätze 318 bereitzustellen.
  • Unter Bezugnahme auf 4 ist ein Verfahren 400 gemäß einer Ausführungsform gezeigt. Das Verfahren 400 kann gemäß der vorliegenden Erfindung in verschiedenen Ausführungsformen in einer beliebigen der unter anderem in den 1A, 1B, 2 und 3 abgebildeten Umgebungen durchgeführt werden. Natürlich können mehr oder weniger Arbeitsschritte als die in 4 konkret beschriebenen in dem Verfahren 400 enthalten sein, wie der Fachmann beim Lesen der vorliegenden Beschreibungen verstehen wird.
  • Jeder der Schritte des Verfahrens 400 kann durch jede beliebige geeignete Komponente der Betriebsumgebung durchgeführt werden. Zum Beispiel kann das Verfahren 400 in verschiedenen Ausführungsformen teilweise oder vollständig von einem Mikroprozessor, einem Server, einem Mainframe-Computer, einem Verarbeitungsschaltkreis mit einem oder mehreren integrierten Prozessoren oder einer anderen Einheit, die einen oder mehrere Prozessoren aufweist, durchgeführt werden. Der Verarbeitungsschaltkreis, z.B. ein oder mehrere Prozessoren, Chips und/oder Module, die in Hardware und/oder Software umgesetzt sind und vorzugsweise mindestens eine Hardware-Komponente aufweisen, kann in jeder beliebigen Einheit zum Durchführen eines oder mehrerer Schritte des Verfahrens 400 verwendet werden. Zu veranschaulichenden Prozessoren gehören, ohne darauf beschränkt zu sein, eine MPU, eine CPU, eine ASIC, eine FPGA usw., Kombinationen daraus oder jede beliebige andere geeignete Datenverarbeitungseinheit, die nach dem Stand der Technik bekannt ist.
  • In einer Ausführungsform kann die Betriebsumgebung ein Datensystem umfassen, bei dem es sich um eins aus einem Cluster von zusätzlichen Systemen innerhalb der Umgebung handeln kann (z.B. ein Sysplex usw.). In einer anderen Ausführungsform kann das Datensystem einen Server, einen Personal Computer, eine mobile Einheit oder jede beliebige Einheit umfassen, die in der Lage ist, den ersten Prozess auszuführen. In noch einer anderen Ausführungsform kann das Datensystem in einer virtuellen Speicherumgebung enthalten sein. Zum Beispiel kann das Datensystem Teil einer VSAM-Umgebung sein.
  • Wie in 4 gezeigt, kann das Verfahren 400 mit einem Arbeitsschritt 402 beginnen, in dem ein Befehl, der ein Ausführen einer Stapelanwendung festlegt, an einer Jobsteuerungs-Verwaltungseinheit eines Datensystems empfangen wird. Der Befehl kann jedes beliebige Format aufweisen und von jedem nach dem Stand der Technik bekannten Typ sein. Außerdem kann der Befehl anstelle einer Einheit, die das Ausführen der Stapelanwendung initiiert hat, von einer oder mehreren anderen physischen oder virtuellen Zwischeneinheiten an die Jobsteuerungs-Verwaltungseinheit weitergeleitet werden.
  • Die Jobsteuerungs-Verwaltungseinheit ist in der Lage und dazu konfiguriert, durch die Jobsteuerungs-Verwaltungseinheit empfangene Jobanforderungen unter Verwendung verschiedener Ressourcen des Datensystems zu steuern. Die Jobsteuerungs-Verwaltungseinheit kann von jedem nach dem Stand der Technik bekannten Typ sein. In verschiedenen Ansätzen kann die Jobsteuerungs-Verwaltungseinheit Ressourcen des Datensystems zuweisen, um empfangene Jobanforderungen zu verarbeiten, ein Ausführen von Jobs innerhalb der begrenzten Ressourcen des Datensystems zu priorisieren und empfangene Jobanforderungen durchzusehen, um einen nächsten auszuführenden Job zu bestimmen, um die Verwendung der Ressourcen zu optimieren und/oder die von einem oder mehreren Systemadministratoren festgelegten und/oder für einen angeforderten Job spezifischen Jobsteuerungsspezifikationen einzuhalten. Die Jobsteuerungs-Verwaltungseinheit kann in einigen Ansätzen eine oder mehrere Warteschlangen zum Speichern von empfangenen Jobanforderungen nutzen.
  • Die Stapelanwendung kann von jedem beliebigen Typ, jeder beliebigen Größe, jeder beliebigen Struktur und jedem beliebigen Format sein, wie es einem Fachmann bekannt ist, und ist mit dem Datensystem und darin betriebenen Einheiten kompatibel. Zum Beispiel kann die Stapelanwendung ein Zugreifen auf und/oder ein Verarbeiten von einem oder mehreren Datensätzen anfordern, die in dem Datensystem auf einem oder mehreren durch einen Computer lesbaren Speichermedien wie zum Beispiel RAM, ROM, einem Festplattenlaufwerk, einer SSD usw. gespeichert sind. Ein Zugreifen auf einen bestimmten Datensatz umfasst ein Lesen, Schreiben, Abändern, Löschen, Verschieben und/oder anderweitiges Bearbeiten des bestimmten Datensatzes, wie es nach dem Stand der Technik bekannt ist.
  • In Arbeitsschritt 404 wird ein der Stapelanwendung zugehöriger Festschreibungszählerstand an der Jobsteuerungs-Verwaltungseinheit empfangen. Der Festschreibungszählerstand kann ein einzelner Wert oder mehr als ein Wert sein. In beiden Fällen gibt der Festschreibungszählerstand eine Anzahl von Datensätzen an, die durch die Stapelanwendung vor dem Festschreiben der Datensätze zu verarbeiten sind (z.B. Freigeben sämtlicher den verarbeiteten Datensätzen zugehöriger Datensatzsperren).
  • In einer Ausführungsform kann der Festschreibungszählerstand ein einzelner Wert sein, der eine Mindestanzahl von Datensätzen ausdrückt, die vor dem Festschreiben zugehöriger Datensatzsperren zu verarbeiten sind. Zum Beispiel kann der Festschreibungszählerstand als Mindestwert einen Wert von 1, 10, 100, 200, 500, 1000 usw. aufweisen und auf einer Zeitspanne beruhen, die für das Verarbeiten dieser Menge an Datensätzen verstreicht. Der Festschreibungszählerstand als Mindestwert gibt an, dass mindestens so viele Datensätze (gleich dem Festschreibungszählerstand) verarbeitet werden (und möglicherweise noch mehr), bevor diesen zugehörige Datensatzsperren festgeschrieben werden, die nach dem Abschließen des Verarbeitens von Datensätzen möglicherweise noch ausstehen.
  • In einer anderen Ausführungsform kann der Festschreibungszählerstand ein einzelner Wert sein, der eine Höchstanzahl von Datensätzen ausdrückt, die vor dem Festschreiben zugehöriger Datensatzsperren zu verarbeiten sind. Zum Beispiel kann der Festschreibungszählerstand als Höchstwert einen Wert von 5, 10, 100, 200, 500, 1000 usw. aufweisen und auf einer Zeitspanne beruhen, die für das Verarbeiten dieser Menge an Datensätzen verstreicht. Der Festschreibungszählerstand als Höchstwert gibt an, dass höchstens so viele Datensätze (gleich dem Festschreibungszählerstand) verarbeitet werden (aber möglicherweise weniger), bevor diesen zugehörige Datensatzsperren festgeschrieben werden, die nach dem Abschließen des Verarbeitens von Datensätzen möglicherweise noch ausstehen.
  • Gemäß einer anderen Ausführungsform kann der Festschreibungszählerstand mehrere Werte umfassen, z.B. einen Mindestwert und einen Höchstwert, die sowohl die Mindest- als auch die Höchstanzahl von zu verarbeitenden Datensätzen vor dem Festschreiben zugehöriger Datensatzsperren ausdrücken. Zum Beispiel kann der Mindest- oder Höchstwert des Festschreibungszählerstands einen Wert von 1, 5, 10, 100, 200, 500, 1000 usw. aufweisen, wobei der Mindestwert kleiner oder gleich dem Höchstwert ist. In dieser Ausführungsform fungiert der Festschreibungszählerstand als ein Bereich, so dass Datensatzsperren an jedem beliebigen Punkt innerhalb des Bereichs zwischen (und einschließlich) den Mindest- und Höchstwerten festgeschrieben werden können. Außerdem können die tatsächlichen Werte, die für die Mindest- und Höchstwerte ausgewählt werden, auf einer Zeitspanne beruhen, die für das Verarbeiten von Datensätzen verstreicht. Wenn der Mindestwert mit dem Höchstwert übereinstimmt, werden zusätzlich Datensatzsperren festgeschrieben, wenn genau diese Anzahl von Datensätzen verarbeitet ist.
  • Wie vorstehend beschrieben, kann bei dem Verfahren 400 der Festschreibungszählerstand zwei Werte umfassen: eine Mindestanzahl von Datensätzen, die vor einem Festschreiben zu verarbeiten sind, und eine Höchstanzahl von Datensätzen, die vor dem Festschreiben zu verarbeiten sind. Bei diesem Ansatz wird eine Menge von Datensatz-Sperranforderungen, deren Ausführung aufgrund des Verarbeitens der Gruppe von Datensätzen durch die Stapelanwendung aussteht, nicht verfolgt, und zwar als Reaktion auf ein Feststellen, dass die Mindestanzahl von Datensätzen, die vor dem Festschreiben zu verarbeiten sind, gleich der Höchstanzahl von Datensätzen ist, die vor dem Festschreiben zu verarbeiten sind, was einen einzelnen Wert für die Mindest- und Höchstanzahl von zu verarbeitenden Datensätzen angibt, und nach einem Verarbeiten genau dieser Anzahl von Datensätzen wird ein Festschreiben durchgeführt, um alle zugehörigen Datensatzsperren freizugeben.
  • In Arbeitsschritt 406 wird die Stapelanwendung durch die Jobsteuerungs-Verwaltungseinheit entweder direkt oder indirekt initiiert. Die Stapelanwendung verarbeitet eine Gruppe von Datensätzen, wobei das Verarbeiten ein Zugreifen auf die Datensätze umfasst. Infolge des Zugreifens der Stapelanwendung auf die Datensätze werden, wie nach dem Stand der Technik bekannt ist, Datensatzsperren für in Bearbeitung befindliche Datensätze ausgegeben. Die Gruppe von Datensätzen kann eine beliebige Anzahl von Datensätzen umfassen, von einem bis zu mehreren Millionen, abhängig von Fähigkeiten des Systems zum Bewältigen des Verarbeitens von mehreren Datensätzen und der Funktion und der Ausgestaltung der Stapelanwendung.
  • Zusätzlich kann in einer Ausführungsform ein zusätzliches Verarbeiten von Datensätzen einer oder mehreren zusätzlichen Anwendungen innerhalb des Datensystems zugehörig sein. Zum Beispiel kann eine erste Anwendung des Datensystems einen ersten Prozess an einem ersten Datensatz innerhalb des Datensystems durchführen, und eine zweite Anwendung des Datensystems kann einen zweiten Prozess an einem zweiten Datensatz innerhalb des Datensystems durchführen. In einer anderen Ausführungsform kann der erste Prozess eine oder mehrere Aktionen umfassen, die in Bezug auf den ersten Datensatz durchgeführt werden. Zum Beispiel kann der erste Prozess den ersten Datensatz bearbeiten, den ersten Datensatz entfernen, den ersten Datensatz erstellen, auf den ersten Datensatz zugreifen usw. In noch einer anderen Ausführungsform kann der erste Prozess Teil einer größeren Gruppe von Prozessen sein. Zum Beispiel kann der erste Prozess Teil eines Stapels von Prozessen sein, die innerhalb des Datensystems von der Stapelanwendung durchzuführen sind. Auch kann in einer Ausführungsform der erste Prozess einen transaktionalen Prozess (z.B. eine CICS-Transaktion usw.), einen Teilsystemprozess, einen Stapelprozess usw. umfassen.
  • Außerdem kann jeder Datensatz der Gruppe von Datensätzen in einer Ausführungsform alle Daten enthalten, auf die das Datensystem zugreifen kann. In einer anderen Ausführungsform kann jeder Datensatz für alle Teilsysteme und/oder Parallelsysteme des Datensystems zugänglich sein. Zum Beispiel können die Datensätze gemeinsam genutzte Daten innerhalb des Sysplex enthalten. In noch einer anderen Ausführungsform kann der Datensatz Speicherdaten enthalten (z. B. virtuelle Speicherdaten innerhalb eines VSAM usw.). In noch einer anderen Ausführungsform kann der Datensatz innerhalb eines oder mehrerer der Systeme eines Sysplex innerhalb eines von den anderen Systemen innerhalb des Sysplex getrennten Speicherbereichs gespeichert sein.
  • Jede beliebige nach dem Stand der Technik bekannte Stapelanwendung kann initiiert werden, wie zum Beispiel Stapelanwendungen, die Finanzdatensätze, Bankdatensätze, Personaldatensätze, medizinische Datensätze, persönliche Datensätze, Sozialversicherungs- und Regierungsdatensätze usw. verarbeiten. Mit „Initiieren“ ist ein Starten der Stapelanwendung gemeint (z.B. Ausführen der Stapelanwendung), so dass sie die Funktionalität, die innerhalb des Codes der Stapelanwendung enthalten ist, teilweise oder vollständig durchführen kann.
  • In Arbeitsschritt 408 wird ein erster Datensatz der Gruppe von Datensätzen als Reaktion darauf gesperrt, dass der erste Datensatz durch die Stapelanwendung verarbeitet wird. Außerdem bewirkt die Stapelanwendung in Arbeitsschritt 408, dass der erste Datensatz erst dann entsperrt wird, wenn die Stapelanwendung ein Verarbeiten eines letzten Datensatzes in der Gruppe von Datensätzen beendet hat. Mit „letzter Datensatz“ ist gemeint, dass außer dem Datensatz, der als letzter Datensatz bezeichnet wird, alle anderen Datensätze in der Gruppe von Datensätzen verarbeitet wurden. Dieses Verarbeiten kann chronologisch, nach einem Warteschlangenschema wie zum Beispiel zuerst herein/zuerst hinaus (FIFO, first in/first out), zuerst herein/zuletzt hinaus (FILO, first in/last out), nach Größe (kleinste bis größte, größte bis kleinste), alphabetisch nach dem Namen des Datensatzes oder einem anderen Attribut der Datensätze oder in einer zufälligen Reihenfolge erfolgen.
  • Des Weiteren können zusätzliche Datensätze als Reaktion darauf gesperrt werden, dass diese zusätzlichen Datensätze durch die Stapelanwendung verarbeitet werden. Dieser Prozess des Sperrens von Datensätzen kann so lange fortgesetzt werden, wie die Stapelanwendung auf zusätzliche Datensätze der Gruppe von Datensätzen zugreift. Sobald jedoch alle Datensätze der Gruppe von Datensätzen durch die Stapelanwendung verarbeitet wurden, wird davon ausgegangen, dass auf der Grundlage des Verarbeitens von Datensätzen durch die Stapelanwendung keine weiteren Datensatzsperren erzeugt werden.
  • In dieser Ausführungsform kann die Sperre für den ersten Datensatz eine Zugriffssperre enthalten. Zum Beispiel kann die Sperre für den ersten Datensatz der Stapelanwendung einen exklusiven Zugriff auf den ersten Datensatz innerhalb des Datensystems und aller parallelen Systeme oder Teilsysteme davon bereitstellen. In einem anderen Beispiel kann die Sperre für den ersten Datensatz verhindern, dass ein anderer Prozess als ein Prozess der Stapelanwendung auf den ersten Datensatz zugreift. In einer anderen Ausführungsform kann die Sperre für den ersten Datensatz von der Stapelanwendung für eine vorher festgelegte Zeit beibehalten werden. In noch einer anderen Ausführungsform kann die Sperre für den ersten Datensatz von der Stapelanwendung so lange beibehalten werden, bis ein oder mehrere vorher festgelegte Kriterien erfüllt sind. Zum Beispiel kann die Sperre für den ersten Datensatz von der Stapelanwendung so lange beibehalten werden, bis ein Befehl von der Stapelanwendung ausgegeben wird, die Sperre freizugeben, nachdem die Verarbeitung abgeschlossen ist.
  • In Arbeitsschritt 410 werden als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten eines n-ten Datensatzes der Gruppe von Datensätzen abgeschlossen hat, alle Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, festgeschrieben. Mit „festgeschrieben“ ist gemeint, dass Aktualisierungen und Änderungen, die sich aus dem Verarbeiten der Stapelanwendung ergeben, an dem einen oder den mehreren betroffenen Datensätzen vorgenommen werden und alle auf der Grundlage des Verarbeitens der Stapelanwendung ausgegebenen Datensatzsperren freigegeben werden, so dass ein anderer Prozess auf den Datensatz bzw. die Datensätze zugreifen darf. In einer Ausführungsform ist n gleich dem Festschreibungszählerstand und eine positive ganze Zahl, die eine Anzahl von Datensätzen angibt, die durch die Stapelanwendung vor dem Festschreiben der Datensatzsperren, die der Gruppe von Datensätzen zugehörig sind, zu verarbeiten sind.
  • Zum Beispiel verarbeitet die Stapelanwendung in Arbeitsschritt 410 unter der Annahme, dass n gleich 100 ist, 100 Datensätze, und als Reaktion auf ein Abschließen des Verarbeitens des 100. Datensatzes werden sämtliche Datensätze der Gruppe von Datensätzen, die aufgrund des Ausführens der Stapelanwendung gesperrt sind, festgeschrieben, wodurch diese Datensatzsperre(n) freigegeben wird/werden.
  • Gemäß einer Ausführungsform kann das Verfahren 400 ein Entdecken des Vorhandenseins und ein Verfolgen einer Menge von Datensatz-Sperranforderungen umfassen, deren Ausführung aufgrund des Verarbeitens der Gruppe von Datensätzen durch die Stapelanwendung aussteht. In dieser Beschreibung schließt der Begriff „Datensatz-Sperranforderungen“, auch als „Wartende“ bezeichnet, Datensatzzugriffsanforderungen und alle anderen Anforderungen für ein Zugreifen auf eine Ressource ein, die zum Ausgeben einer Datensatzsperre für einen oder mehrere bestimmte Datensätze führen, wobei diese Datensatzsperren noch ausstehen und aufgrund eines Konflikts mit der von der Stapelanwendung beibehaltenen Datensatzsperre nicht erfüllt werden können. Das heißt, das Vorhandensein und eine Anzahl von ausstehenden Datensatz-Sperranforderungen werden verfolgt, wobei dieser Wert in einem Ansatz auf einem durch einen Computer lesbaren Speichermedium gespeichert wird, auf das die Jobsteuerungs-Verwaltungseinheit zugreifen kann.
  • Diese ausstehenden Datensatz-Sperranforderungen werden von einer oder mehreren Einheiten ausgegeben (von einer oder mehreren physischen oder virtuellen Einheiten, die sich von der Jobsteuerungs-Verwaltungseinheit unterscheiden, während diese das Verfahren 400 ausführt), um mindestens einen Datensatz zu sperren und/oder auf mindestens einen Datensatz zuzugreifen, der aufgrund der Ausführung der Stapelanwendung bereits gesperrt ist, und sie sind daher ausstehend und wurden nicht erfüllt. Die Jobsteuerungs-Verwaltungseinheit kann auch Datensatz-Sperranforderungen ausgeben, die ausstehend (Wartende) werden, da sie aufgrund der Ausführung der Stapelanwendung nicht erfüllt wurden, aber diese ausstehenden Datensatz-Sperranforderungen können zugunsten einer anderen Anwendung als der Stapelanwendung des Verfahrens 400 ausgegeben werden.
  • Außerdem kann jedem Wartenden ein Zeitüberschreitungswert zugehörig sein, der vorgibt, wann die ausstehende Datensatz-Sperranforderung abläuft, wenn die Datensatzsperre nicht vor dem Zeitüberschreitungswert verarbeitet ist. In einer Ausführungsform wird auch ein jedem Wartenden zugehöriger Zeitüberschreitungswert durch die Jobsteuerungs-Verwaltungseinheit bestimmt, so dass die Jobsteuerungs-Verwaltungseinheit in der Lage ist, zu ermitteln, wann die jeweilige Datensatz-Sperranforderung abläuft.
  • Dieses Verfolgen von Wartenden ermöglicht es der Jobsteuerungs-Verwaltungseinheit, eine Auswirkung der Ausführung der Stapelanwendung auf andere Anforderungen bezüglich des Zugreifens auf Datensätze der Gruppe von Datensätzen zu ermitteln, die während der Ausführung der Stapelanwendung auf unbestimmte Zeit aufgeschoben werden können. Dies kann zu ernsthaften Verzögerungen bei der Ausführung einer anderen Anwendung und/oder eines anderen Prozesses führen, die bzw. der möglicherweise eine höhere Priorität als die Stapelanwendung aufweist und es daher zweckmäßiger wäre, eher diesen zu verarbeiten als die Stapelanwendung des Verfahrens 400.
  • Darüber hinaus können in einer Ausführungsform mehrere Datensatz-Sperranforderungen innerhalb einer Warteschlange eingereiht werden. Zum Beispiel kann eine erste Anforderung für die Sperre des ersten Datensatzes innerhalb einer globalen Warteschlange des Datensystems identifiziert werden, die eine Mehrzahl von verschiedenen Anforderungen für Sperren von Datensätzen enthält, die gerade von anderen Prozessen gehalten werden. In einer anderen Ausführungsform kann es sich bei der ersten Anforderung für die Sperre des ersten Datensatzes um eine aus einer Mehrzahl von Anforderungen für die Sperre des ersten Datensatzes innerhalb der Warteschlange handeln. Zum Beispiel kann es sich bei einem zweiten Prozess um einen aus einer Mehrzahl von Prozessen innerhalb der Warteschlange handeln, die auf die Sperre des ersten Datensatzes warten, die von der Stapelanwendung gehalten wird.
  • In einem weiteren Ansatz kann das Verfahren 400 auch ein Festschreiben sämtlicher Datensätze der Gruppe von Datensätzen umfassen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, und zwar als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten mindestens einer Mindestanzahl von Datensätzen der Gruppe von Datensätzen abgeschlossen hat, und als Reaktion auf ein Feststellen, dass die Menge von Datensatz-Sperranforderungen (Wartenden) einen Schwellenwert überschreitet. In einem Ansatz ist die Mindestanzahl von Datensätzen geringer als der Festschreibungszählerstand, was zu einer Technik führt, die ein frühes Festschreiben ermöglicht (vor dem Verarbeiten einer Menge von Datensätzen, die dem Festschreibungszählerstand entspricht), um die ausstehenden Datensatz-Sperranforderungen zu bewältigen.
  • In einer Ausführungsform kann der Schwellenwert für ausstehende Datensatz-Sperranforderungen eine Datensatz-Sperranforderung betragen. In alternativen Ausführungsformen kann der Schwellenwert für ausstehende Datensatz-Sperranforderungen 2, 4, 5, 10, 20, 50, 100 oder mehr ausstehende Datensatz-Sperranforderungen betragen. Dieser Schwellenwert kann von einem Administrator des Datensystems explizit festgelegt werden. Außerdem kann dieser Schwellenwert einzeln für die Stapelanwendung festgelegt werden, so dass für alle anderen Anwendungen, die innerhalb des Systems ausgeführt werden, ein anderer Schwellenwert festgelegt werden kann.
  • Gemäß einer anderen Ausführungsform kann das Verfahren 400 ein Ermitteln einer Zeitspanne umfassen, die von einem Initiieren der Stapelanwendung bis zu einem Festschreiben aller Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, vergeht. Dieser Arbeitsschritt kann als Reaktion darauf ausgeführt werden, dass der n-te Datensatz der Gruppe von Datensätzen allein oder in Kombination mit einer Feststellung verarbeitet wird, dass für alle Datensätze in der Gruppe von Datensätzen nach dem Initiieren der Stapelanwendung keine ausstehenden Datensatzsperren entdeckt werden (z.B. keine Wartenden, die nach Initiierung der Stapelanwendung entdeckt oder anderweitig verfolgt werden).
  • In einer anderen Ausführungsform kann das Verfahren 400 ein Empfangen eines zweiten Befehls an der Jobsteuerungs-Verwaltungseinheit umfassen, der die Ausführung einer zweiten Stapelanwendung festlegt. Diese zweite Stapelanwendung kann denselben Satz von Regeln und Richtlinien wie die in Arbeitsschritt 406 initiierte Stapelanwendung einhalten oder aber einen anderen Satz von Regeln und Richtlinien einhalten, der für die zweite Stapelanwendung spezifisch ist und sich in einigen Ansätzen mit den Regeln und Richtlinien überschneiden kann, welche die Ausführung der in Arbeitsschritt 406 initiierten Stapelanwendung regeln. In einer Ausführungsform kann die zweite Stapelanwendung dieselbe sein wie die in Arbeitsschritt 406 initiierte Stapelanwendung.
  • Das Verfahren 400 kann auch ein direktes oder indirektes Initiieren der zweiten Stapelanwendung umfassen, die eine zweite Gruppe von Datensätzen verarbeitet, die sich teilweise oder vollständig mit der ersten Gruppe von Datensätzen überschneiden kann oder sich von der ersten Gruppe von Datensätzen unterscheiden kann. Außerdem kann das Verfahren 400 ein Sperren eines oder mehrerer Datensätze der zweiten Gruppe von Datensätzen als Reaktion darauf, dass der eine oder die mehreren Datensätze durch die zweite Stapelanwendung verarbeitet werden, und ein Verfolgen einer Menge von Datensatz-Sperranforderungen umfassen, deren Ausführung aufgrund des Verarbeitens der zweiten Gruppe von Datensätzen durch die Stapelanwendung aussteht (auf die zweite Gruppe von Datensätzen Wartende). Dieses Sperren von Datensätzen wird so durchgeführt, dass die zweite Stapelanwendung ein Entsperren des einen oder der mehreren Datensätze nicht bewirkt, sofern und solange die zweite Stapelanwendung ein Verarbeiten eines letzten Datensatzes der zweiten Gruppe von Datensätzen nicht abgeschlossen hat.
  • Zusätzlich kann das Verfahren 400 ein Festschreiben sämtlicher Datensätze der zweiten Gruppe von Datensätzen umfassen, die aufgrund der Ausführung der zweiten Stapelanwendung gesperrt sind, und zwar als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten eines m-ten Datensatzes der zweiten Gruppe von Datensätzen abgeschlossen hat, und als Reaktion auf ein Feststellen, dass die Menge von Datensatz-Sperranforderungen vor einer kürzesten Zeitüberschreitung derselben nach Abschließen des Verarbeitens des m-ten Datensatzes der zweiten Gruppe von Datensätzen verarbeitet werden wird. Dementsprechend kann auch ein Zeitüberschreitungswert für jede Datensatz-Sperranforderung bestimmt und/oder empfangen werden. Dieses Festschreiben wird nach Abschließen des Bearbeitens des m-ten Datensatzes der zweiten Gruppe von Datensätzen durchgeführt. Außerdem kann in einem Ansatz m gleich dem Festschreibungszählerstand sein.
  • Allerdings kann das Verfahren 400 in einem alternativen Ansatz ein Festschreiben aller Datensätze der zweiten Gruppe von Datensätzen beinhalten, die aufgrund der Ausführung der zweiten Stapelanwendung gesperrt sind, bevor das Verarbeiten des m-ten Datensatzes der zweiten Gruppe von Datensätzen abgeschlossen ist. Dieses Festschreiben kann als Reaktion auf eine Feststellung durchgeführt werden, dass die Menge von Datensatz-Sperranforderungen nach Abschließen des Verarbeitens des m-ten Datensatzes der zweiten Gruppe von Datensätzen nicht vor der kürzesten Zeitüberschreitung derselben verarbeitet werden wird.
  • Diese Feststellungen beruhen auf Zeitüberschreitungswerten, die den jeweiligen ausstehenden Datensatz-Sperranfragen zugehörig sind. Deshalb werden die Zeitüberschreitungen für alle ausstehenden Datensatz-Sperranforderungen verglichen, und eine Zeitüberschreitung, die am schnellsten oder in der kürzesten Zeitspanne eintritt, wird als kürzeste Zeitüberschreitung gewählt. Wenn diese Zeitüberschreitung als kürzeste Zeitüberschreitung gewählt ist, kann sichergestellt werden, dass alle ausstehenden Datensatz-Sperranforderungen ohne Zeitüberschreitung verarbeitet werden können, wenn die Datensatz-Sperranforderung mit der kürzesten Zeitüberschreitung ohne Zeitüberschreitung verarbeitet werden kann (nach dem Verarbeiten des m-ten Datensatzes der zweiten Gruppe von Datensätzen). Andernfalls wird das Verarbeiten der zweiten Gruppe von Datensätzen nach einem Verarbeiten der Mindestanzahl von Datensätzen unterbrochen, um sicherzustellen, dass keine der ausstehenden Datensatz-Sperranforderungen eine Zeitüberschreitung erfährt.
  • Das Verfahren 400 kann in einem System und/oder einem Computerprogrammprodukt umgesetzt werden. Zum Beispiel kann ein System einen Verarbeitungsschaltkreis und eine mit dem Verarbeitungsschaltkreis integrierte, durch den Verarbeitungsschaltkreis ausführbare oder mit dem Verarbeitungsschaltkreis integrierte und durch diesen ausführbare Logik enthalten. Mit „integriert mit“ ist gemeint, dass es sich bei dem Verarbeitungsschaltkreis um einen Hardware-Prozessor handelt, der eine fest codierte Logik beinhaltet, wie zum Beispiel eine ASIC, eine FPGA usw. Mit „ausführbar durch“ ist gemeint, dass der Prozessor so konfiguriert ist, dass er eine Softwarelogik ausführt, um eine von der Softwarelogik vorgegebene Funktionalität zu erreichen, wobei es sich bei dem Prozessor möglicherweise um eine MPU, eine CPU, einen Mikroprozessor usw. handelt. Die Logik ist so konfiguriert, dass sie den Verarbeitungsschaltkreis zum Durchführen des Verfahrens 400 veranlasst.
  • In einem anderen Beispiel kann ein Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium umfassen, auf dem Programmanweisungen enthalten sind. Bei dem durch einen Computer lesbaren Speichermedium kann es sich um jede beliebige geeignete, nach dem Stand der Technik bekannte Speichereinheit handeln, die so konfiguriert ist, dass sie darin Informationen speichert und einem Computer Zugriff darauf ermöglicht. Die enthaltenen Programmanweisungen sind durch einen Verarbeitungsschaltkreis ausführbar, um den Verarbeitungsschaltkreis zum Durchführen des Verfahrens 400 zu veranlassen.
  • Wenn das Verfahren 400 mit einem Datensystem, das sich an ein transaktionales VSAM hält, wie zum Beispiel innerhalb einer IBM z/OS-Umgebung, oder mit einem beliebigen anderen System durchgeführt wird, das ein transaktionales VSAM nutzt, wie nach dem Stand der Technik bekannt ist, kann in dem Jobschritt ein neuer Parameter in der Jobsteuersprache (JCL, job control language) oder an einer anderen geeigneten Stelle wie zum Beispiel in dem Mitglied der IGWSMSxx-Parameter-Bibliothek (paramlib) hinzugefügt werden, damit eine transaktionale VSAM-Steuerungsroutine entscheiden kann, wann automatische Festschreibungen durchzuführen sind. Wie hierin verwendet, beschreibt die transaktionale VSAM-Steuerungsroutine ein Softwaremodul, eine Bibliothek, ein Software Development Kit (SDK) und/oder ein Objekt, das einen gekapselten Funktionsblock enthält, der transaktionale VSAM-Aufgaben ausführt. Es kann jede geeignete Steuerungsroutine verwendet werden, wie dem Fachmann bekannt ist. In einigen Ausführungsformen kann die transaktionale VSAM-Steuerungsroutine auch als Jobsteuerungs-Verwaltungseinheit bezeichnet werden.
  • Der neue Parameter kann einen oder mehrere Werte wie zum Beispiel zwei oder drei Werte enthalten. In einem Ansatz kann der neue Parameter (Festschreibungszählerstand) einen Mindestwert und einen Höchstwert enthalten, die einen Wertebereich für Datensatzsperre und Datensatz-Zugriffsanforderungen angeben. Dieser Festschreibungszählerstand wird von der transaktionalen VSAM-Steuerungsroutine verwendet, um zu bestimmen, wann und ob ein Festschreibungspunkt im Namen der von einer Stapelanwendung genutzten Datensätze ausgegeben werden soll, wie zum Beispiel durch ein Aufrufen von Ressourcen-Wiederherstellungsdiensten (RRS, resource recovery services). Die transaktionale VSAM-Steuerungsroutine kann die Festschreibungshäufigkeit (Anzahl von Datensätzen, auf die zugegriffen wird, und/oder von angeforderten Datensatzsperren) auf einen Wert zwischen dem Mindest- und dem Höchstwert einstellen, der auf einer Analyse der Anzahl von ausstehenden Datensatzsperren (Wartenden) in der aktuellen Transaktion oder Wiederherstellungseinheit (UR, unit of recovery) beruht. Zusätzlich kann ein Administrator oder ein anderer Benutzer einen ähnlichen Festschreibungsparameter auf Systemebene in dem Initialisierungsroutinen-Mitglied für das Speicherverwaltungs-Teilsystem (IGDSMSxx) der sys1.paramlib festlegen. Außerdem kann der JCL-Wert die in dem IGDSMSxx angegebenen Werte überschreiben.
  • In diesem Beispiel gibt die transaktionale VSAM-Steuerungsroutine einen oder mehrere Festschreibungssynchronisationspunkte (syncpoints) im Namen von Stapelanwendungen oder Jobs aus, die ein transaktionales VSAM verwenden. Wie zuvor beschrieben, wird ein Parameter in der JCL-Ausführungsanweisung oder dem IGDSMSxx-Mitglied von sys1.parmlib angegeben, damit die transaktionale VSAM-Steuerungsroutine bestimmen kann, wann sie den Festschreibungssynchronisationspunkt ausgeben soll. Für jede UR oder Transaktion, die für automatische Festschreibungen aktiviert ist, kann die transaktionale VSAM-Steuerungsroutine die Anzahl von Datensatz-Zugriffsanforderungen (Hinzufügen, Löschen, Aktualisierungen) zählen, wenn diese von der Stapelanwendung ausgegeben werden. Anhand der Anzahl von Datensatz-Zugriffsanforderungen und der durch den Parameter festgelegten Werte entscheidet der transaktionale VSAM-Dienst (TVS) über einen Zeitpunkt, an dem automatische Festschreibungen für die UR durchgeführt werden. Der Zählerstand wird entweder während eines Festschreibens, unmittelbar danach oder im Falle eines Zurücksetzungs-Synchronisationspunktes zurückgesetzt.
  • In einer Ausführungsform kann der Parameter, der zum Angeben der automatischen Festschreibungshäufigkeit verwendet wird, wie folgt lauten: / / stepname EXEC positional-parm , TVSAMCOM = ( { minval } , { maxval } )
    Figure DE112018005359T5_0001
  • In diesem beispielhaften Parameter enthält TVSAMCOM einen oder mehrere Werte, die eine Anzahl von Datensätzen vorgeben, die vor dem Festschreiben der Datensätze zu verarbeiten sind. Bei dem Parameter minval handelt es sich um eine ganze Zahl (1 bis 99999), welche die Mindestanzahl von Datensatz-Zugriffsanforderungen darstellt, die durchgeführt werden, bevor die transaktionale VSAM-Steuerungsroutine eine automatische Festschreibung im Namen der Stapelanwendung ausgibt. Auch handelt es sich bei dem Parameter maxval um eine ganze Zahl (0 bis 99999), welche die Höchstanzahl von Datensatz-Zugriffsanforderungen darstellt, die durchgeführt werden, bevor die transaktionale VSAM-Steuerungsroutine eine automatische Festschreibung im Namen der Stapelanwendung ausgibt. Dieser Wert kommt dann, und nur dann zum Tragen, wenn die transaktionale VSAM-Steuerungsroutine die Festschreibungshäufigkeit (wie zum Beispiel aufgrund einer Sperrkonfliktanalyse) nicht dynamisch an eine Zahl anpasst, die niedriger ist als der durch den Parameter maxval angegebene Höchstwert.
  • Gemäß einem detaillierten Umsetzungsbeispiel ruft die transaktionale VSAM-Steuerungsroutine während der Initialisierung des Datenaustausch-Teilsystems (unter Verwendung von VSAM) des Speicherverwaltungs-Teilsystems (SMSVSAM) die Werte aus dem Speicherverwaltungs-Teilsystem (SMS) ab und speichert sie in internen Steuerblöcken. Die erste Anforderung zum „Öffnen“ eines Datensatzes für die UR ruft auch die Werte minval und maxval aus der JCL-Ausführungsanweisung ab und speichert sie in einem Steuerblock, der mit der Anforderung zum Öffnen verknüpft ist. Die erste Datensatz-Verwaltungsanforderung, die für die UR ausgegeben wird, legt die endgültigen Werte minval und maxval für die UR auf der Grundlage der in der JCL-Ausführungsanweisung und sys1.paramlib festgelegten Werte fest. Die in der JCL-Anweisung angegebenen Werte haben Vorrang vor denen in der IGDSMSxx.
  • Wenn für minval und maxval derselbe Wert festgelegt ist (minval = maxval && maxval > 0), führt die transaktionale VSAM-Steuerungsroutine automatische Festschreibungen durch, nachdem die festgelegte Anzahl von Datensatzzugriffsanforderungen, die von der Stapelanwendung ausgegeben wurden, durchgeführt wurde. In diesem Fall passt die transaktionale VSAM-Steuerungsroutine die Festschreibungshäufigkeit nicht auf der Grundlage der Anzahl von auf Datensatzsperren Wartenden an, die durch die UR entdeckt oder erhalten wurden, um Ressourcen zu sparen.
  • Gemäß einem ersten Beispiel gibt DFSMSTVS, unter der Annahme, dass TVSAMCOM = (100,100) ist, ein Festschreiben im Namen der Anwendung aus, wenn die Anzahl von durch die Anwendung durchgeführten Datensatzzugriffen (Verarbeitung von Datensätzen) 100 erreicht. Wenn der für minval festgelegte Wert kleiner als maxval ist (minval < maxval && maxval > 0), stellt die transaktionale VSAM-Steuerungsroutine die Festschreibungshäufigkeit auf eine Zahl zwischen minval und maxval ein. In diesem Fall führt die transaktionale VSAM-Steuerungsroutine eine Datensatzsperren-Konfliktanalyse für die UR durch, indem sie Informationen über Wartende für Datensatzsperren anfordert, die aufgrund der UR beibehalten werden. Die entfernt angeordneten Systeme antworten dem anfragenden System mit der CICS-Anforderung, die am ehesten eine Zeitüberschreitung erfahren wird, und mit der Tageszeit, zu der die Zeitüberschreitung eintreten wird. Sobald das anfragende System ein Signal empfängt, dass alle Systeme auf die Konfliktanfrage für eine bestimmte Datensatzsperre geantwortet haben, analysiert es alle Antworten, einschließlich der von ihm selbst. Wenn keine CICS-Jobs auf die Datensatzsperre warten, bedeutet dies, dass es keinen Konflikt gibt und die transaktionale VSAM-Steuerungsroutine erst dann eine Festschreibung ausgibt, wenn die Anzahl von in der UR verarbeiteten Datensätzen den Wert maxval erreicht.
  • Gemäß einem zweiten Beispiel gibt DFSMSTVS, unter der Annahme, dass TVSAMCOM = (10,100) ist, eine Festschreibung im Namen der Anwendung aus, wenn 100 Datensätze verarbeitet wurden, vorausgesetzt, es gibt keine CICS-Wartenden für irgendeine von der UR gehaltene Datensatzsperre. Wenn die herausgegebenen Informationen zeigen, dass es CICS-Jobs gibt, die auf mindestens eine der Datensatzsperren warten, kann die transaktionale VSAM-Steuerungsroutine ein Festschreiben durchführen, bevor die 100 Datensätze verarbeitet sind, aber erst nachdem die Mindestanzahl von 10 Datensätzen verarbeitet wurde.
  • Diese Anpassung der Festschreibungshäufigkeit innerhalb des durch minval und maxval festgelegten Bereichs kann mehrere Faktoren, allein oder in Kombination, berücksichtigen. Die transaktionale VSAM-Steuerungsroutine kann eine CICS-Warteanforderung ermitteln, die am ehesten in dem System eine Zeitüberschreitung erfahren wird, und dann berechnet die transaktionale VSAM-Steuerungsroutine auf der Grundlage dieses Zeitüberschreitungswertes die spezifische Zeit, zu der die Warteanforderung eine Zeitüberschreitung erfahren wird. Danach prüft die transaktionale VSAM-Steuerungsroutine gemäß dem folgenden Algorithmus, ob die UR, welche die Datensatzsperre hält, auf natürlichem Wege festgeschrieben wird (maxval erreicht wird), bevor die Zeitüberschreitung erreicht wird.
  • Für jede UR, die für ein dynamisches automatisches Festschreiben aktiviert ist, speichert die transaktionale VSAM-Steuerungsroutine einen Durchschnitt der Zeit, die jede Mikrotransaktion benötigt, so dass ein durchschnittlicher Zeitaufwand, der zum Abschließen der UR benötigt wird, ermittelt werden kann. Wenn der Benutzer zum Beispiel einen minval-Wert von 10 und einen maxval-Wert von 100 festlegt, und wenn es aufgrund von Konflikten keine dynamischen automatischen Festschreibungen gibt, die während des Verarbeitens der Stapelanwendung stattfinden, bevor das Verarbeiten von 100 Datensätzen erreicht ist, führt die transaktionale VSAM-Steuerungsroutine als Reaktion darauf, dass 100 Datensätze verarbeitet wurden, ein Festschreiben durch. Die zum Durchführen des Verarbeitens der 100 Datensätze verstrichene Zeit wird gespeichert, und eine durchschnittliche Zeit für ein Verarbeiten von Datensätzen bis zu der geplanten Festschreibung wird unter Verwendung dieser gespeicherten Zeit und aller zuvor erreichten Intervalle berechnet. Die transaktionale VSAM-Steuerungsroutine verwendet diese berechnete Durchschnittszeit zum Verarbeiten von Datensätzen bis zu der geplanten Festschreibung, um zu ermitteln, ob eine aktuelle UR frühzeitig festgeschrieben werden sollte, und zwar beruhend auf einer Zeit, zu der eine empfangene CICS-Anforderung eine Zeitüberschreitung erfährt, oder ob die UR fortgesetzt und festgeschrieben werden soll, wenn die Anzahl von verarbeiteten Datensätzen den maxval-Wert erreicht. Wenn die transaktionale VSAM-Steuerungsroutine feststellt, dass die Zeitüberschreitung eintreten wird, bevor die UR festgeschrieben wird, indem die Höchstanzahl von Datensatz-Zugriffsanforderungen erreicht wird, kennzeichnet die transaktionale VSAM-Steuerungsroutine die UR, so dass der TVS vor einem Ausführen der nächsten, für dieselbe UR ausgestellten Anforderung das automatische Festschreiben im Namen der Stapelanwendung durchführt. Wie zuvor beschrieben, wird die transaktionale VSAM-Steuerungsroutine als Reaktion darauf, dass eine vorzeitige Festschreibung (vor Erreichen von maxval) durchgeführt wird, nur in dem Fall die Festschreibung als Reaktion darauf ausgeben, dass minval erreicht wurde, wenn ein minval festgelegt ist, andernfalls gibt die transaktionale VSAM-Steuerungsroutine die Festschreibung sofort oder so schnell wie unter den gegebenen Betriebsbedingungen möglich aus.
  • In einem Beispiel wird, unter der Annahme, dass TVSAMCOM = (,100) ist, die Festschreibung ausgegeben, sobald ein Konflikt erkannt wird, und auch als Reaktion darauf, dass 100 Datensätze verarbeitet wurden. In einem anderen Beispiel wird, unter der Annahme, dass TVSAMCOM = (1,) ist, und unter der Annahme, dass kein maxval festgelegt ist, die UR als Reaktion darauf festgeschrieben, dass die transaktionale VSAM-Steuerungsroutine herausfindet oder entdeckt, dass eine CICS-Anforderung auf eine Datensatzsperre wartet. In einer Ausführungsform kann diese Funktion als Reaktion darauf deaktiviert werden, dass die TVSAMCOM-Werte beide auf 0 gesetzt sind, d.h. TVSAMCOM = (0,0) ist.
  • Gemäß einer Ausführungsform kann eine Festschreibung als Reaktion darauf, dass ein Datensatz geschlossen wird, ausgelöst werden, wobei in diesem Fall die transaktionale VSAM-Steuerungsroutine die UR festschreibt, die dem Task-Steuerblock (TCB, task control block) zugehörig ist, der das Schließen ausgibt. Damit garantiert der TVS, dass nach dem Schließen des Datensatzes keine Datensatzsperren beibehalten werden.
  • In einer anderen Ausführungsform kann eine Festschreibung als Reaktion darauf ausgelöst werden, dass die Stapelanwendung Datensatzsperren erhält und keine automatischen Festschreibungen durch die transaktionale VSAM-Steuerungsroutine ausgegeben werden. Diese Festschreibung kann deshalb ausgegeben werden, da es keine Wartenden auf die Datensätze gibt, die den verschiedenen von der UR gehaltenen Datensatzsperren zugrunde liegen, oder da der eine oder die mehreren in dem TVSAMCOM-Parameter angegebenen Werte nie erreicht werden, und deshalb ist es möglich, dass die Sperrstruktur, welche die Datensatz-Sperrinformationen speichert, voll wird, bevor die Anzahl von verarbeiteten Datensätzen maxval erreicht, um eine Festschreibung auszulösen. In diesem Fall erzwingt der TVS ein automatisches Festschreiben, um die von der Stapelanwendung gehaltenen Datensatzsperren freizugeben und die Sperrstruktur zu leeren, wenn ein Schwellenwert erreicht wird, der auf Zeit oder einer Menge oder auf einem anderen messbaren Parameter beruhen kann. Dieser Schwellenwert kann von einem Administrator festgelegt werden, oder es kann ein Standardwert verwendet werden, wie zum Beispiel 75 % voll, 80 % voll, 90 % voll usw.
  • Gemäß einer Ausführungsform ruft die transaktionale VSAM-Steuerungsroutine zum Durchführen des Festschreibungssynchronisationspunkts das RRS-Makro ATRCMIT oder ATR4CMIT auf, um anzuzeigen, dass die Änderungen für die UR dauerhaft gemacht werden sollen. Nach diesem Punkt funktioniert alles genau so, als ob die Stapelanwendung diejenige wäre, welche die RRS-Funktion SSRCMIT (COMMIT_UR) ausgibt. Der RRS wird alle Ressourcen-Verwaltungseinheiten auffordern, die Änderungen für die UR dauerhaft zu machen.
  • Der RRS-ATRCMIT-Aufruf erfolgt aus dem SMSVSAM-Adressraum heraus in speicherübergreifender Betriebsart unter dem TCB des Benutzers. Auf diese Weise ist der RRS in der Lage, den TCB, der die Festschreibung durchführt, und die ihm zugehörige UR zu erkennen. Bevor das Festschreiben beginnt, wartet die transaktionale VSAM-Steuerungsroutine solange, bis alle gerade ausgeführten asynchronen Anforderungen abgeschlossen sind. Dadurch wird gewährleistet, dass alle Anforderungen, die der UR zugehörig sind, festgeschrieben werden. Wenn eine Festschreibung durchgeführt wird, wartet der TCB solange, bis die Festschreibung abgeschlossen ist, so dass keine neuen Anforderungen zugelassen werden. Im Falle von Festschreibungsfehlern wird die UR markiert, ein Fehler wird an den Benutzer herausgegeben, und die Stapelanwendung setzt die Transaktion zurück und unternimmt einen erneuten Versuch, damit die Festschreibung stattfindet.
  • Gemäß mehreren hierin beschriebenen Ausführungsformen können automatische Festschreibungen in einer Datenspeicherumgebung ausgeführt werden, um Datensatzsperren im Namen von Stapelanwendungen zu beseitigen, die keine expliziten Festschreibungen durchführen. Diese Datensatzsperren können verhindern, dass nachfolgende Transaktionen stattfinden können. Die Entscheidung darüber, wann und ob die Datensatzsperren festgeschrieben werden (und dadurch die zugehörigen Datensätze zur Verarbeitung freigegeben werden), kann auf Parametern beruhen, die von einem oder mehreren Benutzern und/oder einer spezifischen Arbeitslast der Datenspeicherumgebung und deren Ressourcen festgelegt werden.
  • Außerdem müssen Anwendungen in hierin beschriebenen Ausführungsformen nicht abgeändert oder aktualisiert werden, um explizite Synchronisierungspunkte hinzuzufügen, um dadurch erzeugte Datensatzsperren festzuschreiben. Dieser Vorteil kommt Anwendungen zugute, die auf Datenspeichersystemen ausgeführt werden, die zu umständlich, zu teuer, zu massiv, zu zeitaufwendig oder anderweitig unpraktisch sind, um Änderungen an darauf ausgeführten Anwendungen vornehmen zu lassen, wie zum Beispiel, da einem Administrator der Anwendung oder des Datenspeichersystems ein Quellcode fehlt, um derartige Änderungen vorzunehmen.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Außerdem kann ein System gemäß verschiedenen Ausführungsformen einen Prozessor und eine Logik beinhalten, die mit dem Prozessor integriert und/oder durch ihn ausführbar ist, wobei die Logik so konfiguriert ist, dass sie einen oder mehrere der hierin genannten Prozessschritte ausführen kann. Mit „integriert mit“ ist gemeint, dass der Prozessor eine Logik als Hardware-Logik in sich eingebettet hat, wie zum Beispiel eine ASIC, eine FPGA usw. Mit „durch den Prozessor ausführbar“ ist gemeint, dass es sich bei der Logik um Hardware-Logik, Software-Logik wie Firmware, Teil eines Betriebssystems, Teil eines Anwendungsprogramms usw. oder eine Kombination aus Hardware- und Software-Logik handelt, die für den Prozessor zugänglich und so konfiguriert ist, dass sie den Prozessor veranlasst, bei der Ausführung durch den Prozessor eine bestimmte Funktionalität durchzuführen. Die Software-Logik kann auf einem lokalen und/oder entfernt angeordneten Speicher eines beliebigen Speichertyps gespeichert sein, wie nach dem Stand der Technik bekannt ist. Es kann jeder nach dem Stand der Technik bekannte Prozessor verwendet werden, wie zum Beispiel ein Software-Prozessormodul und/oder ein Hardware-Prozessor wie zum Beispiel eine ASIC, eine FPGA, eine CPU, eine integrierte Schaltung (IC), eine Grafikverarbeitungseinheit (GPU) usw.
  • Es wird einleuchten, dass die verschiedenen Merkmale der vorstehenden Systeme und/oder Methodologien auf jede beliebige Weise kombiniert werden können, woraus sich eine Mehrzahl von Kombinationen aus den oben dargelegten Beschreibungen ergibt.
  • Obwohl vorstehend verschiedene Ausführungsformen beschrieben wurden, sollte klar sein, dass diese lediglich als Beispiel und nicht als Einschränkung dargestellt wurden. Folglich werden die Breite und der Umfang einer bevorzugten Ausführungsform nicht durch irgendeine der vorstehend beschriebenen beispielhaften Ausführungsformen beschränkt, sondern sie werden nur gemäß den folgenden Ansprüchen und deren Entsprechungen festgelegt.

Claims (20)

  1. Verfahren, aufweisend: Empfangen eines Befehls, der ein Ausführen einer Stapelanwendung festlegt, an einer Jobsteuerungs-Verwaltungseinheit eines Datensystems; Empfangen eines der Stapelanwendung zugehörigen Festschreibungszählerstands an der Jobsteuerungs-Verwaltungseinheit; Initiieren der Stapelanwendung, wobei die Stapelanwendung eine Gruppe von Datensätzen verarbeitet; Sperren eines ersten Datensatzes der Gruppe von Datensätzen als Reaktion darauf, dass der erste Datensatz durch die Stapelanwendung verarbeitet wird, mit der Maßgabe, dass die Stapelanwendung ein Entsperren des ersten Datensatzes erst dann bewirkt, wenn die Stapelanwendung ein Verarbeiten eines letzten Datensatzes in der Gruppe von Datensätzen abgeschlossen hat; und Festschreiben aller Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, und zwar als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten eines n-ten Datensatzes der Gruppe von Datensätzen abgeschlossen hat, wobei n gleich dem Festschreibungszählerstand ist.
  2. Verfahren nach Anspruch 1, darüber hinaus aufweisend: Verfolgen einer Menge von Datensatz-Sperranforderungen, deren Ausführung aufgrund des Verarbeitens der Gruppe von Datensätzen durch die Stapelanwendung aussteht.
  3. Verfahren nach Anspruch 2, darüber hinaus aufweisend: Festschreiben aller Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, und zwar als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten mindestens einer Mindestanzahl von Datensätzen der Gruppe von Datensätzen abgeschlossen hat, und als Reaktion auf ein Feststellen, dass die Menge von Datensatz-Sperranforderungen einen Schwellenwert überschreitet, wobei die Mindestanzahl von Datensätzen geringer als der Festschreibungszählerstand ist.
  4. Verfahren nach Anspruch 3, wobei der Schwellenwert eine Datensatz-Sperranforderung beträgt.
  5. Verfahren nach Anspruch 1, darüber hinaus aufweisend: Ermitteln einer Zeitspanne, die von einem Initiieren der Stapelanwendung bis zu einem Festschreiben aller Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, vergeht, und zwar als Reaktion darauf, dass der n-te Datensatz der Gruppe von Datensätzen verarbeitet wird.
  6. Verfahren nach Anspruch 5, wobei die Zeitspanne, die von einem Initiieren der Stapelanwendung bis zu einem Festschreiben aller Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, vergeht, als Reaktion auf ein Feststellen bestimmt wird, dass sowohl: der n-te Datensatz der Gruppe von Datensätzen verarbeitet wurde, als auch nach einem Initiieren der Stapelanwendung keine ausstehenden Datensatzsperren für irgendwelche Datensätze in der Gruppe von Datensätzen entdeckt worden sind.
  7. Verfahren nach Anspruch 5, darüber hinaus aufweisend: Empfangen eines zweiten Befehls, der ein Ausführen einer zweiten Stapelanwendung festlegt, an der Jobsteuerungs-Verwaltungseinheit; Initiieren der zweiten Stapelanwendung, wobei die zweite Stapelanwendung eine zweite Gruppe von Datensätzen verarbeitet; Sperren eines oder mehrerer Datensätze der zweiten Gruppe von Datensätzen als Reaktion darauf, dass der eine oder die mehreren Datensätze von der zweiten Stapelanwendung verarbeitet werden, mit der Maßgabe, dass die zweite Stapelanwendung ein Entsperren des einen oder der mehreren Datensätze nicht bewirkt, sofern und solange die zweite Stapelanwendung ein Verarbeiten eines letzten Datensatzes in der zweiten Gruppe von Datensätzen nicht abgeschlossen hat; Verfolgen einer Menge von Datensatz-Sperranforderungen, deren Ausführung aufgrund des Verarbeitens der zweiten Gruppe von Datensätzen durch die Stapelanwendung aussteht; Festschreiben aller Datensätze der zweiten Gruppe von Datensätzen, die aufgrund der Ausführung der zweiten Stapelanwendung gesperrt sind, nach Abschließen des Verarbeitens des m-ten Datensatzes der zweiten Gruppe von Datensätzen, wobei m gleich dem Festschreibungszählerstand ist, und zwar als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten eines m-ten Datensatzes der zweiten Gruppe von Datensätzen abgeschlossen hat, und als Reaktion auf ein Ermitteln, dass die Menge von Datensatz-Sperranforderungen vor einer kürzesten Zeitüberschreitung derselben nach Abschließen des Verarbeitens des m-ten Datensatzes der zweiten Gruppe von Datensätzen verarbeitet werden wird; und Festschreiben aller Datensätze der zweiten Gruppe von Datensätzen, die aufgrund der Ausführung der zweiten Stapelanwendung gesperrt sind, vor dem Abschließen des Verarbeitens des m-ten Datensatzes der zweiten Gruppe von Datensätzen, und zwar als Reaktion auf ein Feststellen, dass die Menge von Datensatz-Sperranforderungen nicht vor der kürzesten Zeitüberschreitung derselben nach Abschließen des Verarbeitens des m-ten Datensatzes der zweiten Gruppe von Datensätzen verarbeitet werden wird.
  8. Verfahren nach Anspruch 1, wobei der Festschreibungszählerstand zwei Werte aufweist: eine Mindestanzahl von Datensätzen, die vor einem Festschreiben zu verarbeiten sind; und eine Höchstanzahl von Datensätzen, die vor dem Festschreiben zu verarbeiten sind, und wobei eine Menge von Datensatz-Sperranforderungen, deren Ausführung aufgrund des Verarbeitens der Gruppe von Datensätzen durch die Stapelanwendung aussteht, nicht verfolgt wird, und zwar als Reaktion auf ein Feststellen, dass die Mindestanzahl von Datensätzen, die vor dem Festschreiben zu verarbeiten sind, gleich der Höchstanzahl von Datensätzen ist, die vor dem Festschreiben zu verarbeiten sind.
  9. Computerprogrammprodukt, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium aufweist, auf dem Programmanweisungen enthalten sind, wobei das durch einen Computer lesbare Speichermedium nicht per se ein flüchtiges Signal ist, wobei die enthaltenen Programmanweisungen durch einen Verarbeitungsschaltkreis ausführbar sind, um den Verarbeitungsschaltkreis zu veranlassen zum: Empfangen, durch den Verarbeitungsschaltkreis, eines Befehls, der ein Ausführen einer Stapelanwendung festlegt, an einer Jobsteuerungs-Verwaltungseinheit eines Datensystems; Empfangen, durch den Verarbeitungsschaltkreis, eines der Stapelanwendung zugehörigen Festschreibungszählerstands an der Jobsteuerungs-Verwaltungseinheit; Initiieren der Stapelanwendung durch den Verarbeitungsschaltkreis, wobei die Stapelanwendung eine Gruppe von Datensätzen verarbeitet; Sperren eines ersten Datensatzes der Gruppe von Datensätzen durch den Verarbeitungsschaltkreis als Reaktion darauf, dass der erste Datensatz durch die Stapelanwendung verarbeitet wird, mit der Maßgabe, dass die Stapelanwendung ein Entsperren des ersten Datensatzes erst dann bewirkt, wenn die Stapelanwendung ein Verarbeiten eines letzten Datensatzes in der Gruppe von Datensätzen abgeschlossen hat; und Festschreiben aller Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, durch den Verarbeitungsschaltkreis und als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten eines n-ten Datensatzes der Gruppe von Datensätzen abgeschlossen hat, wobei n gleich dem Festschreibungszählerstand ist.
  10. Computerprogrammprodukt nach Anspruch 9, wobei die enthaltenen Programmanweisungen darüber hinaus durch den Verarbeitungsschaltkreis ausführbar sind, um den Verarbeitungsschaltkreis zu veranlassen zum: Verfolgen, durch den Verarbeitungsschaltkreis, einer Menge von Datensatz-Sperranforderungen, deren Ausführung aufgrund des Verarbeitens der Gruppe von Datensätzen durch die Stapelanwendung aussteht.
  11. Computerprogrammprodukt nach Anspruch 10, wobei die enthaltenen Programmanweisungen darüber hinaus durch den Verarbeitungsschaltkreis ausführbar sind, um den Verarbeitungsschaltkreis zu veranlassen zum: Festschreiben aller Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, durch den Verarbeitungsschaltkreis, und zwar als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten mindestens einer Mindestanzahl von Datensätzen der Gruppe von Datensätzen abgeschlossen hat, und als Reaktion auf ein Feststellen, dass die Menge von Datensatz-Sperranforderungen einen Schwellenwert überschreitet, wobei die Mindestanzahl von Datensätzen geringer als der Festschreibungszählerstand ist.
  12. Computerprogrammprodukt nach Anspruch 9, wobei die enthaltenen Programmanweisungen darüber hinaus durch den Verarbeitungsschaltkreis ausführbar sind, um den Verarbeitungsschaltkreis zu veranlassen zum: Ermitteln einer Zeitspanne, die von einem Initiieren der Stapelanwendung bis zu einem Festschreiben aller Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, vergeht, durch den Verarbeitungsschaltkreis, und zwar als Reaktion darauf, dass der n-te Datensatz der Gruppe von Datensätzen verarbeitet wird; Empfangen, durch den Verarbeitungsschaltkreis, eines zweiten Befehls, der ein Ausführen einer zweiten Stapelanwendung festlegt, an der Jobsteuerungs-Verwaltungseinheit; Initiieren der zweiten Stapelanwendung durch den Verarbeitungsschaltkreis, wobei die zweite Stapelanwendung eine zweite Gruppe von Datensätzen verarbeitet; Sperren eines oder mehrerer Datensätze der zweiten Gruppe von Datensätzen durch den Verarbeitungsschaltkreis als Reaktion darauf, dass der eine oder die mehreren Datensätze von der zweiten Stapelanwendung verarbeitet werden, mit der Maßgabe, dass die zweite Stapelanwendung ein Entsperren des einen oder der mehreren Datensätze nicht bewirkt, sofern und solange die zweite Stapelanwendung ein Verarbeiten eines letzten Datensatzes in der zweiten Gruppe von Datensätzen nicht abgeschlossen hat; Verfolgen, durch den Verarbeitungsschaltkreis, einer Menge von Datensatz-Sperranforderungen, deren Ausführung aufgrund des Verarbeitens der zweiten Gruppe von Datensätzen durch die Stapelanwendung aussteht; Festschreiben aller Datensätze der zweiten Gruppe von Datensätzen, die aufgrund der Ausführung der zweiten Stapelanwendung gesperrt sind, durch den Verarbeitungsschaltkreis nach Abschließen des Verarbeitens des m-ten Datensatzes der zweiten Gruppe von Datensätzen, wobei m gleich dem Festschreibungszählerstand ist, und zwar als Reaktion darauf, dass die Stapelanwendung das Verarbeiten eines m-ten Datensatzes der zweiten Gruppe von Datensätzen abgeschlossen hat, und als Reaktion auf ein Ermitteln, dass die Menge von Datensatz-Sperranforderungen vor einer kürzesten Zeitüberschreitung derselben nach Abschließen des Verarbeitens des m-ten Datensatzes der zweiten Gruppe von Datensätzen verarbeitet werden wird; und Festschreiben aller Datensätze der zweiten Gruppe von Datensätzen, die aufgrund der Ausführung der zweiten Stapelanwendung gesperrt sind, durch den Verarbeitungsschaltkreis vor dem Abschließen des Verarbeitens des m-ten Datensatzes der zweiten Gruppe von Datensätzen, und zwar als Reaktion auf ein Feststellen, dass die Menge von Datensatz-Sperranforderungen nicht vor der kürzesten Zeitüberschreitung derselben nach Abschließen des Verarbeitens des m-ten Datensatzes der zweiten Gruppe von Datensätzen verarbeitet werden wird.
  13. Computerprogrammprodukt nach Anspruch 12, wobei die Zeitspanne, die von einem Initiieren der Stapelanwendung bis zu einem Festschreiben aller Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, vergeht, nur als Reaktion auf ein Feststellen bestimmt wird, dass sowohl: der n-te Datensatz der Gruppe von Datensätzen verarbeitet wurde, als auch für alle Datensätze in der Gruppe von Datensätzen nach dem Initiieren der Stapelanwendung keine ausstehenden Datensatzsperren entdeckt werden.
  14. Computerprogrammprodukt nach Anspruch 9, wobei der Festschreibungszählerstand zwei Werte aufweist: eine Mindestanzahl von Datensätzen, die vor einem Festschreiben zu verarbeiten sind; und eine Höchstanzahl von Datensätzen, die vor dem Festschreiben zu verarbeiten sind, und wobei eine Menge von Datensatz-Sperranforderungen, deren Ausführung aufgrund des Verarbeitens der Gruppe von Datensätzen durch die Stapelanwendung aussteht, nicht verfolgt wird, und zwar als Reaktion auf ein Feststellen, dass die Mindestanzahl von Datensätzen, die vor dem Festschreiben zu verarbeiten sind, gleich der Höchstanzahl von Datensätzen ist, die vor dem Festschreiben zu verarbeiten sind.
  15. System, aufweisend: einen Verarbeitungsschaltkreis; einen Speicher; und eine in dem Speicher gespeicherte Logik, die bei Ausführung durch den Verarbeitungsschaltkreis den Verarbeitungsschaltkreis veranlasst zum: Empfangen eines Befehls, der ein Ausführen einer Stapelanwendung festlegt, an einer Jobsteuerungs-Verwaltungseinheit eines Datensystems; Empfangen eines der Stapelanwendung zugehörigen Festschreibungszählerstands an der Jobsteuerungs-Verwaltungseinheit; Initiieren der Stapelanwendung, wobei die Stapelanwendung eine Gruppe von Datensätzen verarbeitet; Sperren eines ersten Datensatzes der Gruppe von Datensätzen als Reaktion darauf, dass der erste Datensatz durch die Stapelanwendung verarbeitet wird, mit der Maßgabe, dass die Stapelanwendung ein Entsperren des ersten Datensatzes erst dann bewirkt, wenn die Stapelanwendung ein Verarbeiten eines letzten Datensatzes in der Gruppe von Datensätzen abgeschlossen hat; und Festschreiben aller Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, und zwar als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten eines n-ten Datensatzes der Gruppe von Datensätzen abgeschlossen hat, wobei n gleich dem Festschreibungszählerstand ist.
  16. System nach Anspruch 15, wobei die Logik den Verarbeitungsschaltkreis darüber hinaus veranlasst zum: Verfolgen einer Menge von Datensatz-Sperranforderungen, deren Ausführung aufgrund des Verarbeitens der Gruppe von Datensätzen durch die Stapelanwendung aussteht.
  17. System nach Anspruch 16, wobei die Logik den Verarbeitungsschaltkreis darüber hinaus veranlasst zum: Festschreiben aller Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, und zwar als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten mindestens einer Mindestanzahl von Datensätzen der Gruppe von Datensätzen abgeschlossen hat, und als Reaktion auf ein Feststellen, dass die Menge von Datensatz-Sperranforderungen einen Schwellenwert überschreitet, wobei die Mindestanzahl von Datensätzen geringer als der Festschreibungszählerstand ist, und wobei der Schwellenwert eine Datensatz-Sperranforderung beträgt.
  18. System nach Anspruch 15, wobei die Logik den Verarbeitungsschaltkreis darüber hinaus veranlasst zum: Ermitteln einer Zeitspanne, die von einem Initiieren der Stapelanwendung bis zu einem Festschreiben aller Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, vergeht, als Reaktion auf ein Feststellen, dass sowohl: der n-te Datensatz der Gruppe von Datensätzen verarbeitet wird, als auch nach einem Initiieren der Stapelanwendung keine ausstehenden Datensatzsperren für irgendwelche Datensätze in der Gruppe von Datensätzen entdeckt worden sind; Empfangen eines zweiten Befehls, der ein Ausführen einer zweiten Stapelanwendung festlegt, an der Jobsteuerungs-Verwaltungseinheit; Initiieren der zweiten Stapelanwendung, wobei die zweite Stapelanwendung eine zweite Gruppe von Datensätzen verarbeitet; Sperren eines oder mehrerer Datensätze der zweiten Gruppe von Datensätzen als Reaktion darauf, dass der eine oder die mehreren Datensätze von der zweiten Stapelanwendung verarbeitet werden, mit der Maßgabe, dass die zweite Stapelanwendung ein Entsperren des einen oder der mehreren Datensätze nicht bewirkt, sofern und solange die zweite Stapelanwendung ein Verarbeiten eines letzten Datensatzes in der zweiten Gruppe von Datensätzen nicht abgeschlossen hat; Verfolgen einer Menge von Datensatz-Sperranforderungen, deren Ausführung aufgrund des Verarbeitens der zweiten Gruppe von Datensätzen durch die Stapelanwendung aussteht; Festschreiben aller Datensätze der zweiten Gruppe von Datensätzen, die aufgrund der Ausführung der zweiten Stapelanwendung gesperrt sind, nach Abschließen des Verarbeitens des m-ten Datensatzes der zweiten Gruppe von Datensätzen, wobei m gleich dem Festschreibungszählerstand ist, und zwar als Reaktion darauf, dass die Stapelanwendung das Verarbeiten eines m-ten Datensatzes der zweiten Gruppe von Datensätzen abgeschlossen hat, und als Reaktion auf ein Ermitteln, dass die Menge von Datensatz-Sperranforderungen vor einer kürzesten Zeitüberschreitung derselben nach Abschließen des Verarbeitens des m-ten Datensatzes der zweiten Gruppe von Datensätzen verarbeitet werden wird; und Festschreiben aller Datensätze der zweiten Gruppe von Datensätzen, die aufgrund der Ausführung der zweiten Stapelanwendung gesperrt sind, vor dem Abschließen des Verarbeitens des m-ten Datensatzes der zweiten Gruppe von Datensätzen, und zwar als Reaktion auf ein Feststellen, dass die Menge von Datensatz-Sperranforderungen nicht vor der kürzesten Zeitüberschreitung derselben nach Abschließen des Verarbeitens des m-ten Datensatzes der zweiten Gruppe von Datensätzen verarbeitet werden wird.
  19. System nach Anspruch 18, wobei die Logik den Verarbeitungsschaltkreis darüber hinaus veranlasst zum: Festschreiben aller Datensätze der Gruppe von Datensätzen, die aufgrund der Ausführung der Stapelanwendung gesperrt sind, und zwar als Reaktion darauf, dass die Stapelanwendung ein Verarbeiten mindestens einer Mindestanzahl von Datensätzen der Gruppe von Datensätzen abgeschlossen hat, und als Reaktion auf ein Feststellen, dass die Menge von Datensatz-Sperranforderungen einen ersten Schwellenwert überschreitet, wobei die Mindestanzahl von Datensätzen geringer als der Festschreibungszählerstand ist.
  20. System nach Anspruch 15, wobei der Festschreibungszählerstand zwei Werte aufweist: eine Mindestanzahl von Datensätzen, die vor einem Festschreiben zu verarbeiten sind; und eine Höchstanzahl von Datensätzen, die vor dem Festschreiben zu verarbeiten sind, und wobei eine Menge von Datensatz-Sperranforderungen, deren Ausführung aufgrund des Verarbeitens der Gruppe von Datensätzen durch die Stapelanwendung aussteht, nicht verfolgt wird, und zwar als Reaktion auf ein Feststellen, dass die Mindestanzahl von Datensätzen, die vor dem Festschreiben zu verarbeiten sind, gleich der Höchstanzahl von Datensätzen ist, die vor dem Festschreiben zu verarbeiten sind.
DE112018005359.8T 2017-11-07 2018-11-02 Verhindern eines Beibehaltens von Datensatzsperren durch Transaktionen mit langer Laufzeit Pending DE112018005359T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/806,120 2017-11-07
US15/806,120 US11347712B2 (en) 2017-11-07 2017-11-07 Preventing long running transactions from holding record locks
PCT/IB2018/058622 WO2019092566A1 (en) 2017-11-07 2018-11-02 Preventing long running transactions from holding record locks

Publications (1)

Publication Number Publication Date
DE112018005359T5 true DE112018005359T5 (de) 2020-06-18

Family

ID=66327258

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018005359.8T Pending DE112018005359T5 (de) 2017-11-07 2018-11-02 Verhindern eines Beibehaltens von Datensatzsperren durch Transaktionen mit langer Laufzeit

Country Status (6)

Country Link
US (1) US11347712B2 (de)
JP (1) JP7064181B2 (de)
CN (1) CN111263930B (de)
DE (1) DE112018005359T5 (de)
GB (1) GB2581922B (de)
WO (1) WO2019092566A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11347712B2 (en) 2017-11-07 2022-05-31 International Business Machines Corporation Preventing long running transactions from holding record locks
US11481362B2 (en) * 2017-11-13 2022-10-25 Cisco Technology, Inc. Using persistent memory to enable restartability of bulk load transactions in cloud databases
US11768741B2 (en) * 2021-07-30 2023-09-26 International Business Machines Corporation Replicating changes written by a transactional virtual storage access method

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0546452A (ja) 1991-08-07 1993-02-26 Nec Corp コミツトメント制御システム
US5682537A (en) 1995-08-31 1997-10-28 Unisys Corporation Object lock management system with improved local lock management and global deadlock detection in a parallel data processing system
JPH10143410A (ja) 1996-11-12 1998-05-29 Meidensha Corp データベース管理システムのトランザクション制御方法
US6430622B1 (en) 1999-09-22 2002-08-06 International Business Machines Corporation Methods, systems and computer program products for automated movement of IP addresses within a cluster
KR100318566B1 (ko) 1999-10-19 2001-12-28 서호석 화이트보드상에서 명령순서를 이용한 객체에 대한 잠금 장치 및 그 방법
KR100379949B1 (ko) * 2000-11-30 2003-04-16 한국과학기술원 상승불가능 로크 개념에 기반한 적응형 로크 상승방법
US6745209B2 (en) 2001-08-15 2004-06-01 Iti, Inc. Synchronization of plural databases in a database replication system
US6965961B1 (en) 2002-03-01 2005-11-15 University Of Rochester Queue-based spin lock with timeout
US6950913B2 (en) 2002-11-08 2005-09-27 Newisys, Inc. Methods and apparatus for multiple cluster locking
US7849464B2 (en) 2003-02-28 2010-12-07 Oracle International Corporation Protection against interleaving transactions using a transaction manager
US7337290B2 (en) * 2003-04-03 2008-02-26 Oracle International Corporation Deadlock resolution through lock requeing
US7444546B2 (en) 2003-04-17 2008-10-28 Arm Limited On-board diagnostic circuit for an integrated circuit
US7707194B2 (en) 2004-06-08 2010-04-27 Sap Ag Interface to lock a database row through a logical locking interface
US7493350B2 (en) 2004-10-25 2009-02-17 International Business Machines Corporation Entity based configurable data management system and method
US7426653B2 (en) 2005-04-13 2008-09-16 Progress Software Corporation Fault tolerant distributed lock management
GB0623237D0 (en) 2006-11-22 2007-01-03 Ibm Issuing syncpoints during execution of a batch application
CN101256509B (zh) 2008-04-07 2010-09-01 中兴通讯股份有限公司 一种锁机制的加锁方法、解锁方法和实现方法
US7962615B1 (en) 2010-01-07 2011-06-14 International Business Machines Corporation Multi-system deadlock reduction
US8627000B2 (en) * 2010-02-08 2014-01-07 Microsoft Corporation Virtual disk manipulation operations
WO2012000997A1 (en) * 2010-07-02 2012-01-05 International Business Machines Corporation An apparatus for processing a batched unit of work
US8689219B2 (en) * 2011-05-06 2014-04-01 International Business Machines Corporation Systems and method for dynamically throttling transactional workloads
US20130160022A1 (en) * 2011-12-19 2013-06-20 International Business Machines Corporation Transaction manager for negotiating large transactions
US9250976B2 (en) 2012-10-19 2016-02-02 International Business Machines Corporation Tiered locking of resources
US9164793B2 (en) 2012-12-21 2015-10-20 Microsoft Technology Licensing, Llc Prioritized lock requests to reduce blocking
US9400677B2 (en) 2013-01-02 2016-07-26 Apple Inc. Adaptive handling of priority inversions using transactions
US9336258B2 (en) * 2013-10-25 2016-05-10 International Business Machines Corporation Reducing database locking contention using multi-version data record concurrency control
GB2521197A (en) * 2013-12-13 2015-06-17 Ibm Incremental and collocated redistribution for expansion of an online shared nothing database
US9613078B2 (en) * 2014-06-26 2017-04-04 Amazon Technologies, Inc. Multi-database log with multi-item transaction support
AU2015279787B2 (en) 2014-06-26 2018-11-15 Amazon Technologies, Inc. Multi-database log with multi-item transaction support
KR102132805B1 (ko) * 2014-09-25 2020-07-13 인텔 코포레이션 커널 모듈을 위한 멀티코어 메모리 데이터 레코더
US20170269974A1 (en) * 2014-11-26 2017-09-21 Hewlett Packard Enterprise Development Lp Speculative execution of a stream of changes
US10133771B2 (en) * 2015-05-13 2018-11-20 International Business Machines Corporation Opportunistic wait-triggered elastic commit
US10409800B2 (en) 2015-08-03 2019-09-10 Sap Se Priority queue for exclusive locks
US9940269B2 (en) 2016-01-22 2018-04-10 International Business Machines Corporation Conditionally releasing locks in response to requests
US11347712B2 (en) 2017-11-07 2022-05-31 International Business Machines Corporation Preventing long running transactions from holding record locks

Also Published As

Publication number Publication date
US20190138624A1 (en) 2019-05-09
JP2021501936A (ja) 2021-01-21
CN111263930B (zh) 2023-09-29
CN111263930A (zh) 2020-06-09
JP7064181B2 (ja) 2022-05-10
WO2019092566A1 (en) 2019-05-16
US11347712B2 (en) 2022-05-31
GB2581922A (en) 2020-09-02
GB202007510D0 (en) 2020-07-01
GB2581922B (en) 2022-04-06

Similar Documents

Publication Publication Date Title
DE112012003496T5 (de) Schnelles Bereitstellen von virtuellen Maschinen auf der Grundlage von mehrdimensionalen Benutzeranforderungsmustern in einer Cloud
DE112016003120T5 (de) Umleiten einer Kopie beim Schreiben
DE102016119298B4 (de) Zeitpunktkopieren mit klonen von ketten
DE112016005477T5 (de) System zum parallelen puffern und vorverarbeiten von datenströmen auf grundlage eines kontextes auf mehreren ebenen in fahrzeugdomänen
DE112011100819T5 (de) Speicherplatzreservierung in einem Deduplizierungssystem
DE112010003610T5 (de) Vorabfüllen eines Cachespeichers bei Threadmigration
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE102013204186A1 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE112018005359T5 (de) Verhindern eines Beibehaltens von Datensatzsperren durch Transaktionen mit langer Laufzeit
DE112013000650T5 (de) Datenzwischenspeicherungsbereich
DE112018003133T5 (de) Zwischenspeicherverwaltung
DE112018000456T5 (de) Verwalten von umfangreichen Zuordnungsgruppen unter Verwendung von optimierten Bitmap-Darstellungen
DE202014010885U1 (de) Beschleunigung basierend auf zwischengespeicherte Flüsse
DE102013200030B4 (de) Hash-basiertes verwalten von speicher-ids
DE112018000900T5 (de) Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem
DE112021001408T5 (de) Verwendung kohärent verbundener schnittstellen in einem netzwerkstapelrahmen
DE112020003929T5 (de) Verwaltung von metadaten von virtuellen speichern
DE112018002955T5 (de) Kognitive datei- und objektverwaltung für verteilte speicherumgebungen
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE112017005022T5 (de) Umladen der Bandverarbeitung auf Objektspeicher
DE112019000402T5 (de) Chronologisch geordnetes out-of-place-aktualisierungs-schlüssel-wert-speichersystem
DE112016003598T5 (de) Gleichzeitige Massenverarbeitung von baumbasierten Datenstrukturen
DE112018004138T5 (de) Asynchrone aktualisierung von metadatenspuren in reaktion auf einen mittels einer e/a-operation über eine busschnittstelle erzeugten cachetreffer
DE112016000776T5 (de) Effiziente Durchführung von Einfüge- und Punktabfrage-Operationen in einem Spaltenspeicher

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence