Condizioni di eccezione per comando LINK

Esistono delle condizioni di eccezione introdotte a supporto di DPL che vengono restituite ai programmi client e server.

Condizioni di eccezione restituite al programma client

I codici di condizione restituiti a un programma client descrivono eventi quali il sistema remoto non conosciuto o il mancato impegno nel programma server. Esistono diversi motivi, identificati dai valori EIBRESP2, per sollevare le condizioni INVREQ e LENGERR su un comando LINK. Possono essere sollevate anche le condizioni ROLLEDBACK, SYSIDERR e TERMERR. Per informazioni sulla programmazione di questi comandi, vedere i comandi API CICS.

Se la transazione mirror nella regione remota fallisce, il programma applicativo che ha emesso la richiesta DPL può gestire l'interruzione del mirror e impegnare le proprie risorse locali solo se sono vere entrambe le condizioni seguenti :
  1. Il programma applicativo gestisce in modo esplicito l'interruzione causata dal guasto del mirror, e può scegliere tra:
    • Prende un punto di sincronizzazione implicito per la normale terminazione della transazione
    • o Emette una richiesta esplicita di punto di sincronizzazione.
  2. La transazione di mirroring remoto non ha eseguito alcun lavoro recuperabile nell'ambito dell'unità di lavoro del programma applicativo. Cioè, il mirror è stato invocato solo per una richiesta di collegamento di programma distribuito (DPL) con SYNCONRETURN.

In tutti gli altri casi, cioè se il programma applicativo non gestisce l'interruzione o se il mirror esegue un'operazione recuperabile (ad esempio, un aggiornamento di un file, anche se non recuperabile), CICS® forza il backing out della transazione.

La condizione PGMIDERR viene sollevata dai comandi HANDLE ABEND PROGRAM, LOAD, RELEASE e XCTL se la definizione del programma locale specifica che il programma è remoto. Questa eccezione è qualificata da un valore EIBRESP2 pari a 9.

Condizioni di eccezione restituite al programma server

INVREQ viene restituito, qualificato da un valore EIBRESP2 pari a 200, a un programma server se emette uno dei comandi proibiti riassunti nella Tabella 1. Se il programma server non gestisce la condizione INVREQ, l'azione predefinita consiste nell'interrompere la transazione mirror in cui il programma server è in esecuzione con il codice di interruzione ADPL.

Se si tenta di utilizzare uno qualsiasi dei comandi EXEC CICS WEB come server, tali comandi falliscono con INVREQ e un valore RESP2 pari a 1. I tre comandi seguenti falliscono con INVREQ e un valore RESP2 di 5: EXEC CICS WEB EXTRACT, EXTRACT TCPIP e EXTRACT CERTIFICATE. L'uso di questi comandi non presenta problemi se CICS agisce come client.

Per informazioni sulla programmazione delle condizioni di eccezione relative alla DPL, vedere LINK.

Tabella 1. Comandi API vietati nei programmi invocati da DPL
Comando Opzioni
ASSIGN ALTSCRNHT ALTSCRNWD APLKYBD APLTEXT BTRANS COLOR DEFSCRNHT DEFSCRNWD DELIMITER DESTCOUNT DESTID DESTIDLENG DS3270 DSSCS EWASUPP EXTDS FACILITY FCI GCHARS GCODES GMMI HILIGHT INPARTN KATAKANA LDCMNEM LDCNUM MAPCOLUMN MAPHEIGHT MAPLINE MAPWIDTH MSRCONTROL NATLANGINUSE NEXTTRANSID NUMTAB OPCLASS OPSECURITY OUTLINE PAGENUM PARTNPAGE PARTNS PARTNSET PS QNAME SCRNHT SCRNWD SIGDATA SOSI STATIONID TCTUALENG TELLERID TERMCODE TERMPRIORITY TEXTKYBD TEXTPRINT UNATTEND USERNAME USERPRIORITY VALIDATION
CONNECT PROCESS tutti
CONVERSE tutti
ESTRARRE GLI ATTRIBUTI tutti
EXTRACT PROCESS tutti
FREE tutti
HANDLE AID tutti
PROBLEMA ABEND CONFERMA ERRORE PREPARARE SEGNALE STAMPA ABORT AGGIUNGERE FINE CANCELLARE NOTA INTERROGARE RICEVERE SOSTITUIRE INVIARE ATTENDERE
LINK INPUTMSG INPUTMSGLEN
PURGE MESSAGE tutti
RICEVI tutti
RETURN INPUTMSG INPUTMSGLEN
ROUTE tutti
INVIA CONTROLLO MAPPA PARTNSET TESTO TESTO(MAPPATO) TESTO(NOEDIT) PAGINA
SIGNOFF tutti
SIGNON tutti
START TERMID, il cui valore è l'ID della sessione intersistema. (cioè quando la struttura principale del task emittente è una sessione piuttosto che un terminale)
START CHANNEL TERMID, il cui valore è l'ID della sessione intersistema. (cioè quando la struttura principale del task emittente è una sessione piuttosto che un terminale)
SYNCPOINT Può essere emesso nell'area del server se SYNCONRETURN è specificato in LINK
SYNCPOINT ROLLBACK Può essere emesso nell'area del server se SYNCONRETURN è specificato in LINK
WAIT TERMINAL tutti
XCTL INPUTMSG INPUTMSGLEN
Anche i seguenti comandi sono limitati, ma possono essere utilizzati nell'area del server se SYNCONRETURN è specificato su LINK:
  • IMPEGNO CPIRR
  • CPIRR INDIETRO
  • ESECUZIONE DLI TERMINE
  • CHIAMA DLI TERM

Quando solo alcune opzioni sono vietate dal comando, vengono mostrate. Tutti i comandi APPC elencati sono vietati solo quando si riferiscono alla struttura principale. Uno di questi, il comando CONNECT PROCESS, causa un errore anche se si riferisce alla struttura principale in un ambiente non DPL. È stato incluso qui perché, se un comando CONNECT PROCESS fa riferimento alla sua struttura principale in un programma server, la condizione di eccezione sollevata indica un errore DPL.