Verarbeiten von Zweiphasencommit-Transaktionen
In diesem Thema wird erläutert, was mit der Transaktion mit zwei Phasencommit (2PC) geschieht, während sie von Microsoft Distributed Transaction Coordinator (DTC) in COM+, Transaction Integrator (TI) und CICS verarbeitet wird.
Der Prozess beginnt, wenn die Clientanwendung eine Methode für die .NET-Anwendung aufruft, die das TI-Objekt enthält. .NET weist dann einen Thread für die Transaktion aus dem Benutzerthreadpool zu, beginnt die Transaktion und übergibt die Eingabeparameter der Methode an die TI-Laufzeitumgebung. Dieser Thread wird für die Transaktion blockiert, bis die Antwort vom CICS-Host zurückgegeben wird. Dies ist die Einheit der Arbeitszeit, die hauptsächlich aus der Zeit besteht, die die CICS-Anwendung benötigt, um die Geschäftslogik der Transaktionen zu verarbeiten und nach Bedarf Zugriff auf die Datenbank zu erhalten (vorausgesetzt, dass die Übertragungsgeschwindigkeiten mit der LAN-Geschwindigkeit Schritt halten). Wenn die Ausgabeparameter der Methode vom Host zurück an .NET gesendet werden, wird die Commitnachricht an DTC gesendet.
DTC aktiviert die Vorbereitungsphase für die Transaktionen, wodurch TI einen Thread aus dem 2PC-Threadpool ordnet und blockiert bleibt, bis die Anforderungscommitmeldung vom Host eingeht. Nachdem alle Forks der Transaktionen vorbereitet wurden, sendet DTC eine commit complete-Nachricht an .NET, sendet dann die Ausgabeparameter der Methode und gibt Werte zurück an die aufrufende Clientanwendung und gibt den Thread frei.
Dadurch wird die Transaktion für den Benutzer abgeschlossen, aber die Transaktionsmonitore (DTC und CICS) müssen weiterhin die zweite Phase des Commits abschließen, und auch hier wird für jede Transaktion, die die zweite Phase des Commits ausführt, ein Thread aus dem TI 2PC-Threadpool zugewiesen.
Weitere Informationen
Transaktionsprogramme, die über einen längeren Zeitraum hinweg ausgeführt werden
Handbuch zur Leistung von Transaction Integrator