Collegamento al messaggio di richiesta transazione TCP

Il modello di collegamento TRM (Tcp Transaction Request Message) consente di passare dati e parametri tra TI e il server TP tramite COMMAREA. Il modello consente anche a un server simultaneo di collegarsi a un programma CICS DPL. Il listener standard per TCP/IP 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 dell'applicazione.

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

  • Ricevere i dati di risposta dell'applicazione dal programma di transazione server.

    Il modello tcp TRM Link è basato sul modello di server simultaneo CICS. Il modello tcp TRM Link è una variante Microsoft che supporta l'esecuzione di programmi applicazioni server DPL all'interno dell'ambiente CICS e mantiene la compatibilità con il modello di programmazione di collegamento CICS LU6.2.

    La figura seguente riepiloga il flusso di lavoro che si verifica tra il client, il listener CICS standard, il server simultaneo e il programma di transazione mainframe. I numeri tra 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.
    Processo in base al quale il client avvia il listener predefinito, che passa la chiamata al server simultaneo, che quindi invia e riceve i dati dal client, che il server passa quindi al programma DPL CICS per l'elaborazione dalla logica di business

Il modello di programmazione tcp TRM 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 l'assembly e i 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:

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

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

    7. passa il flusso di dati al componente di 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 tp del server da richiamare usando il relativo TRANID. Il listener TP è un tp del mainframe speciale, la cui funzione principale consiste nel ricevere chiamate TP del server inviate dalle applicazioni client che eseguono TCP/IP.

    Il TRANID del listener standard fornito da IBM è CSKL. Il nome TP del listener TP, come appare nella tabella di controllo del programma CICS (PCT) è EZACIC02.

  6. Il runtime TI formatta un TRM standard o personalizzato e lo invia al listener standard. Il runtime TI attende quindi la risposta TRM.

  7. Il listener standard riceve il TRM, invia al runtime TI una conferma di ricezione e quindi legge il contenuto di TRM. Il listener interpreta le informazioni in TRM ed estrae l'ID transazione del programma Server simultaneo che serve alla richiesta.

  8. Il listener standard avvia il programma TP server simultaneo (applicazione di esempio Mscmtics.cbl) identificato da TRANID in TRM usando EXEC CICS Start.

    Mscmtics.cbl è il file TP di esempio Microsoft usato per passare i dati tra TI e il server TP tramite COMMAREA. Il tp di esempio Mscmtics.cbl è sviluppato da Microsoft e fornito come parte del software Host Integration Server. Si trova in $\Microsoft Host Integration Server\SDK\Samples\Comti\ProgrammingSpecifics\Tcp. Il codice deve essere compilato, collegato e installato 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 COMTI. I motivi per cui il listener potrebbe non essere in grado di iniziare includono:

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

    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 è determinata dal socket chiuso dal listener CICS. 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 di considerazioni interne sull'architettura CICS (non esiste alcuna garanzia di quando un programma di transazione viene avviato dopo l'esecuzione della richiesta).

    Dopo che il listener CICS standard ha emesso il comando start per la transazione server simultanea, il listener standard non è più necessario per l'elaborazione dell'applicazione ed è libero di restare in ascolto di un'altra richiesta in ingresso.

  9. Dopo che il server simultaneo è in esecuzione, 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 utilizzate dal server simultaneo per comunicare con il trasporto TCP COMTI e l'intestazione del messaggio client utilizzata dal server simultaneo per personalizzarne il comportamento di esecuzione. L'intestazione contiene il nome del programma server a cui essere collegato.

  10. Server simultaneo:

    1. Formatta la risposta TRM standard o personalizzata.

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

    3. Genera 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.

  11. Il runtime TI valuta il TRM e passa i dati al programma Server simultaneo tramite CICS COMMAREA usando una chiamata di collegamento CICS EXEC standard. Il runtime TI invia anche un arresto del socket (ovvero 2 byte) e quindi attende i dati di risposta.

  12. Dopo che il server simultaneo riceve i dati della richiesta dell'applicazione, i collegamenti al programma dell'applicazione che è stato specificato nell'intestazione del messaggio client TRMs. Il comando CICS EXEC CICS LINK viene usato per avviare l'applicazione server reale. Il comando Link passa i dati dell'applicazione ricevuti dal trasporto TCP COMTI all'area comune di memoria (COMMAREA) ed esegue la logica di business sui dati. Tutta la logica di business è definita nel server TP.

  13. Dopo che il programma applicazione server ha completato l'elaborazione della richiesta e la simulazione della risposta, invia un comando EXEC CICS RETURN per restituire il controllo al programma Concurrent Server (mscmtics.cbl). Il tp del server prepara i dati di risposta insieme a un TRM standard o personalizzato, accetta i dati da COMMAREA e quindi invia i dati di risposta dell'applicazione al trasporto TCP TI tramite COMMAREA. Il completamento dell'elaborazione dei dati dell'applicazione segnala la fine della seconda sequenza di scambio.

  14. Il server simultaneo chiude il socket.

  15. Il proxy di automazione TI riceve i dati di risposta ed 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 Framework, 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.

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

    Per implementare questo modello, è necessario fornire 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 IBM predefinito CICS usa le impostazioni predefinite fornite da IBM.

    Host Integration Server include codice di esempio che illustra come implementare il modello di programmazione tcp TRM Link. Il codice di esempio si trova nella \directory di installazione\SDK\Samples\AppInt. Avviare Microsoft Visual Studio, aprire l'esercitazione preferita e seguire le istruzioni nel file Leggimi.

    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
Selezione del modello di programmazione appropriato
Modelli di programmazione