Condividi tramite


Dati utente del messaggio del listener avanzato TCP

Il modello di dati utente ELM (TCP Enhanced Listener Message) consente di passare i dati e i parametri direttamente tra TI e il server TP.

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.
Flusso di lavoro di riepilogo per il modello di programmazione dati utente TCP ELM

Modello di programmazione dei dati utente TCP ELM

Il modello di programmazione TCP ELM User Data funziona come segue:

  1. Un'applicazione richiama un metodo in un oggetto TI .NET.

  2. Il runtime TI chiama il proxy TI.

  3. Proxy TI:

    1. Legge nell'assembly e nei metadati creati in precedenza dal Designer TI.

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

      Il proxy TI quindi:

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

    4. Compila il buffer di flusso di dati flat che rappresenta la dichiarazione COBOL o il copybook.

    5. 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 l'esecuzione di TI per 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.

  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 usato dal server simultaneo per comunicare con il trasporto TCP TI e l'intestazione del messaggio client che usa il 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 server simultaneo (applicazione di esempio Mscmtics.cbl) identificato dal TRANID in ELM usando EXEC CICS Start.

    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 standard non è in grado di avviare il server simultaneo, il listener formatta un messaggio di errore e lo invia al trasporto TCP TI. 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. 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.

  1. Dopo l'esecuzione del server simultaneo, legge il messaggio iniziale della transazione (TIM) inviato dal listener standard.

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

  2. Il server simultaneo invia il TRM a TI e attende i dati della richiesta dell'applicazione.

  3. TI valuta il TRM e passa i dati direttamente al programma server simultaneo (Mscmtics.cbl). TI invia anche l'arresto del socket e quindi ti attende i dati di risposta.

  4. Dopo aver ricevuto i dati, il server TP esegue la logica di business sui dati. Tutta la logica di business viene definita nel server TP.

  5. Il server TP prepara i dati di risposta e quindi invia la risposta direttamente al client.

  6. Il server simultaneo chiude il socket

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

    1. riceve il messaggio dal componente di trasporto TCP.

    2. legge il buffer dei messaggi

      Proxy TI:

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

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

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

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

    Per informazioni sulla configurazione del mainframe e sulla scrittura di applicazioni server per TCP/IP, vedere TCP/IP V3R2 for MVS: CICS TCP/IP Socket Interface Guide (IBM Document #SC31-7131).

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