Dati utente del messaggio di richiesta transazione TCP

Il modello di programmazione dati utente (TRM) della richiesta di transazione TCP consente lo scambio di dati e parametri direttamente tra TI e TP host. Il modello di dati utente TCP TRM si basa sul modello di server simultaneo CICS. Il listener standard usa due scambi di rete per eseguire un singolo programma di transazione e richiede al client di:

  • Inviare un messaggio di richiesta di transazione (TRM) al listener standard

  • Ricevere una risposta TRM dal programma applicazione

  • Inviare il flusso di dati della richiesta dell'applicazione al programma transazioni server

    Ricevere i dati di risposta dell'applicazione dal programma transazioni server

    Nella figura seguente viene riepilogato il flusso di lavoro tra il client, il listener CICS standard e il server simultaneo. 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 processo in base al quale il client avvia il listener predefinito e quindi invia e riceve i dati dal client.
    Processo in base al quale il client avvia il listener predefinito, che passa la chiamata al server simultaneo, che invia e riceve i dati dal client

Diagramma del flusso di lavoro di riepilogo per il modello di programmazione dati utente TCP TRM

Il modello di programmazione dati utente TCP TRM funziona come segue:

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

  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 standard usando l'indirizzo IP (Internet Protocol) del computer mainframe e l'indirizzo della porta del listener.

  5. Il listener standard accetta la richiesta di connessione e indica al runtime TI di inviare il TRM. Il listener standard attende quindi il TRM.

    TRM è un record di dati formattato che identifica il server TP da richiamare usando il relativo TRANID. CICS Listener TP è un tp mainframe speciale, la cui funzione principale consiste nel ricevere chiamate TP server inviate dalle applicazioni client che eseguono TCP/IP.

    Il TRANID del listener IBM fornito, standard LISTENer TP è CSKL. Il nome TP del listener TP visualizzato nella tabella di controllo del programma (PCT) è EZACIC02.

  6. Il runtime TI formatta il TRM e lo invia al listener standard. TI attende la risposta TRM.

  7. Il listener standard riceve il TRM, invia al runtime TI una conferma di ricezione e quindi legge il contenuto del TRM. Il listener interpreta le informazioni nell'oggetto TRM ed estrae l'ID transazione del programma Server simultaneo per il servizio della richiesta.

  8. Il listener standard avvia il programma TP del server simultaneo identificato da TRANID nell'applicazione di esempio TRM (Mscmtics.cbl) 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.

  1. Il listener standard chiama l'API (Socket Application Protocol Interface) nell'ambiente host. Il listener standard non può inviare la risposta TRM. La risposta TRM rappresenta un processo di sincronizzazione che consente l'avvio del programma di transazione prima dell'invio dei dati della richiesta dell'applicazione dal client. Questo processo di sincronizzazione è necessario a causa della considerazione dell'architettura CICS interna (non esiste alcuna garanzia a quando viene avviato un programma di transazione dopo l'esecuzione della richiesta).

    Dopo che il listener CICS standard ha rilasciato il comando start per la transazione del server simultaneo, il listener standard è fuori dal ciclo di elaborazione dell'applicazione ed è libero di ascoltare un'altra richiesta in ingresso.

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

  3. Server simultaneo:

    1. Formatta la risposta TRM.

    2. Invia una risposta TRM al trasporto TCP TI per informarlo che ora può inviare i dati della richiesta dell'applicazione.

    3. Rilascia una ricezione e attende i dati della richiesta dell'applicazione.

      L'invio della risposta TRM completa la prima parte della sequenza di scambio del listener Standard.

  4. TI valuta il TRM e passa i dati al server simultaneo. TI invia anche l'arresto del socket e quindi ti attende i dati di risposta.

  5. Dopo che il server simultaneo riceve i dati della richiesta dell'applicazione, il server esegue la logica di business sui dati.

  6. Al termine dell'elaborazione della richiesta e della simulazione della risposta, prepara i dati di risposta e quindi invia la risposta direttamente al client. Il completamento dell'elaborazione dei dati dell'applicazione segnala la fine della sequenza di scambio 2°.

  7. Il server simultaneo chiude il socket.

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

  9. Il runtime TI invia nuovamente i dati convertiti all'applicazione .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). Il modello richiede l'installazione, all'interno di CICS, del listener predefinito fornito da IBM (EZACIC02). Il listener predefinito CICS IBM usa le impostazioni predefinite fornite da IBM.

    Host Integration Server include codice di esempio che illustra come implementare il modello di programmazione del collegamento TCP TRM. Il codice di esempio si trova nella \directory di installazione\SDK\Samples\AppInt. Avviare 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