Freigeben über


TCP-Transaktionsanforderungsnachricht Benutzerdaten

Das Programmiermodell für Benutzerdaten des TCP-Transaktionsanforderungsnachricht (TRM) ermöglicht den direkten Austausch von Daten und Parametern zwischen TI und dem Host-TP. Das TCP TRM-Benutzerdatenmodell basiert auf dem CICS-Parallelservermodell. Der Standardlistener verwendet zwei Netzwerkaustausche, um ein einzelnes Transaktionsprogramm auszuführen, und erfordert, dass der Client:

  • Senden Sie eine Transaktionsanforderungsnachricht (TRM) an den Standard-Listener.

  • Empfangen einer TRM-Antwort aus dem Anwendungsprogramm

  • Senden des Datenstroms der Anwendungsanforderung an das Servertransaktionsprogramm

    Empfangen der Antwortdaten der Anwendung aus dem Servertransaktionsprogramm

    Die folgende Abbildung fasst den Workflow zusammen, der zwischen dem Client, dem CICS-Standardlistener und dem gleichzeitigen Server erfolgt. Die Zahlen in Klammern geben die ungefähre Reihenfolge an, in der Ereignisse auftreten. Eine detailliertere Beschreibung der Ereignisse folgt der Abbildung.

    Abbildung des Prozesses, mit dem der Client den Standardlistener startet und dann Daten vom Client sendet und empfängt.
    Prozess, mit dem der Client den Standardlistener startet, der den Aufruf an den gleichzeitigen Server übergibt, der dann Daten vom Client sendet und empfängt.

Übersichts-Workflow-Diagramm für das TCP TRM-Benutzerdaten-Programmiermodell

Das TCP TRM-Benutzerdatenprogrammiermodell funktioniert wie folgt:

  1. Eine Anwendung ruft eine Methode in einem TI .NET-Objekt auf, das entweder in Component Services oder .NET Framework konfiguriert ist.

  2. Die TI-Laufzeit ruft den TI-Proxy auf.

  3. Der TI-Proxy:

    1. Liest die Assembly- und Metadaten, die zuvor vom TI-Designer erstellt wurden.

    2. Ordnet die .NET Framework-Datentypen COBOL-Datentypen zu.

      Der TI-Proxy danach:

    3. Ruft die Konvertierungsroutinen auf, um die Anwendungsdaten in Großrechner-COBOL-Typen zu konvertieren.

    4. Erstellt den flachen Datenstrompuffer, der die COBOL-Deklaration oder das Copybook darstellt.

    5. Übergibt die Nachricht an die TCP-Transportkomponente.

  4. Der TI-TCP-Transport sendet eine Verbindungsanforderung an den Standardlistener unter Verwendung der IP-Adresse (Internet Protocol) des Mainframecomputers und der Portadresse des Listeners.

  5. Der Standardlistener akzeptiert die Verbindungsanforderung und teilt der TI-Laufzeitumgebung mit, das TRM zu senden. Der Standard-Listener wartet dann auf das TRM.

    Das TRM ist ein formatierter Datensatz, der den Server-TP identifiziert, der mithilfe seiner TRANID aufgerufen werden soll. Der CICS Listener TP ist ein spezieller Großrechner-TP, dessen Hauptfunktion der Empfang von Server-TP-Aufrufen ist, die von Clientanwendungen mit TCP/IP gesendet werden.

    Die TRANID des VON IBM bereitgestellten Standardlistener TP ist CSKL. Der TP-Name des Listener-TP, wie er in der Programmsteuerungstabelle (PCT) angezeigt wird, ist EZACIC02.

  6. Die Laufzeitumgebung von TI formatiert das TRM und sendet es an den Standard-Listener. TI wartet auf die TRM-Antwort.

  7. Der Standardlistener empfängt das TRM, sendet TI zur Laufzeit eine Empfangsbestätigung und liest dann den Inhalt des TRM. Der Listener interpretiert die Informationen im TRM und extrahiert die Transaktions-ID des gleichzeitigen Serverprogramms, das die Anforderung bedient.

  8. Der Standardlistener startet das TP-Serverprogramm zur gleichzeitigen Ausführung, das durch die TRANID in der TRM (Mscmtics.cbl-Beispielanwendung) mithilfe von EXEC CICS Start identifiziert wird.

    Mscmtics.cbl ist die Microsoft-Beispiel-TP-Datei, die verwendet wird, um Daten zwischen TI und dem Server-TP mithilfe von COMMAREA zu übergeben. Das Mscmtics.cbl-Beispiel-TP wird von Microsoft entwickelt und als Teil der Host Integration Server-Software bereitgestellt. Sie befindet sich im $\Microsoft Host Integration Server\SDK\Samples\Comti\ProgrammingSpecifics\Tcp. Sie muss vor der Verwendung dieses Modells auf dem Großrechner kompiliert, verknüpft und installiert werden.

Hinweis

Wenn der Standardlistener den gleichzeitigen Server nicht starten kann, formatiert der Listener eine Fehlermeldung und sendet ihn an den TI TCP-Transport zurück. Gründe, warum der Listener möglicherweise nicht starten kann:

  • Abgelehnte Verbindung aufgrund eingeschränkter CICS-Ressourcen (z. B. Überschreitung der maximalen Anzahl von CICS-Aufgaben oder gleichzeitiger Serveraufgaben)

  • ungültige oder deaktivierte TRANID für den gleichzeitigen Server

  • ungültiges, deaktiviertes oder nicht verfügbares gleichzeitiges Serverprogramm, das der Transaktions-ID zugeordnet ist

Hinweis

Die Fehlermeldung des CICS-Listeners basiert auf Zeichen und beginnt immer mit den Buchstaben EZY. Die Länge der Fehlermeldung ist variabel, und das Ende der Nachricht wird durch den vom CICS-Listener geschlossenen Socket bestimmt.

  1. Der Standardlistener ruft die Socketanwendungsprotokollschnittstelle (API) in der Hostumgebung auf. Der Standardlistener kann die TRM-Antwort nicht senden. Die TRM-Antwort stellt einen Synchronisierungsprozess dar, der es ermöglicht, dass das Transaktionsprogramm gestartet wird, bevor die Anwendungsanforderungsdaten vom Client gesendet werden. Dieser Synchronisierungsprozess ist aufgrund interner CICS-Architekturüberlegung erforderlich (es gibt keine Garantie, wann ein Transaktionsprogramm gestartet wird, nachdem die Anforderung gestellt wurde).

    Nachdem der CICS-Standardlistener den Startbefehl für die gleichzeitige Servertransaktion ausgestellt hat, befindet sich der Standardlistener außerhalb der Anwendungsverarbeitungsschleife und kann auf eine andere eingehende Anforderung lauschen.

  2. Nachdem der gleichzeitige Server ausgeführt wurde, liest er die vom Standardlistener gesendete Transaktionsinitialnachricht (TIM).

    Der TIM beschreibt die TCP/IP-Umgebung, in der der Server ausgeführt wird, und enthält die TCP/IP-Socketinformationen, die der gleichzeitige Server verwendet, um mit dem COMTI TCP-Transport und dem Clientnachrichtenheader zu kommunizieren, den der gleichzeitige Server zum Anpassen des Ausführungsverhaltens verwendet.

  3. Der gleichzeitige Server:

    1. Formatiert die TRM-Antwort.

    2. Sendet eine TRM-Antwort an den TI TCP-Transport, um sie darüber zu informieren, dass sie jetzt die Anwendungsanforderungsdaten senden kann.

    3. Sendet einen Empfangsbefehl und wartet auf die Anforderungsdaten der Anwendung.

      Das Senden der TRM-Antwort schließt den 1. Teil der Standard-Listener-Austauschsequenz ab.

  4. TI wertet das TRM aus und übergibt die Daten an den Concurrent Server. TI sendet außerdem eine Socket-Abschaltung und wartet anschließend auf die Antwortdaten.

  5. Nachdem der gleichzeitige Server die Anwendungsanforderungsdaten empfängt, führt der Server die Geschäftslogik für die Daten aus.

  6. Nachdem der Server die Verarbeitung der Anforderung abgeschlossen und die Antwort formuliert hat, bereitet er die Antwortdaten vor und sendet dann die Antwort direkt an den Client. Das Abschließen der Verarbeitung der Anwendungsdaten signalisiert das Ende der 2. Austauschsequenz.

  7. Der gleichzeitige Server schließt den Socket.

  8. Der TI-Proxy empfängt die Antwortdaten und verarbeitet die Antwort. Der TI-Proxy:

    1. Empfängt die Nachricht von der TCP-Transportkomponente.

    2. Liest den Nachrichtenpuffer.

      Der TI-Proxy:

    3. Ordnet die COBOL-Datentypen den .NET Framework-Datentypen zu.

    4. Ruft die Konvertierungsroutinen auf, um die Großrechner-COBOL-Typen in die Anwendungsdaten zu konvertieren.

  9. Die TI-Laufzeit sendet die konvertierten Daten zurück an die .NET Framework-Anwendung, die die Methode aufgerufen hat.

    Um dieses Modell zu implementieren, müssen Sie TI eine IP-Adresse, eine Portnummer und einen CICS-Programmnamen bereitstellen, um die Anwendung auszuführen, die vom gleichzeitigen Serverprogramm (Mscmtics.cbl) übergeben wird. Für das Modell ist die Installation innerhalb von CICS des von IBM bereitgestellten Standardlisteners (EZACIC02) erforderlich. Der CICS IBM-Standardlistener verwendet IBM-bereitgestellte Standardeinstellungen.

    Hostintegrationsserver enthält Beispielcode, der zeigt, wie das TCP TRM Link-Programmiermodell implementiert wird. Der Beispielcode befindet sich im \Installationsverzeichnis\SDK\Samples\AppInt. Starten Sie Visual Studio, öffnen Sie entweder das Lernprogramm, das Sie verwenden möchten, und folgen Sie den Anweisungen in der Infodatei.

    Informationen zum Konfigurieren des Mainframes und schreiben von Serveranwendungen für TCP/IP finden Sie unter TCP/IP V3R2 für MVS: CICS TCP/IP Socket Interface Guide (IBM Document #SC31-7131).

Siehe auch

Transaktionsintegratorkomponenten
Transaktionsanforderungsnachrichten
Konvertierung von Datentypen aus Automatisierungsprozessen nach z/OS COBOL]
Konvertieren von Datentypen von z/OS COBOL zur Automatisierung
CICS-Komponenten
TI-Laufzeit
Auswählen des geeigneten Programmiermodells
Programmiermodelle