Freigeben über


Linkmodell für erweiterte TCP-Listenermeldungen

Das TCP-ELM-Link-Modell (Enhanced Listener Message) ermöglicht das Übergeben von Daten und Parametern zwischen TI und dem Server-TP über COMMAREA. Das Modell ermöglicht es auch einer Concurrent Server-Instanz, eine Verknüpfung mit einem CICS-DPL-Programm herzustellen. Der erweiterte Listener wurde in CICS Transaction Server, Version 1.4 eingeführt, und seine Architektur erhöht die Effizienz der CICS-TCP/IP-Umgebung, indem die TRM- und TRM Reply-Sequenz beseitigt wird. Der erweiterte Listener akzeptiert einen Header und Anforderungsdaten vom Client im anfänglichen Datenstrom. Er eliminiert die Notwendigkeit, dass die Serveranwendung eine separate Antwort übermittelt, bevor die Anwendungsdaten verfügbar gemacht werden. Für den erweiterten Listener muss der Client Folgendes ausführen:

  • Erstellen und Senden eines einzelnen Datenstroms an das Serveranwendungsprogramm, bestehend aus einem Anforderungsheader gefolgt von den Anwendungsanforderungsdaten

  • Empfangen eines einzelnen Datenstroms vom Serveranwendungsprogramm, bestehend aus einem Antwortheader und Anwendungsdaten

    Die folgende Abbildung fasst den Workflow zwischen dem Client, dem erweiterten CICS-Listener, der Concurrent Server-Instanz 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 gleichzeitigen Server und dem Mainframetransaktionsprogramm zeigt.

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

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

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

  3. Wenn es sich bei der Anwendung um eine COM+-Komponente handelt, führt der TI Automation-Proxy Folgendes aus:

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

    2. Ordnet die Automatisierungsdatentypen COBOL-Datentypen zu.

      Wenn es sich bei der Anwendung um eine .NET Framework-Assembly handelt, führt der TI Automation-Proxy Folgendes aus:

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

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

      Der TI Automation-Proxy führt dann Folgendes aus:

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

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

    7. Ü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 Mainframecomputers 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. Die TRANID des von IBM bereitgestellten erweiterten Listener-TP wird vom Benutzer definiert.

  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 die Concurrent Server-Instanz für die Kommunikation mit dem COMTI-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 in der Listenerdefinition definiert ist.

    „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 erweiterte Listener die Concurrent Server-Instanz nicht starten kann, formatiert der Listener eine Fehlermeldung und sendet sie zurück an den COMTI-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.

  9. 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.

  10. Die Concurrent Server-Instanz ruft die TIM ab, verbindet den Socket und liest den Inhalt der ELM.

  11. Mit einem standardmäßigen EXEC CICS Link-Aufruf übergibt TI die Anwendungsdaten über CICS COMMAREA an das Serveranwendungsprogramm, das die Geschäftslogik enthält. Die TI-Runtime sendet auch eine Anforderung zum Herunterfahren des sendenden 1/2-Sockets und wartet dann auf die Antwortdaten.

  12. Das Server-TP empfängt die Anwendungsdaten, verarbeitet die Anforderung und führt die Geschäftslogik für die Daten aus. Die gesamte Geschäftslogik ist im Server-TP definiert.

  13. Die Concurrent Server-Instanz sendet den ELM-Antwortheader über COMMAREA an TI.

  14. Das Server-TP bereitet die Antwortdaten vor und sendet dann die Antwort über COMMAREA an den Client.

  15. Der Antwortdatenstrom der Anwendung besteht aus zwei Teilen. Der erste ist eine ELM-Antwort, die den Transport über die erfolgreiche oder fehlerhafte Ausführung der Anforderung informiert. Der TCP-Transport verwendet die ELM-Antwort aus dem Datenstrom und wenn die ELM-Antwort einen erfolgreichen Aufruf angibt, empfängt der Transport die Antwortdaten der Anwendung, bis der Socket von der Concurrent Server-Instanz geschlossen wird.

  16. Die Concurrent Server-Instanz schließt die Sockets.

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

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

    2. Liest den Nachrichtenpuffer.

      Wenn es sich bei der Anwendung um eine COM+-Komponente handelt, führt der TI Automation-Proxy Folgendes aus:

    3. Ordnet die COBOL-Datentypen Automatisierungsdatentypen zu.

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

      Wenn es sich bei der Anwendung um eine .NET-Assembly handelt, führt der TI Automation-Proxy Folgendes aus:

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

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

  18. Die TI-Runtime 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 angeben, um die Anwendung auszuführen, die vom Concurrent Server-Programm (Mscmtics.cbl) übergeben wird.

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

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