Collegamento al messaggio del listener avanzato TCP

Il modello di collegamento del listener avanzato TCP (ELM) consente il passaggio di dati e parametri tra TI e il server TP usando la COMMAREA. Il modello consente anche a un server simultaneo di collegare un programma DPL CICS. Il listener avanzato è stato introdotto in CICS Transaction Server versione 1.4 e la relativa architettura aumenta l'efficienza dell'ambiente TCP/IP CICS eliminando la sequenza di sequenza di risposta TRM e TRM. Il listener avanzato accetta un'intestazione e richiedere dati dal client nel flusso iniziale ed elimina la necessità dell'applicazione server di fornire una risposta separata prima che i dati dell'applicazione siano resi disponibili. Il listener avanzato richiede al client di:

  • Creare e inviare un singolo flusso di dati composto da un'intestazione di richiesta seguita dai dati della richiesta dell'applicazione al programma dell'applicazione server

  • Ricevere un singolo flusso di dati costituito da un'intestazione di risposta e dati dell'applicazione dal programma applicazione server

    Nella figura seguente viene riepilogato il flusso di lavoro tra il client, il listener CICS avanzato, il server simultaneo e il programma di transazione mainframe. I numeri nelle parentesi indicano l'ordine approssimativo in cui si verificano gli eventi. Una descrizione più dettagliata degli eventi segue la figura.

    Immagine che mostra il flusso di lavoro tra il client, il listener CICS avanzato, il server simultaneo e il programma di transazione mainframe.

Il modello di programmazione TCP ELM Link funziona come segue:

  1. Un'applicazione richiama un metodo in un componente TI configurato in Servizi componenti o in .NET Framework.

  2. Il runtime TI chiama il proxy di automazione TI.

  3. Se l'applicazione è un componente COM+, il proxy di Automazione TI:

    1. legge nella libreria dei tipi creata in precedenza dal Designer TI

    2. esegue il mapping dei tipi di dati di automazione ai tipi di dati COBOL

      Se l'applicazione è un assembly .NET Framework, il proxy di Automazione TI:

    3. legge nell'assembly e nei metadati creati in precedenza dal Designer TI

    4. esegue il mapping dei tipi di dati .NET Framework ai tipi di dati COBOL

      Il proxy di automazione TI quindi:

    5. chiama le routine di conversione per convertire i dati dell'applicazione in tipi COBOL mainframe

    6. compila il buffer di flusso di dati flat che rappresenta la dichiarazione COBOL o il copybook.

    7. passa il messaggio al componente trasporto TCP.

  4. Il trasporto TCP TI invia una richiesta di connessione al listener avanzato usando l'indirizzo IP (Internet Protocol) del computer mainframe e l'indirizzo della porta del listener.

  5. Il listener avanzato accetta la richiesta di connessione e indica al runtime TI di inviare L'ELM. Il listener avanzato attende quindi ELM.

    ELM è un record di dati formattato che identifica il tp del server da richiamare usando il relativo TRANID. Il listener TP è un tp di mainframe speciale, la cui funzione principale consiste nel ricevere chiamate TP server inviate dalle applicazioni client che eseguono TCP/IP. Il TRANID del listener avanzato fornito da IBM è definito dall'utente.

  6. TI formatta l'ELM e lo invia al listener avanzato. TI ignora quindi la logica di trasporto che attende una risposta ELM e invia immediatamente i dati della richiesta dell'applicazione dopo l'intestazione della richiesta. TI attende quindi la risposta ELM.

  7. Il listener avanzato riceve il 35 byte ELM e quindi legge il contenuto dell'intestazione ELM. Il listener avanzato inserisce i 35 byte nel messaggio iniziale della transazione (TIM) ma non opera sul relativo contenuto.

    TIM descrive l'ambiente TCP/IP in cui il server è in esecuzione e contiene le informazioni sul socket TCP/IP che il server simultaneo usa per comunicare con il trasporto TCP COMTI e l'intestazione del messaggio client usato dal server simultaneo per personalizzare il comportamento di esecuzione. L'intestazione contiene il nome del programma server da collegare.

  8. Il listener avanzato avvia il programma TP del server simultaneo (applicazione di esempio Mscmtics.cbl) definito nella definizione del listener.

    Mscmtics.cbl è il file TP di esempio Microsoft usato per passare i dati tra TI e il server TP usando VIREA. L'esempio Mscmtics.cbl viene sviluppato da Microsoft e fornito come parte del software Host Integration Server. Si trova in $\Microsoft Host Integration Server\SDK\Samples\Comti\ProgrammingSpecifics\Tcp. È necessario compilare, collegare e installare nel computer mainframe prima di usare questo modello.

    Nota

    Se il listener avanzato non è in grado di avviare il server simultaneo, il listener formatta un messaggio di errore e lo invia al trasporto TCP COMTI. I motivi per cui il listener potrebbe non essere in grado di avviare l'inclusione:

    • connessione rifiutata a causa di risorse CICS limitate (ad esempio, supera il numero massimo di attività CICS o attività server simultanee)

    • TRANID non valido o disabilitato per il server simultaneo

    • programma server simultaneo non valido, disabilitato o non disponibile associato all'ID transazione

    Nota

    Il messaggio di errore del listener CICS è basato su caratteri e inizia sempre con le lettere EZY. La lunghezza del messaggio di errore è variabile e la fine del messaggio viene determinata dal socket chiuso dal listener CICS.

  9. Il listener avanzato chiama l'API (Socket Application Protocol Interface) nell'ambiente host. Dopo che il listener avanzato ha rilasciato il comando start per la transazione del server simultaneo, il listener avanzato è fuori dal ciclo di elaborazione dell'applicazione ed è libero di ascoltare un'altra richiesta in ingresso.

  10. Il server simultaneo recupera tim, connette il socket e legge il contenuto di ELM.

  11. TI passa i dati dell'applicazione tramite CICS VIRGREA al programma applicazione server che contiene la logica di business usando una chiamata di collegamento CICS EXEC standard. Il runtime TI genera anche un arresto per il socket 1/2 di invio e quindi attende i dati di risposta.

  12. Il server TP riceve i dati dell'applicazione, elabora la richiesta ed esegue la logica di business sui dati. Tutta la logica di business viene definita nel server TP.

  13. Il server simultaneo invia l'intestazione di risposta ELM a TI tramite COMMAREA.

  14. Il server TP prepara i dati di risposta e invia quindi la risposta al client tramite COMMAREA.

  15. Il flusso di dati di risposta dell'applicazione è costituito da due parti. La prima è una risposta ELM che informa il trasporto come l'esito positivo o negativo della richiesta. Il trasporto TCP utilizzerà la risposta ELM dal flusso e quindi, se la risposta ELM indica che la chiamata ha esito positivo, ricevere i dati di risposta dell'applicazione fino a quando il socket non viene chiuso dal server simultaneo.

  16. Il server simultaneo chiude i socket

  17. Il proxy di automazione TI riceve i dati di risposta e elabora la risposta. Proxy di automazione TI:

    1. Riceve il messaggio dal componente di trasporto TCP.

    2. Legge il buffer dei messaggi.

      Se l'applicazione è un componente COM+, il proxy di Automazione TI:

    3. Esegue il mapping dei tipi di dati COBOL ai dati di automazione.

    4. Chiama le routine di conversione per convertire i tipi COBOL mainframe nei dati dell'applicazione.

      Se l'applicazione è un assembly .NET, il proxy di Automazione TI:

    5. Esegue il mapping dei tipi di dati COBOL ai tipi di dati .NET Framework.

    6. Chiama le routine di conversione per convertire i tipi COBOL mainframe nei dati dell'applicazione.

  18. Il runtime TI invia nuovamente i dati convertiti all'applicazione COM o .NET Framework che ha richiamato il metodo.

    Per implementare questo modello, è necessario specificare TI con un indirizzo IP, un numero di porta e un nome di programma CICS per eseguire l'applicazione passata dal programma server simultaneo (Mscmtics.cbl).

    Host Integration Server include codice di esempio che illustra come implementare il modello di programmazione TCP ELM Link. Il codice di esempio si trova in \installation directory\SDK\Samples\AppInt. Avviare Microsoft Visual Studio, aprire l'esercitazione desiderata e seguire le istruzioni riportate in Readme.

Vedere anche

Componenti di Transaction Integrator
Messaggi di richiesta transazione
Conversione di tipi di dati da Automazione a z/OS COBOL]
Conversione di tipi di dati da z/OS COBOL a Automazione
Componenti CICS
Runtime TI
Selezione del modello di programmazione appropriato
Modelli di programmazione