Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Mehrere Auftragnehmer

Die Situation für einen Auftraggeber ist bei einer Kommunikation mit mehr als einem Auftragnehmer im Wesentlichen unabhängig von der konkreten Anzahl von Auftragnehmern. Deshalb genügt es bei Betrachtung dieser Konstellation von einem Auftraggeber (A) und zwei Auftragnehmern (B und C) auszugehen.

Aus Sicht der Auftragnehmer ist dieser Fall identisch zu den im vorigen Abschnitt geschilderten Situationen, da die Auftragnehmer als einzigen Kommunikationspartner den Auftraggeber kennen.

Aber auch für den Auftraggeber bringt dieses Szenario keine wesentlichen neuen Aspekte. Allerdings erhöht sich für ihn die Anzahl der möglichen Kombinationen.

Mit jedem einzelnen Auftragnehmer kann der Auftraggeber ebenso kommunizieren wie im vorigen Abschnitt dargestellt. Hinzu kommt, dass er in einem Verarbeitungsschritt entweder nur mit einem oder aber mit mehreren Auftragnehmern kommunizieren kann. Der Folge-Teilprogrammlauf im Auftraggeber-Vorgang wird immer erst dann gestartet, wenn von allen Auftragnehmern, an die im letzten Verarbeitungsschritt Nachrichten gesendet wurden, Antworten eingetroffen sind.

Bezüglich Transaktions- und Dialogende kann der Auftraggeber entweder mit Hilfe des Aufrufs CTRL gezielt einzelne Auftragnehmer dazu veranlassen, Transaktions- bzw. Dialogende anzufordern, oder aber er kann alle Auftragnehmer gleichzeitig von dieser Situation unterrichten, indem er einen entsprechenden PEND-Aufruf verwendet.

Da sich also die Situation nicht wesentlich geändert hat gegenüber der Kommunikation mit einem Auftragnehmer soll hier ein Beispiel genügen. Aus Platzgründen wird dabei auf die Darstellung des Protokollflusses verzichtet.

Beispiel 11: Mehrere Auftragnehmer

In dem Beispiel kommuniziert Auftraggeber A mit den Auftragnehmern B und C. Der Dialog mit C soll abgeschlossen werden, aber C soll noch eine letzte Nachricht an A senden. Dazu verwendet A einen MPUT sowie einen CTRL PE an Partner C. Mit Partner B soll der Dialog noch nicht beendet werden, daher wird ihm nur eine Nachricht übermittelt und der Programmlauf wird von A mit PEND KP abgeschlossen, um die Transaktion offen zu halten.

C erkennt an den Anzeigen "F,Y", dass er an A noch eine Nachricht senden muss und dass die Transaktion mit PEND FI zu beenden ist. Für B bleiben Transaktion und Dialog noch offen, angezeigt durch "O,Y".

Im zweiten Teilprogrammlauf fordert A mit einem CTRL PR nun auch B auf, die Transaktion zu beenden. A möchte jedoch noch in der aktuellen Transaktion die Antwort von B erhalten und beendet den Programmlauf deswegen mit PEND KP.
B erhält die Transaktionsendeanforderung angezeigt durch die Stati "R,Y". B sendet eine Antwort an A und beendet für sich die Transaktion mit PEND RE.

Nachdem nun sowohl C als auch B Transaktionsende angefordert haben, kann A die verteilte Transaktion endgültig beenden. Mit dem Transaktionsende wird gleichzeitig der Dialog mit C beendet, der Dialog mit B hingegen bleibt bestehen.