CICS - Pseudo Programmazione

A partire da ora, abbiamo coperto i programmi di non conversione e conversione. I programmi di conversione hanno un grosso svantaggio come i lorothink timeè considerevolmente alto. Per superare questo problema, è entrata in scena la programmazione di pseudo conversione. Discuteremo ora di più sui programmi di pseudo conversione.

Programma di pseudo conversione

Di seguito è riportata la sequenza di eventi che si verificano in un programma di pseudo conversione:

  • Step 1 - Il sistema invia un messaggio a schermo e termina la transazione, specificando la transazione da avviare quando viene ricevuto l'input dell'utente.

  • Step 2- Il sistema assegna le risorse utilizzate da questa transazione ad altre transazioni in esecuzione nel sistema. Quindi possiamo utilizzare le risorse in un programma di pseudo conversione fino a quando l'utente non fornisce l'input.

  • Step 3- Il sistema interroga l'ingresso del terminale a intervalli di tempo regolari. Quando l'input viene ricevuto, viene elaborato e l'output viene visualizzato.

  • Step 4 - Il programma applicativo viene caricato nella memoria principale quando necessario e rilasciato quando non in uso.

Tecniche di pseudo conversione

Il punto importante da notare nella pseudo-conversazione è il passaggio di dati tra ogni attività. Discuteremo delle tecniche per il passaggio dei dati.

COMMAREA

COMMAREA è conosciuta come area di comunicazione. COMMAREA viene utilizzato per passare i dati tra le attività. L'esempio seguente mostra come passare COMMAREA dove WSCOMMAREA e WS-COMMAREA-LENGTH sono dichiarati nella sezione Working Storage -

EXEC CICS RETURN
   TRANSID ('transaction-id')
   COMMAREA (WS-COMMAREA)
   LENGTH  (WS-COMMAREA-LENGTH)
END-EXEC.

DFHCOMMAREA

DFHCOMMAREA è un'area di memoria speciale fornita da CICS a ogni attività.

  • Viene utilizzato per passare dati da un programma a un altro programma. I programmi possono esistere nella stessa transazione o anche in una transazione diversa.

  • È dichiarato nella sezione Linkage del programma al livello 01.

  • Dovrebbe avere la stessa clausola immagine di WS-COMMAREA.

  • I dati possono essere spostati indietro da DFHCOMMAREA a WS-COMMAREA utilizzando un'istruzione MOVE.

MOVE DFHCOMMAREA TO WS-COMMAREA.

Esempio

Dopo aver inviato la mappa, l'attività termina e attende la risposta dell'utente. In questa fase, i dati devono essere salvati, perché sebbene l'attività sia terminata, la transazione non lo è stata. Quando questa transazione deve essere ripresa, richiederebbe lo stato precedente dell'attività. L'utente inserisce l'input. Questo ora deve essere ricevuto dal comando RECEIVE MAP e quindi convalidato. L'esempio seguente mostra come dichiarare COMMAREA e DFHCOMMAREA -

WORKING-STORAGE SECTION.
01 WS-COMMAREA.
   05 WS-DATA PIC X(10).
   
LINKAGE SECTION.
01 DFHCOMMAREA.
   05 LK-DATA PIC X(10).

Pseudo codice

Di seguito è riportata la logica dello pseudo codice che usiamo nella pseudo programmazione:

MOVE DFHCOMMAREA TO WS-COMMAREA
IF EIBCALEN = 0
   STEP1: SEND MAP
   STEP2: MOVE <internal-transaction-id1> to WS-COMMAREA
   STEP3: ISSUE CONDITIONAL RETURN
ELSE
   IF WS-COMMAREA = <internal-transaction-id1> 
      STEP4: RECEIVE MAP
      STEP5: PROCESS DATA
      STEP6: SEND OUTPUT MAP
      STEP7: MOVE <internal-transaction-ID2> to WS-COMMAREA
      STEP8: ISSUE CONDITIONAL RETURN 
   END-IF
END-IF      
STEP9: REPEAT STEP3 TO STEP7 UNTIL EXIT

Esempio

L'esempio seguente mostra un programma di pseudo conversione:

******************************************************************
* PROGRAM TO DEMONSTRATE PSEUDO-CONVERSATION                     *
******************************************************************
IDENTIFICATION DIVISION.                                         
PROGRAM-ID. HELLO.                                               
DATA DIVISION.                                                   
WORKING-STORAGE SECTION.                                         
01 WS-MESSAGE          PIC X(30).                                
01 WS-COMMAREA         PIC X(10) VALUE SPACES.                    
LINKAGE SECTION.                                                 
01 DFHCOMMAREA         PIC X(10).                                 
PROCEDURE DIVISION.
   MOVE DFHCOMMAREA TO WS-COMMAREA
   IF  WS-COMMAREA  =  SPACES                                   
******************************************************************
* TRANSACTION GETTING EXECUTED FOR THE FIRST TIME                *
******************************************************************
   MOVE 'HELLO' TO WS-MESSAGE                               
   EXEC CICS SEND TEXT                                      
      FROM (WS-MESSAGE)                                   
   END-EXEC                                                 
   MOVE 'FIRST' TO WS-COMMAREA                              
******************************************************************
* TASK ENDS AS A RESULT OF RETURN. IF AID KEY PRESSED, NEXT      *
* TRANSACTION SHOULD BE TP002. DATA PASSED FROM WS-COMMAREA TO   *
* DFHCOMMAREA                                                    *
******************************************************************
   EXEC CICS RETURN                                         
      TRANSID('TP002')                                      
      COMMAREA(WS-COMMAREA)                                
   END-EXEC                                                 
******************************************************************
* IF  COMMAREA IS NOT EMPTY , THEN TP002 HAS BEEN EXECUTED ONCE  *
* ALREADY, USER INTERACTION IS FACILITATED BY RECEIVE            *
******************************************************************
   ELSE                                                         
      EXEC CICS RECEIVE                                        
         INTO(WS-MESSAGE)                                    
   END-EXEC
      EXEC CICS SEND TEXT                                      
      FROM (WS-MESSAGE)                                   
   END-EXEC                                                 
******************************************************************
* TASK ENDS AS A RESULT OF RETURN, NO NEXT TRANSACTION SPECIFIED *
* TO BE EXECUTED                                                 *
******************************************************************
   EXEC CICS RETURN                                         
   END-EXEC                                                 
END-IF.

Vantaggi della pseudo conversione

Di seguito sono riportati i vantaggi della pseudo conversione:

  • Le risorse vengono utilizzate al meglio. Le risorse vengono rilasciate non appena il programma viene temporaneamente sospeso.

  • Sembra che sia in modalità conversazionale.

  • Ha un tempo di risposta migliore.

Dichiarazioni di reso

Di seguito sono riportati i due tipi di istruzioni di restituzione utilizzate in CICS:

Ritorno-1

Quando viene emessa la seguente dichiarazione di restituzione incondizionata, l'attività e la transazione (programma) vengono terminate.

EXEC CICS RETURN 
END-EXEC.

Ritorno-2

Quando viene emesso il seguente ritorno condizionale, ovvero il ritorno con l'istruzione TRANSID, il controllo ritorna al CICS con il successivo transid da eseguire. La transazione successiva inizia quando l'utente preme un tasto AID.

EXEC CICS RETURN
   TRANSID ('trans-id')
   [COMMAREA(WS-COMMAREA)]
END-EXEC.