Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il modello di programmazione TRM (User Data Message) TCP consente di scambiare dati e parametri direttamente tra TI e TP host. Il modello tcp TRM User Data è basato sul modello di server simultaneo CICS. Il listener standard usa due scambi di rete per eseguire un singolo programma di transazione e richiede che il client:
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
La figura seguente riepiloga il flusso di lavoro che si verifica tra il client, il listener CICS standard e il server simultaneo. I numeri tra parentesi indicano l'ordine approssimativo in cui si verificano gli eventi. Una descrizione più dettagliata degli eventi segue la figura.
Processo tramite il 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 TRM TCP
Il modello di programmazione dati utente TRM TCP funziona come segue:
Un'applicazione richiama un metodo in un oggetto TI .NET configurato in Servizi componenti o .NET Framework.
Il runtime TI chiama il proxy TI.
Proxy TI:
Legge nell'assembly e nei metadati creati in precedenza da TI Designer.
Esegue il mapping dei tipi di dati .NET Framework ai tipi di dati COBOL.
Il proxy TI quindi:
Chiama le routine di conversione per convertire i dati dell'applicazione in tipi COBOL mainframe.
Costruisce il buffer del flusso di dati appiattito che rappresenta la dichiarazione COBOL o il copybook.
Passa il messaggio al componente di trasporto TCP.
Il trasporto TCP TI invia una richiesta di connessione al listener standard usando l'indirizzo IP (Internet Protocol) del computer mainframe e l'indirizzo di porta del listener.
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 tramite il relativo TRANID. Il TP del listener CICS è 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 TP standard fornito da IBM è CSKL. Il nome TP del listener TP visualizzato nella tabella di controllo del programma (PCT) è EZACIC02.
Il runtime TI formatta il TRM e lo invia al listener standard. TI attende la risposta TRM.
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 nel TRM ed estrae l'ID transazione del programma Server concorrente destinato a gestire la richiesta.
Il listener standard avvia il programma TP 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 COMMAREA. Il TP di 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. Deve essere compilato, collegato e installato nel computer mainframe prima di usare questo modello.
Annotazioni
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 iniziare includono:
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 concorrente non valido, disabilitato o non disponibile associato all'ID transazione
Annotazioni
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 della considerazione dell'architettura CICS interna (non esiste alcuna garanzia per quanto riguarda l'avvio di un programma di transazione dopo l'esecuzione della richiesta).
Dopo che il listener CICS standard ha emesso il comando start per la transazione server simultanea, il listener standard è fuori dal ciclo di elaborazione dell'applicazione ed è libero di restare in ascolto di un'altra richiesta in ingresso.
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 usate dal server simultaneo per comunicare con il trasporto TCP COMTI e l'intestazione del messaggio client utilizzata dal server simultaneo per personalizzare il comportamento di esecuzione.
Server simultaneo:
Formatta la risposta TRM.
Invia una risposta TRM al trasporto TCP TI per informarlo che può ora inviare i dati della richiesta applicativa.
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.
TI valuta il TRM e passa i dati al server simultaneo. TI invia anche il comando di chiusura del socket e quindi attende i dati di risposta.
Dopo che il server simultaneo riceve i dati della richiesta dell'applicazione, il server esegue la logica di business sui dati.
Dopo che il server ha terminato l'elaborazione della richiesta e la formulazione 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 seconda sequenza di scambio.
Il server simultaneo chiude il socket.
Il proxy TI riceve i dati di risposta ed elabora la risposta. Proxy TI:
Riceve il messaggio dal componente di trasporto TCP.
Legge il buffer dei messaggi.
Proxy TI:
Esegue il mapping dei tipi di dati COBOL ai tipi di dati .NET Framework.
Chiama le routine di conversione per convertire i tipi COBOL mainframe nei dati dell'applicazione.
Il runtime TI invia nuovamente i dati convertiti all'applicazione .NET Framework che ha richiamato il metodo .
Per implementare questo modello, è necessario fornire a TI un indirizzo IP, un numero di porta e un nome di programma CICS per eseguire l'applicazione passata dal programma server concorrente (Mscmtics.cbl). Il modello richiede l'installazione, all'interno di CICS, del listener predefinito fornito da IBM (EZACIC02). Il listener predefinito IBM CICS 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 che si vuole usare 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 per MVS: CICS TCP/IP Socket Interface Guide (IBM Document #SC31-7131).
Vedere anche
Componenti di Transaction Integrator
Messaggi di richiesta di transazione
Conversione di tipi di dati da Automazione a z/OS COBOL]
Conversione di tipi di dati da z/OS COBOL ad automazione
Componenti CICS
TI Runtime
Scelta del modello di programmazione appropriato
Modelli di programmazione