Kap. 2.3 Infrastruktur durch Transaction Processing Monitore (“TP-Heavy”) Workshop • Vertiefung der X/Open DTP Protokolle • Programmierparadigmen • Verteilte Transaktionsverarbeitung (i. Vgl. zu Oracle) • Optimierungen für 2PC • Funktionalität und Aufbau des TP-Monitors TUXEDO • Komponenten • Systemarchitektur • Einführung in die Übungsaufgabe OHO-Workshop: TP Monitor - TUXEDO T. Grabs Kap 2.3 - 1 Verteilte Transaktionsverarbeitung mit X/Open DTP • Verteilte Überweisung Client Laufzeitumgebung des TP Monitor Transfer ATM TP Monitor Service Debit Credit Bern DB Zürich DB OHO-Workshop: TP Monitor - TUXEDO DB T. Grabs DB Kap 2.3 - 2 X/Open’s Programmierparadigmen • Service-Orientierung • Bereitstellung von Funktionalität über C/COBOL-Funktionen • Bekanntgabe dieser Funktionen an den TP Mon. (Advertising) • sog. Request-/Response-Programmierung • Konversations-Orientierung • Eröffnung eines Kanals • Senden von Daten und Ergebnissen über diesen Kanal • Typed Buffers • Strukturen zum maschinenunabh. Datenaustausch OHO-Workshop: TP Monitor - TUXEDO T. Grabs Kap 2.3 - 3 Programmier-Unterstützung durch X/Open • Kommunikations-Puffer • tpalloc - Speicher anfordern • tpfree - Speicher freigeben • tprealloc - neue Speichergrösse • Erstellung von Services • tpservice - Template für einen Service • tpreturn - Verlassen einer Service-Routine OHO-Workshop: TP Monitor - TUXEDO • Service-Aufruf • tpacall - asynchroner Aufruf • tpcall - synchroner Aufruf • tpcancel - Antwort verwerfen • tpgetrply - Antwort zu asynchronem Aufruf holen • Konversations-Routinen • tpconnect - Konversation eröffnen • tpdiscon - Konv. beenden • tprecv - Nachricht empfangen • tpsend - Nachricht senden T. Grabs Kap 2.3 - 4 Programmier- vs. Systemsicht • Programmiersicht: Code, den der Applikationsentwickler schreiben muss • Aufgaben: • DB-Zugriff implementieren • Transaktionsgrenzen setzen • Aufruf anderer TP-MonitorServices durchführen • Kommunikationspufferverwaltung (!) OHO-Workshop: TP Monitor - TUXEDO • Systemsicht: Boilerplate Code, der vom System automatisch ausgeführt wird und in TP-Monitor-Bibliotheken implementiert ist • Aufgaben • Verwaltung des Transaktionsbaumes gegenüber DBMSs und weiteren TP-MonitorInstanzen • Zwei-Phasen-Commit • Lastbalanzierung • Datenabhängiges Routing • ... T. Grabs Kap 2.3 - 5 Programmierer-Sicht Service-Orientierung Aufrufe in den Applikationsprogrammen tpcall(.) tx_begin() Client Transfer ATM tx_commit() tpcall(char*) Debit tpcall(char*) tpreturn(.) EXEC SQL AT DB_NAME Bern Credit EXEC SQL AT DB_NAME DBMS OHO-Workshop: TP Monitor - TUXEDO tpreturn(.) Zürich DBMS T. Grabs Kap 2.3 - 6 Systemsicht: Transaktionsbaum 1 Transfer tpcall TM ax_add_branch ax_add_branch CRM XID1 TM ax_start XID2 CRM Debit TM Bern ax_start CRM Zürich Credit DBMS OHO-Workshop: TP Monitor - TUXEDO ATM DBMS T. Grabs Kap 2.3 - 7 Systemsicht: Transaktionsbaum 2 Transfer tx_commit TM ATM xa_prepare xa_prepare CRM xa_prepare(XID1) TM Debit ax_prep. xa_prepare(XID2) CRM xa_prepare TM Bern Credit DBMS OHO-Workshop: TP Monitor - TUXEDO ax_prep. xa_prepare CRM Zürich DBMS T. Grabs Kap 2.3 - 8 Systemsicht: Transaktionsbaum 3 Transfer TPEABORT TM ATM XA_OK XA_RB CRM XA_RB XA_OK TM Debit TM_OK CRM XA_OK TM Bern Credit DBMS OHO-Workshop: TP Monitor - TUXEDO TM_RB CRM XA_RBINTEGRITY Zürich DBMS T. Grabs Kap 2.3 - 9 Optimierungen im 2PC • Zielsetzungen: • Verminderung der Anzahl benötigter Nachrichten • Verringerung der I/O auf dem Log • Angewandte Techniken: • presumed abort: kein Log-Eintrag - TA-Branch wurde aborted • group commit: akkumuliertes Schreiben von Log-Einträgen (Log-Dämon wird alle 50msec aktiviert, TA solange verzögert) • transfer-of-commit: prepare, und mit neuem TA-Branch wird dortiger TM 2PC-Koordinator • lazy commit: asynch. Commit-Logging - keine Durability • last-resource-manager-option: bei entarteten TA-Bäumen transfer-of-commit anwenden, so dass letzter DB als 2PCKoordinator OHO-Workshop: TP Monitor - TUXEDO T. Grabs Kap 2.3 - 10 TP Monitor TUXEDO • Hersteller: Bea Systems http://www.beasys.com • System-Komponenten: • TUXEDO System/T • Administrationsschnittstelle • Applikationsentwicklung • Implementierung von TM, XA, XA+, XATMI • TUXEDO System/D: SQL-DBMS (Resource Manager) zu System/T • TUXEDO Workstation: Client-Anbindung von entfernten Rechnern • TUXEDO /Q: Transaktionelle Message-Queues • TUXEDO /TxRPC: Implementierung von X/Open TxRPC • TUXEDO /Domain: Interoperabilität mit anderen TUXEDO Instanzen oder anderen TP Monitoren über OSI-TP OHO-Workshop: TP Monitor - TUXEDO T. Grabs Kap 2.3 - 11 TUXEDO: System-Architektur TUXEDO Kernel: BBL Client call X A T M I queue push/get CREDIT put queue push/get put DEBIT Transaction Manager OHO-Workshop: TP Monitor - TUXEDO T. Grabs LOG Kap 2.3 - 12 TUXEDO: Mehrrechner-Architektur TUXEDO Kernel: BBL queue X A T M I queue TUXEDO Kernel: BBL CREDIT DEBIT queue X A T M I queue CREDIT DEBIT remote call put remote call stub BRIDGE BRIDGE Message Transmission OHO-Workshop: TP Monitor - TUXEDO T. Grabs Kap 2.3 - 13 TUXEDO: Load-Balancing • Many Services - Single Queue: sobald Service fertig, neuen Auftrag aus der Queue CREDIT CREDIT OHO-Workshop: TP Monitor - TUXEDO • Many Services - Many Queues: Service-“Farm“ ggf. auf mehreren Rechnern, Zuteilung nach Workload-Heuristik X A T M I T. Grabs CREDIT CREDIT Kap 2.3 - 14 Die TP-Monitor BRIDGE • Herstellerspezifische Lösungen • meist als eigenständiger Betriebssystem-Prozess • Aufgabe an der Daten-Quelle: • Entgegennahme von Aufträgen für entfernte Rechner • Entgegennahme von Daten für entfernte Rechner • ggf. Übersetzung der Daten in maschinenunabhängige Repräsentation (sog. Marshalling) • Aufgaben Daten-Senke: gleicher Ablauf in umgekehrter Reihenfolge • sowie: Positionierung des Auftrags in der richtigen Queue • Ergebnisse werden auf dem gleichen Weg zurückgesandt • Siehe auch Object Request Broker-Konzept im CORBA-Teil OHO-Workshop: TP Monitor - TUXEDO T. Grabs Kap 2.3 - 15 Übungsaufgabe • Zielsetzung: Programmierung einer verteilten Überweisungstransaktion mit TUXEDO • Schritte: • Hallo-Welt-Service mit TUXEDO • Verteilte Verarbeitung einer Überweisung • Sicherstellung der ACID-Eigenschaften • Lerneffekte • Anwendung der TX- und ATMI-Standards sowie von FML-Buffers • Arbeit mit komplexem System: OS, RDBMS, TP Mon OHO-Workshop: TP Monitor - TUXEDO T. Grabs Kap 2.3 - 16 Zielsystem Client Client Transfer Transfer Deposit Withdraw Bern Deposit Zürich STUD2 STUD5 OHO-Workshop: TP Monitor - TUXEDO Withdraw T. Grabs Kap 2.3 - 17 TUXEDO FML-Buffers • TUXEDO-spezifische Erweiterung der X/Open Typed Buffers • Datenstruktur zum Austausch zwischen Rechnern • tpcall(char* svc, char* idata…); • Vorteil: • Information durch Feldbezeichner-Wert-Paare (<fname>,<value>) z.B.: [(VORNAME,”Torsten”), (NACHNAME,”Grabs”)] • Effizienter Transfer von Puffern “beliebiger” Grösse • Inhaltsbasiertes Routing (abhängig vom Pufferinhalt) • Programmierschnittstelle: • tpalloc: Anfordern dynmischen Speichers unter TP Mon.Kontrolle • Finit: Initialisierung des Puffers • Fchgs: Einfügen/Aendern von Feldern im Puffer OHO-Workshop: TP Monitor - TUXEDO T. Grabs Kap 2.3 - 18 Ausblick: Transaktionelle Message Queues für die Bankapplikation Client ATM Queue Queue Transfer Queue Withdraw Bern Zürich Credit DB DB OHO-Workshop: TP Monitor - TUXEDO T. Grabs Kap 2.3 - 19 Zielsystem tx_begin() Client Transfer ATM tx_commit() tpcall(char*) tpcall(char*) Debit Credit EXEC SQL AT DB_NAME EXEC SQL AT DB_NAME Bern Zürich Oracle OHO-Workshop: TP Monitor - TUXEDO Oracle T. Grabs Kap 2.3 - 20