Der Mustercode 'TCPIP Handshake' verdeutlicht, wie Sie den Dreiwege-Handshake, den der Client erwartet, implementieren können. Der Mustercode veranschaulicht, wie mit diesem Handshake ermöglicht wird, dass der Client die Anforderung abbrechen kann, nachdem die Anforderung gesendet wurde, jedoch bevor der Server mit deren Verarbeitung beginnt.
Der Dreiwege-Handshake zum Senden der Antwortnachricht kann außerdem dazu verwendet werden, eine Ebene transaktionsorientierter Servicequalität einzurichten. Dieser Mustercode kann so erweitert werden, dass der Client ein Rollback für den Service durchführen kann, entweder indem er negative Empfangsbestätigungen oder gar keine Empfangsbestätigung für die Antwortnachricht sendet.
Die aktuelle Serviceschnittstelle, die durch diesen Mustercode aufgerufen wird, ist nicht transaktionsorientiert. Deshalb muss eine neue Serviceschnittstelle konfiguriert werden, die ein Rollback ermöglicht. Mit einer der folgenden Optionen können Sie einen Service konfigurieren, mit dem ein Rollback möglich ist:
Wird der Service beispielsweise als SAP-BAPI implementiert, müssen Sie diese BAPI mittels eines SAPRequest-Knotens aufrufen. Damit wird sicherstellt, dass die BAPI in die Transaktion für den Nachrichtenfluss übernommen wird. Deshalb wird in dem Fall, dass der Client eine negative Empfangsbestätigung sendet, eine Ausnahmebedingung ausgelöst, sodass ein Rollback der Transaktion ausgeführt wird.
Dies wäre beispielsweise zur Erweiterung des Mustercodes 'TCPIP Handshake' denkbar, wenn Sie WebSphere MQ für den Aufruf des Service verwenden, Sie also den untergeordneten Fluss 'invokeMQService' nutzen. Sie können eine dritte Warteschlange hinzufügen, die der WebSphere MQ-Serveranwendung signalisiert, dass eine bestimmte Ausführung dieses Service zurückgesetzt werden soll. Sie können dem untergeordneten Fluss 'sendReply' einen Sendeknoten (Rollback) hinzufügen. Das Zeitlimitterminal des TCPIPServerReceive-Knotens und das Alternativterminal des CheckAckAndMakeConf-Knotens müssen beide mit dem Rollback-Knoten verbunden sein. Der untergeordnete Nachrichtenfluss 'invokeMQService' verbindet den Rollback-Knoten mit einem MQOutput-Knoten, indem ein Transformationsknoten zur Umwandlung der Nachricht in das XML-Format verwendet wird.
Untergeordneter Nachrichtenfluss 'sendReply'
Untergeordneter Nachrichtenflusse 'invokeMQService'
Nachrichtenfluss 'TCPIPMQVeneer'