Freigeben über


TCP-Transaktionsanforderungsnachricht-Link

Mit dem TRM-Linkmodell (TCP Transaction Request Message) können Daten und Parameter zwischen TI und dem Server-TP über das COMMAREA übergeben werden. Mit dem Modell kann ein gleichzeitiger Server auch mit einem CICS DPL-Programm verknüpft werden. Der Standardlistener für TCP/IP verwendet zwei Netzwerkaustausche, um ein einzelnes Transaktionsprogramm auszuführen und erfordert, dass der Client:

  • Senden einer Transaktionsanforderungsnachricht (Transaction Request Message, TRM) an den Standard-Listener.

  • Erhalten Sie eine TRM-Antwort vom Anwendungsprogramm.

  • Senden Sie den Anforderungsdatenstrom der Anwendung an das Servertransaktionsprogramm.

  • Empfangen der Antwortdaten der Anwendung aus dem Servertransaktionsprogramm.

    Das TCP TRM Link-Modell basiert auf dem CICS-Parallelservermodell. Das TCP TRM Link-Modell ist eine Microsoft-Variante, die die Ausführung von DPL-Serveranwendungsprogrammen in der CICS-Umgebung unterstützt und die Kompatibilität mit dem CICS LU6.2 Link-Programmiermodell gewährleistet.

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

    Abbildung, die den Prozess zeigt, mit dem der Client den Standardlistener startet.
    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, die der Server dann zur Verarbeitung durch die Geschäftslogik an das CICS DPL-Programm übergibt.

Das TCP TRM Link-Programmiermodell funktioniert wie folgt:

  1. Eine Anwendung ruft eine Methode in einer TI-Komponente auf, die entweder in Component Services oder .NET Framework konfiguriert ist.

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

  3. Wenn es sich bei der Anwendung um eine COM+-Komponente handelt, ist der TI Automation-Proxy:

    1. Liest in der Typbibliothek, die zuvor vom TI-Designer erstellt wurde.

    2. Ordnet die Automatisierungsdatentypen COBOL-Datentypen zu.

      Wenn die Anwendung eine .NET Framework-Assembly ist, dann der TI Automation-Proxy:

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

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

      Der TI-Automatisierungsproxy:

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

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

    7. übergibt den Datenstrom 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 Listener TP ist ein spezieller Mainframe-TP, dessen Hauptfunktion darin besteht, Server-TP-Aufrufe zu empfangen, 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 CICS-Programmsteuerungstabelle (PCT) angezeigt wird, ist EZACIC02.

  6. Ti-Laufzeit formatiert entweder einen Standard oder ein benutzerdefiniertes TRM und sendet es an den Standardlistener. Die TI-Laufzeit wartet dann 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 parallele Server-TP-Programm (Mscmtics.cbl-Beispielanwendung), das von der TRANID im TRM mit 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. Der Code muss vor der Verwendung dieses Modells kompiliert, verknüpft und auf dem Mainframecomputer installiert werden.

    Hinweis

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

    Abgelehnte Verbindung aufgrund eingeschränkter CICS-Ressourcen (z. B. die maximale Anzahl von CICS-Tasks oder gleichzeitigen Server-Tasks)

    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. 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, ist der Standardlistener nicht mehr für die Anwendungsverarbeitung erforderlich und kann auf eine andere eingehende Anforderung lauschen.

  9. 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. Der Header enthält den Namen des Serverprogramms, mit dem verknüpft werden soll.

  10. Der gleichzeitige Server:

    1. Formatiert die standard- oder benutzerdefinierte 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 Standardmäßigen Listener-Austauschsequenz ab.

  11. Die TI-Laufzeit wertet das TRM aus und übergibt die Daten über die CICS COMMAREA mithilfe eines standardmäßigen CICS Link-Aufrufs an das Concurrent Server-Programm. Die TI-Laufzeitumgebung sendet auch einen 2-Byte-Socket-Shutdown und wartet dann auf die Antwort.

  12. Nachdem der gleichzeitige Server die Anwendungsanforderungsdaten empfängt, verknüpft er sich mit dem Dienstanwendungsprogramm, das im TRMs-Clientnachrichtenheader angegeben wurde. Der CICS EXEC CICS LINK-Befehl wird verwendet, um die eigentliche Serveranwendung zu starten. Der Befehl "Verknüpfen" übergibt die vom COMTI TCP-Transport empfangenen Anwendungsdaten an den gemeinsamen Speicherbereich (COMMAREA) und führt die Geschäftslogik für die Daten aus. Alle Geschäftslogik wird im Server-TP definiert.

  13. Nachdem das Serveranwendungsprogramm die Verarbeitung der Anforderung abgeschlossen und die Antwort formuliert hat, gibt es einen EXEC CICS RETURN-Befehl aus, um die Steuerung an das Gleichzeitige Serverprogramm (mscmtics.cbl) zurückzugeben. Der Server-TP bereitet die Antwortdaten zusammen mit einem Standard oder einem benutzerdefinierten TRM vor, akzeptiert die Daten aus dem COMMAREA und sendet dann die Antwortdaten der Anwendung über das COMMAREA an den TI TCP-Transport zurück. Das Abschließen der Verarbeitung der Anwendungsdaten signalisiert das Ende der 2. Austauschsequenz.

  14. Der gleichzeitige Server schließt den Socket.

  15. Der TI Automation-Proxy empfängt die Antwortdaten und verarbeitet die Antwort. Der TI-Automatisierungsproxy:

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

    2. Liest den Nachrichtenpuffer.

      Wenn es sich bei der Anwendung um eine COM+-Komponente handelt, ist der TI Automation-Proxy:

    3. Ordnet die COBOL-Datentypen den Automatisierungsdaten zu.

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

      Wenn die Anwendung eine .NET Framework-Assembly ist, dann der TI Automation-Proxy:

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

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

  16. Die TI-Laufzeit sendet die konvertierten Daten zurück an die COM- oder .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 Microsoft Visual Studio, öffnen Sie das Lernprogramm Ihrer Wahl, 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
Auswählen des geeigneten Programmiermodells
Programmiermodelle