Ein Kunde einer Bank möchte in einer Zweigstelle einen Geldbetrag abheben. Sein Konto wird jedoch von einer anderen Zweigstelle geführt. Jede Zweigstelle setzt zur Verwaltung ihrer Datenbestände eine eigene UTM-Anwendung ein.
Wenn der Kunde Geld abhebt, dann müssen u.a. die Datenbestände beider UTM-Anwendungen geändert werden, d.h. der Kassenstand in der einen und der Kundenkontostand in der anderen Anwendung. Realisiert wird dieser Geschäftsvorgang mit einer einzigen Dialog-Transaktion, welche auf beide Anwendungen verteilt wird (verteilte Transaktion). Die Buchungen (Kasse und Kundenkonto) werden in lokalen Dialog-Services durchgeführt. Wie diese lokalen Dialog-Services miteinander kommunizieren, wird im folgenden Bild veranschaulicht.
Bild 18: Dialogauftrag mit globaler Transaktionssicherung
Der Service „GIRO“ in der UTM-Anwendung ANW1 fungiert hier als Auftraggeber-Service. Dieser Service adressiert im Dialogteilprogramm TP11 den Auftragnehmer-Service, d.h. den Service „BUCHE“ in der UTM-Anwendung ANW2.
Das Teilprogramm TP11 beendet den Verarbeitungsschritt und hält seine Transaktion offen. Das Teilprogramm TP21 im Service „BUCHE“ erhält die Daten per Dialog-Nachricht. TP21 schickt eine Dialogantwort an den Auftraggeber-Service zurück und fordert anschließend von openUTM Transaktionsende an.
Diese Dialogantwort startet im Service „GIRO“ das Folgeteilprogramm TP12, welches die Buchungsaufgabe beendet und dann ebenfalls Transaktionsende anfordert. openUTM synchronisiert nun die beiden lokalen Sicherungspunkte (= Transaktionsende) und setzt einen gemeinsamen Sicherungspunkt. Die beiden lokalen Transaktionen (in Anwendung ANW1 und Anwendung ANW2) bilden somit eine Sicherungseinheit, eine verteilte Transaktion.
Tritt ein Fehler auf, bevor der gemeinsame Sicherungspunkt gesetzt wurde, dann wird die gesamte Sicherungseinheit, d.h. jede der beiden lokalen Transaktionen, zurückgesetzt.