Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Komplexere Dialogbäume

Abschließend sollen Fälle untersucht werden, in denen ein Vorgang (B) sowohl mit einem Auftraggeber (A) als auch mit einem Auftragnehmer (C) über das OSI TP-Protokoll mit Chained Transactions kommuniziert. Gegenüber den zuvor betrachteten Fällen ergibt sich hier nur für den Zwischenknoten B eine neue Situation. Er besitzt gleichzeitig einen Auftraggeber A und einen Auftragnehmer C.

Bei Nutzung des OSI TP-Protokolls kann ein Zwischenknoten nicht frei darüber entscheiden, wann ein Transaktions- oder Dialogende erfolgen soll, auch nicht auf dem Dialog mit seinem Auftragnehmer. Der Zwischenknoten B kann seinen Auftragnehmer C erst auffordern, die Transaktion oder den Vorgang zu beenden, wenn ihn sein Auftraggeber zur Transaktionsbeendigung aufgefordert hat.

Im Folgenden werden Beispiele für einzelne charakteristische Situationen gegeben. Es bestehen zahlreiche weitere Möglichkeiten, die sich aus den in den vorigen Abschnitten angegebenen Fällen zusammensetzen lassen.

Datentransferphase

Die Datentransferphase ist dadurch gekennzeichnet, dass kein Partner CTRL-Aufrufe verwendet und dass die Programmläufe ausschließlich mit PEND KP beendet werden.

Beispiel 12: Datentransferphase bei mehrstufigen Transaktionsbäumen

B muss nicht immer abwechselnd mit A und mit C kommunizieren, so wie dies in diesem Beispiel dargestellt ist. Es ist auch möglich, dass B mehrere Dialog-Schritte hintereinander mit C abwickelt, oder aber für einige Zeit nur mit A kommuniziert und C erst später wieder an der Kommunikation beteiligt.

Wichtig ist jedoch, dass B nicht gleichzeitig Nachrichten an A und an C schicken darf. Ein Zwischenknoten darf das Senderecht entweder an seinen Auftraggeber oder aber an einen oder mehrere Auftragnehmer abgeben, aber nicht gleichzeitig an Auftraggeber und Auftragnehmer.

Ein Vorgang darf das Senderecht zum Transaktionsende auf höchstens einem Dialog abgeben.

Transaktionsende

Nachdem B von A die Aufforderung zum Transaktionsende erhalten hat, bleiben B drei Möglichkeiten:

  • B kann C eine Nachricht senden und C gleichzeitig auffordern, die Transaktion zu beenden (vgl. Beispiele 12,14, 15).

  • B kann zunächst die Datentransferphase gegenüber C fortsetzen und C erst in einem späteren Verarbeitungsschritt auffordern, die Transaktion zu beenden (vgl. Beispiel 13).

  • B kann darauf verzichten in der laufenden Transaktion noch weiter mit C zu kommunizieren und sofort selbst Transaktionsende anfordern (vgl. Beispiel 16).

Das Senderecht zum Transaktionsende kann bei A, B oder C liegen.

Beispiel 13: Senderecht zum Transaktionsende liegt bei A

B kann in obigem Beispiel das Senderecht zum Transaktionsende nicht an C abgeben, da A das Senderecht zum Transaktionsende nicht an B abgegeben hat.

Beispiel 14: B setzt Dialog mit C zunächst fort - Senderecht zum Transaktionsende liegt bei A

In diesem Beispiel verzichtet B zunächst darauf, C zum Transaktionsende aufzufordern, und setzt stattdessen die Datentransferphase gegenüber C fort. Im Beispiel wird nur noch eine Dialog-Nachricht ausgetauscht, die Datentransferphase könnte jedoch noch weiter fortgesetzt werden. Dabei dürfen B und C jedoch die Programmläufe nur mit PEND KP abschließen. Irgendwann muss B dann C auffordern, die Transaktion zu beenden.

Auch in diesem Beispiel kann B das Senderecht zum Transaktionsende nicht an C abgeben, da A das Senderecht zum Transaktionsende nicht an B abgegeben hat.

Beispiel 15: Das Senderecht zum Transaktionsende liegt bei B


Beispiel 16: Das Senderecht zum Transaktionsende liegt bei C

Beispiel 17: Vor Transaktionsende keine Nachricht an Auftragnehmer

In diesem Beispiel verzichtet B darauf in der laufenden Transaktion noch eine Nachricht an C zu senden und fordert unmittelbar das Transaktionsende an.

Nach dem PEND RE von Knoten B wird A die MPUT-Nachricht zugestellt und an C wird ein PREPARE Protokollelement gesendet, mit dem C aufgefordert wird, das Transaktionsende einzuleiten. C erhält dabei keine Benutzernachricht mehr. Der MGET-Aufruf bei C dient nur dazu den Status des Dialogs mit B zu lesen; dieser Aufruf kann auch entfallen.

Dialogende

Zur Dialog-Beendigung durch den Auftraggeber bieten sich für einen Zwischenknoten dieselben Möglichkeiten wie zur Beendigung einer Transaktion. Diese sind in den beiden nachstehenden Beispielen erläutert.

Beispiel 18: B beendet zuerst den Dialog mit dem Auftragnehmer

Beispiel 19: Gleichzeitiges Dialogende mit Auftragnehmer und Auftraggeber