Die Echtzeit-Synchronisation einer Datei oder Datenbank auf einer Plattform (z.B. einem Mainframe z/OS oder z/VSE) mit einer Datenbank auf einer anderen Plattform (z. B. Linux, Unix oder Windows) oder zwischen 2 Datenbanken auf vergleichbaren Plattformen ist immer diesem einen wichtigen Prinzip untergeordnet:
Die Transaktion der Änderung muss logisch zusammenhängend und fehlerfrei bis zum Abschluss (COMMIT) durchgeführt sein und sich in der Zieldatenbank wiederfinden.
In der IT wird hierzu der Begriff Referentielle Integrität (RI) verwendet. Bei relationalen Datenbanken spricht man über RI, wenn die Konsistenz und die Integrität der Daten sichergestellt werden müssen.
Detaillierte Abhandlungen über die Bedeutung von RI sind im Internet reichlich zu finden. Hier ( 1, 2, 3) finden Sie einige Referenzen  .
Transaktionssicherheit (TS) ist ein weiterer Begriff, der von Bedeutung ist.
Hierbei „wird in der Informatik eine Folge von Programmschritten bezeichnet, die als eine logische Einheit betrachtet werden, weil sie den Datenbestand nach fehlerfreier und vollständiger Ausführung in einem konsistenten Zustand hinterlassen.“(siehe hier)
Bei der Entwicklung von tcVISION wurde von Anfang an besonderes Augenmerk auf die referentielle Integrität und eine transaktionsgebundene Übertragung von Daten Wert gelegt.
Hierzu gehört neben der Sicherung von RI und TS auch das Wiederaufsetzen von Replikationen bei Störungen im System. Dazu gehören etwa Übertragungsstörungen im Netzwerk oder Datenbankfehler.
Während einer Echtzeit Replikation zwischen 2 oder mehreren Datenbanken sollte eine sog. LUW-basierte Verarbeitung durchgeführt werden, insbesondere um auch eine zeitlich richtige Reihenfolge der Transaktionen zu gewährleisten. Hierbei werden nur abgeschlossene logische Arbeitseinheiten (Logical Unit of Work) verarbeitet. Diese Verarbeitungsform ist der automatische Standard in der tcVISION Lösung.
Es gibt jedoch Situationen, in denen LUW-basierte Verarbeitung nicht notwendig oder unerwünscht ist.
Bei der Erfassung der Änderungsdaten auf der Quelldatenbank (z.B. Db2, IMS, Adabas, IDMS, Datacom oder einer der unterstützten Datenbanken) und einem Streaming der Änderungen in eine Big Data / Hadoop Umgebung kann referentielle Integrität für das Zielsystem vom Anwender ausgeschaltet werden.
Lesen Sie hierzu auch den BLOG-Eintrag Auswirkungen des Datenstreaming auf die traditionelle Mainframe IT.
Neben der Streaming Ausgabe gibt es auch kundenspezifische Anwendungen bei denen eine aktive RI für das Zielsystem nicht erwünscht oder notwendig ist.
Ein Beispiel für eine solche kundenspezifische Anwendung ist ein Verfahren, bei dem auf dem z/OS Mainframe eine extrem hohe Anzahl von INSERTs in eine Datenbank eingespielt werden (über 90 Millionen Sätze pro Stunde). Diese extrem hohe Zahl wird von tcVISION in Echtzeit gecaptured und im Zielsystem über parallele Instanzen in die Zieldatenbank eingepflegt. Hierzu werden auf dem Zielsystem die Daten vom Mainframe von einer Instanz (tcVISION Prozess) entgegengenommen und mit aktivem LUW-Manager mit einer sog. Slot-Kennung versehen und in eine Ausgabe Pipe geschrieben.
Pipes sind Speicherziele, die interne Daten eines tcVISION-Datenprozesses aufnehmen und gleichzeitig nachfolgenden tcVISION-Prozessen als Eingabe zur Verfügung stellen.
Diese Pipe kann nun von mehreren Verarbeitungsscripten parallel ausgelesen werden, wobei von jedem Verarbeitungsscript nur bestimmte LUW (Logical Units of Work) in die Zieldatenbank eingespielt werden. Dem Verarbeitungsscript wird mitgegeben, welche Slot-Kennungen es verarbeiten soll. Alle anderen Kennungen werden überlesen, da sie von anderen Scripten verarbeitet werden.
Es ist jedoch wichtig zu wissen, dass die Anwendung dieses Verfahrens die referentielle Integrität der Daten in der Ziel-Datenbank nicht mehr sicher stellen kann. Alle LUWs werden in sich korrekt eingespielt, aber die zeitliche Reihenfolge des Einspielens der LUWs unter sich ist hierbei nicht mehr garantiert. In diesem Beispiel werden ausschliesslich neue Sätze (INSERTs) verarbeitet.
Dieses vorab beschriebene Verfahren ist auch für sogenannte BULK LOAD Scripte anwendbar. Für das Laden einer Zieldatenbank (initial oder periodisch) können die Daten auch über mehrere parallele Instanzen eingepflegt werden. Ein denkbares Verfahren wäre die Verarbeitung nach Schlüsselbereichen, wobei jedem Schlüsselbereich eine bestimmte Slot-Kennung zugewiesen wird und die Einpflege-Scripte die Sätze auf Grund dieser Slot-Kennung verarbeiten.
Es ist natürlich möglich, beide Verfahren (mit und ohne Beachtung der referentiellen Integrität - RI) gemeinsam zu nutzen. Änderungssätze ohne die spezielle Slot-Kennung werden von den Prozessen, bei denen RI nicht aktiv ist, überlesen und Prozesse mit RI verarbeiten die Sätze in der richtigen chronologischen Reihenfolge.
tcVISION ist eine extrem flexible Lösung für alle Art von Anforderungen und Anwendungen, die Daten von einen IBM Mainframe mit Systemen und Datenbanken der offenen Welt oder zwischen Systemen und Datenbanken der offenen Welt untereinander austauschen. Ziel ist es immer, die Datenintegrität (Referentielle Integrität und Transaktionssicherheit) zu gewährleisten. Wie dieser Blog jedoch zeigt, gibt es auch Anforderungen, die eine andere Vorgehensweise aufzeigen. Auch hier bietet tcVISION die richtigen Lösungen.
Die Integration von tcVISION in unterschiedlichen Datenbanksysteme, Cloud Systeme sowie Big Data wird auch an anderer Stelle in diesem Blog behandelt. Verschiedene Videos stehen auf der Homepage der B.O.S. Software GmbH bzw. auf YouTube zur Verfügung, welche die Einbindung von tcVISION in diese Welten zum Thema haben.
Wie Sie die Realtime-Integration Ihrer Unternehmensdaten mit der Lösung tcVISION effizient, mit niedriger Latenz, ohne Programmieraufwand und in Echtzeit meistern können, zeigen wir Ihnen gerne.
Die Nutzung der vielfältigen tcVISION Technologien für die Integration Ihrer Datenquellen garantiert eine erhebliche Beschleunigung für die Verwirklichung Ihrer Projekte.