CICS-의사 프로그래밍

지금까지 비 전환 및 전환 프로그램을 다루었습니다. 변환 프로그램에는 다음과 같은 주요 단점이 있습니다.think time상당히 높습니다. 이 문제를 극복하기 위해 의사 변환 프로그래밍이 등장했습니다. 이제 의사 변환 프로그램에 대해 자세히 설명합니다.

의사 변환 프로그램

다음은 의사 변환 프로그램에서 발생하는 일련의 이벤트입니다.

  • Step 1 − 시스템은 화면에 메시지를 보내고 트랜잭션을 종료하고 사용자 입력이 수신 될 때 시작할 트랜잭션을 지정합니다.

  • Step 2− 시스템은이 트랜잭션이 사용하는 리소스를 시스템에서 실행중인 다른 트랜잭션에 할당합니다. 따라서 사용자가 입력을 제공 할 때까지 의사 변환 프로그램의 리소스를 활용할 수 있습니다.

  • Step 3− 시스템은 일정한 시간 간격으로 터미널 입력을 폴링합니다. 입력이 수신되면 처리되고 출력이 표시됩니다.

  • Step 4 − 응용 프로그램은 필요할 때 메인 스토리지에로드되고 사용하지 않을 때는 해제됩니다.

의사 변환 기법

의사 대화에서 주목해야 할 중요한 점은 모든 작업간에 데이터를 전달하는 것입니다. 데이터 전달 기술에 대해 논의 할 것입니다.

COMMAREA

COMMAREA는 통신 영역으로 알려져 있습니다. COMMAREA는 작업간에 데이터를 전달하는 데 사용됩니다. 다음 예제는 WSCOMMAREA 및 WS-COMMAREA-LENGTH가 Working Storage Section에서 선언 된 COMMAREA를 전달하는 방법을 보여줍니다.

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

DFHCOMMAREA

DFHCOMMAREA는 CICS가 모든 태스크에 제공하는 특수 메모리 영역입니다.

  • 한 프로그램에서 다른 프로그램으로 데이터를 전달하는 데 사용됩니다. 프로그램은 동일한 트랜잭션 또는 다른 트랜잭션에 존재할 수 있습니다.

  • 프로그램의 연계 섹션에서 01 레벨로 선언됩니다.

  • WS-COMMAREA와 동일한 그림 절이 있어야합니다.

  • MOVE 문을 사용하여 데이터를 DFHCOMMAREA에서 WS-COMMAREA로 다시 이동할 수 있습니다.

MOVE DFHCOMMAREA TO WS-COMMAREA.

맵을 보낸 후 작업이 종료되고 사용자 응답을 기다립니다. 이 단계에서 데이터를 저장해야합니다. 작업이 종료되었지만 트랜잭션이 종료되지 않았기 때문입니다. 이 트랜잭션을 재개하려면 작업의 이전 상태가 필요합니다. 사용자가 입력을 입력합니다. 이제 RECEIVE MAP 명령으로 수신 한 다음 유효성을 검사해야합니다. 다음 예제는 COMMAREA 및 DFHCOMMAREA를 선언하는 방법을 보여줍니다-

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

의사 코드

다음은 의사 프로그래밍에서 사용하는 의사 코드의 논리입니다.

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

다음 예는 의사 변환 프로그램을 보여줍니다.

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

의사 변환의 장점

다음은 의사 변환의 장점입니다-

  • 리소스를 가장 잘 활용합니다. 프로그램이 일시적으로 중단되는 즉시 리소스가 해제됩니다.

  • 대화 모드 인 것처럼 보입니다.

  • 응답 시간이 더 좋습니다.

반품 명세서

다음은 CICS에서 사용되는 두 가지 유형의 return 문입니다.

Return-1

다음과 같은 무조건 리턴 문이 발행되면 태스크와 트랜잭션 (프로그램)이 종료됩니다.

EXEC CICS RETURN 
END-EXEC.

리턴 -2

다음과 같은 조건부 리턴, 즉 return with TRANSID 문이 실행되면 제어는 실행될 다음 transid와 함께 CICS로 리턴됩니다. 다음 트랜잭션은 사용자가 AID 키를 누르면 시작됩니다.

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