Freigeben über


Benutzerdatenmodell für erweiterte TCP-Listenermeldungen

Das TCP-ELM-Benutzerdatenmodell (Enhanced Listener Message) ermöglicht das direkte Übergeben von Daten und Parametern zwischen TI und dem Server-TP.

Die folgende Abbildung fasst den Workflow zwischen dem Client, dem erweiterten CICS-Listener, dem Concurrent Server und dem Mainframetransaktionsprogramm zusammen. Die Zahlen in Klammern geben die ungefähre Reihenfolge an, in der Ereignisse auftreten. Nach der Abbildung folgt eine ausführliche Beschreibung der Ereignisse.

Abbildung, die den Workflow zwischen dem Client, dem erweiterten CICS-Listener, dem Concurrent Server und dem Mainframetransaktionsprogramm zeigt.
Übersicht über den Workflow für das TCP-ELM-Benutzerdaten-Programmiermodell

TCP-ELM-Benutzerdaten-Programmiermodell

Das TCP-ELM-Benutzerdaten-Programmiermodell funktioniert wie folgt:

  1. Eine Anwendung ruft eine Methode in einem TI-.NET-Objekt auf.

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

  3. Der TI-Proxy führt Folgendes aus:

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

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

      Dann führt der TI-Proxy Folgendes aus:

    3. Ruft die Konvertierungsroutinen auf, um die Anwendungsdaten in Mainframe-COBOL-Typen zu konvertieren.

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

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

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

  5. Der erweiterte Listener akzeptiert die Verbindungsanforderung und weist die TI-Runtime an, die ELM zu senden. Der erweiterte Listener wartet dann auf die ELM.

    Die ELM ist ein formatierter Datensatz, der das aufzurufende Server-TP anhand seiner TRANID identifiziert. Das Listener-TP ist ein spezielles Mainframe-TP. Seine Hauptfunktion ist das Empfangen von Server-TP-Aufrufen, die von Clientanwendungen gesendet werden, die TCP/IP ausführen.

  6. Die TI-Runtime formatiert die ELM und sendet sie an den erweiterten Listener. Dann umgeht TI die Transportlogik, die auf eine ELM-Antwort wartet, und sendet die Anforderungsdaten der Anwendung unmittelbar nach dem Anforderungsheader. TI wartet dann auf die ELM-Antwort.

  7. Der erweiterte Listener empfängt die 35-Byte-ELM und liest den Inhalt des ELM-Headers. Der erweiterte Listener platziert die 35 Bytes in der Transaktionsanfangsnachricht (Transactional Initial Message, TIM), führt jedoch keine Vorgänge für den Inhalt aus.

    Die TIM beschreibt die TCP/IP-Umgebung, in der der Server ausgeführt wird, und enthält die TCP/IP-Socketinformationen, die der Concurrent Server für die Kommunikation mit dem TI-TCP-Transport und dem Clientnachrichtenheader verwendet, um sein Ausführungsverhalten anzupassen. Der Header enthält den Namen des Serverprogramms, mit dem die Verknüpfung hergestellt werden soll.

  8. Der erweiterte Listener startet das Concurrent Server-TP-Programm (Mscmtics.cbl-Beispielanwendung), das durch die TRANID mithilfe von „EXEC CICS Start“ in der ELM identifiziert wird.

    „Mscmtics.cbl“ ist die Microsoft-TP-Beispieldatei, die zum Übergeben von Daten zwischen TI und dem Server-TP mit COMMAREA verwendet wird. Die Beispiel-TP-Datei „Mscmtics.cbl“ wurde von Microsoft entwickelt und wird als Teil der Host Integration Server-Software bereitgestellt. Sie befindet sich hier: $\Microsoft Host Integration Server\SDK\Samples\Comti\ProgrammingSpecifics\Tcp. Sie muss vor der Verwendung dieses Modells auf dem Mainframecomputer kompiliert, verknüpft und installiert werden.

Hinweis

Wenn der Standardlistener die Concurrent Server-Instanz nicht starten kann, formatiert der Listener eine Fehlermeldung und sendet sie zurück an den TI-TCP-Transport. Mögliche Gründe, warum der Listener nicht gestartet werden kann:

  • Abgelehnte Verbindung aufgrund eingeschränkter CICS-Ressourcen (z. B. eine Überschreitung der maximalen Anzahl von CICS-Tasks oder Concurrent Server-Aufgaben)

  • Ungültige oder deaktivierte TRANID für die Concurrent Server-Instanz

  • Ungültiges, deaktiviertes oder nicht verfügbares Concurrent Server-Programm, das der Transaktions-ID zugeordnet ist

Hinweis

Die Fehlermeldung des CICS-Listeners ist zeichenbasiert und beginnt immer mit den Buchstaben EZY. Die Länge der Fehlermeldung ist variabel, und das Ende der Meldung wird durch den Socket bestimmt, der vom CICS-Listener geschlossen wird. Der erweiterte Listener ruft die Anwendungsprotokollschnittstelle (Application Protocol Interface, API) für den Socket in der Hostumgebung auf. Nachdem der erweiterte CICS-Listener den Startbefehl für die Concurrent Server-Transaktion ausgegeben hat, befindet sich der Listener nicht mehr in der Schleife für die Anwendungsverarbeitung und kann auf andere eingehende Anforderungen lauschen.

  1. Wenn der Concurrent Server ausgeführt wird, liest er die vom Standardlistener gesendete Transaktionsanfangsnachricht (Transaction Initial Message, TIM).

    Die TIM beschreibt die TCP/IP-Umgebung, in der der Server ausgeführt wird, und enthält die TCP/IP-Socketinformationen, die der Concurrent Server für die Kommunikation mit dem TI-TCP-Transport und dem Clientnachrichtenheader verwendet, um sein Ausführungsverhalten anzupassen.

  2. Der Concurrent Server sendet das TRM an TI und wartet auf die Anwendungsanforderungsdaten.

  3. TI wertet das TRM aus und übergibt die Daten direkt an das Concurrent Server-Programm (Mscmtics.cbl). TI sendet auch das Herunterfahren des Sockets, und TI wartet dann auf die Antwortdaten.

  4. Nach dem Empfang der Daten führt das Server-TP die Geschäftslogik für die Daten aus. Die gesamte Geschäftslogik ist im Server-TP definiert.

  5. Das Server-TP bereitet die Antwortdaten vor und sendet die Antwort dann direkt an den Client.

  6. Der Concurrent Server schließt den Socket.

  7. Der TI-Proxy empfängt die Antwortdaten und verarbeitet die Antwort. Der TI-Proxy führt Folgendes aus:

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

    2. Liest den Nachrichtenpuffer.

      Der TI-Proxy führt Folgendes aus:

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

    4. Ruft die Konvertierungsroutinen auf, um die Mainframe-COBOL-Typen in Anwendungsdaten zu konvertieren.

  8. Die TI-Runtime sendet die konvertierten Daten zurück an die COM- oder .NET Framework-Anwendung, die die Methode aufgerufen hat.

    Host Integration Server enthält Beispielcode, der zeigt, wie das TCP-ELM-Benutzerdaten-Programmiermodell implementiert wird. Der Beispielcode befindet sich hier: \Installationsverzeichnis\SDK\Samples\AppInt. Starten Sie Microsoft Visual Studio, öffnen Sie das gewünschte Tutorial, und befolgen Sie die Anweisungen in der Readme-Datei.

    Informationen zum Konfigurieren des Mainframes und zum Schreiben von Serveranwendungen für TCP/IP finden Sie im „TCP/IP V3R2 for MVS: CICS TCP/IP Socket Interface Guide“ (IBM-Dokument #SC31-7131).

Weitere Informationen

Komponenten von Transaction Integrator
Transaktionsanforderungsnachrichten
Konvertieren von Datentypen von Automation zu z/OS COBOL]
Konvertieren von Datentypen von z/OS COBOL in Automation
CICS-Komponenten
TI-Runtime
Auswählen des geeigneten Programmiermodells
Programmiermodelle