Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Nachricht senden und UTM-Service starten

&pagelevel(4)&pagelevel

Im folgenden Bild sind die Abläufe im Client-Programm dargestellt, durch die der Client den Service in der UTM-Anwendung startet und eine Nachricht an den Service übergibt.

Bild 7: Client startet einen Service in der UTM-Partner-Anwendung

Erläuterungen zum Bild

  1. Nach dem Allocate-Aufruf ist die Conversation „eingerichtet“ und eine Verbindung zur UTM-Anwendung hergestellt. Der UTM-Service ist jedoch noch nicht gestartet. UPIC verwaltet jetzt einen internen Puffer, in den die Daten der Conversation geschrieben werden.

  2. Nach dem Allocate-Aufruf befindet sich der Client im Zustand „Send“; er hat das Senderecht auf der Conversation und muss jetzt eine Nachricht für den adressierten Service (TP_Name) an UPIC übergeben. Die Nachricht muss die Eingabedaten enthalten, die der Service bearbeiten soll. Dazu stehen dem Client folgende Send-Aufrufe zur Verfügung:

    Send_Data()
    Send_Mapped_Data()

    Nach dem Allocate-Aufruf dürfen Sie mit Set_...-Aufrufen noch die Conversation Characteristic receive_type und die Werte für den Receive-Timer und die Funktionstaste ändern.

    Send_Mapped_Data() unterscheidet sich vom Send_Data-Aufruf dadurch, dass neben der Nachricht auch Formatnamen an die UTM-Anwendung übertragen werden. Entsprechend kann der Client mit Receive_Mapped_Data() Daten zusammen mit den Formatnamen vom Service empfangen. Siehe dazu Abschnitt „Formate senden und empfangen“.

    Durch den Send-Aufruf werden die Daten von UPIC in einen lokalen Sendepuffer geschrieben, der dem UTM-Service am lokalen System eindeutig zugeordnet ist. Der Client kann zur Übergabe der Nachricht mehrere Send-Aufrufe absetzen.

    Benötigt der UTM-Service zur Bearbeitung der Anforderung keine Daten, dann muss der Client eine leere Nachricht an die UTM-Anwendung senden.

  3. Nachdem der Client die Nachricht vollständig an UPIC übergeben hat, muss er das Senderecht an die UTM-Anwendung übergeben, indem er in den Zustand "Receive" wechselt. Dazu stehen folgende CPI-C-Aufrufe zur Verfügung:

    Receive()
    Receive_Mapped_Data()
    Prepare_To_Receive()

    Erst jetzt überträgt UPIC den letzten Teil des Sendepuffers zusammen mit dem Senderecht an den UTM-Service. Das zugehörige Teilprogramm der UTM-Anwendung wird gestartet.

    Wenn Sie einen Receive-Aufruf nutzen, um das Senderecht an die UTM-Anwendung zu übertragen, dann überträgt der Client das Senderecht und wartet danach im Receive() auf die Antwort vom Service (blockierender Receive; siehe Abschnitt  „Nachricht empfangen, blockierender und nicht-blockierender Receive“).

    Der Aufruf Prepare_To_Receive() bewirkt, dass der lokale UPIC-Sendepuffer sofort zusammen mit dem Senderecht an die UTM-Anwendung übertragen wird. Der Client wechselt in den Zustand "Receive", empfängt jedoch noch keine Daten. Zum Empfang der Antwort vom UTM-Service muss der Client Receive() oder Receive_Mapped_Data() aufrufen. Vor diesem Receive-Aufruf kann der Client jedoch weitere (lokale) Verarbeitungsschritte, die die CPI-C-Schnittstelle nicht nutzen, durchführen. Da die Conversation sich im Zustand "Receive" befindet, sind zwischen Prepare_To_Receive() und dem Receive- bzw. Receive_Mapped_Data-Aufruf nur die CPI-C-Aufrufe Set_Receive_Type(), Set_Receive_Timer() und Set_Function_Key() erlaubt.
    Prepare_To_Receive() bietet sich an, wenn Sie einen „langlaufenden“ Service starten, bei dem nicht unmittelbar mit einer Antwort zu rechnen ist, z.B. Services mit mehreren Datenbankzugriffen oder mit verteilter Transaktionsverarbeitung zwischen der UTM-Partner-Anwendung und anderen Server-Anwendungen. Das Client-Programm und der Prozess sind dann nicht für die gesamte Bearbeitungszeit blockiert.