설치 검증

본 장에서는 OpenFrame Batch(이하 Batch)를 설치한 후 COBOL을 사용해 설치를 검증하기 위한 방법에 대해 설명한다.

1. 개요

Batch 시스템은 JCL로 작성된 JOB을 실행하기 위한 시스템이며 메인프레임에서 실행되던 Batch JOB을 동일하게 실행하는 TJES 환경을 제공한다.

2. 설치 검증 절차

다음은 COBOL을 사용해 설치를 검증하는 방법이다.

  1. 서버 기동

    tmadmin 툴을 사용해 Batch JOB을 수행하기 위한 서버가 기동 되어 있는지 확인한다.

    $ tmamdin
    
    --- Welcome to Tmax Admin (Type "quit" to leave) ---
    
    $$1 NODE1 (tmadm): si
    ------------------------------------------------------------------------
      clh   svrname    (svri)   status     count   qcount   qpcount  emcount
    ------------------------------------------------------------------------
        0   TPFMAGENT  (   4)      RDY         0        0         0        0
        0   ofrsasvr   (   5)      RDY         0        0         0        0
        0   ofrlhsvr   (   6)      RDY         0        0         0        0
        0   ofrdmsvr   (   7)      RDY         0        0         0        0
        0   ofrdsedt   (   8)      RDY         0        0         0        0
        0   ofrcmsvr   (   9)      RDY         0        0         0        0
        0   ofruisvr   (  10)      RDY         0        0         0        0
        0   ofrsmlog   (  11)      RDY         0        0         0        0
        0   obmjmsvr   (  12)      RDY         0        0         0        0
        0   obmjschd   (  13)      RDY         1        0         0        0
        0   obmjinit   (  14)      RDY         2        0         0        0
        0   obmjhist   (  15)      RDY         0        0         0        0
        0   obmjspbk   (  16)      RDY         0        0         0        0
        0   ofrpmsvr   (  17)      RDY         0        0         0        0
        0   obmtsmgr   (  18)      RDY         0        0         0        0
  2. COBOL 작성

    문자열을 출력하는 기본 COBOL을 작성한다. COBOL이 작성되었다면 NetCOBOL을 통해 컴파일한 후 등록한다. 예시는 다음과 같다.

           IDENTIFICATION                     DIVISION.
           PROGRAM-ID.                        COBOLA.
           AUTHOR.                            COBOLA.
           ENVIRONMENT                        DIVISION.
           DATA                               DIVISION.
           WORKING-STORAGE                    SECTION.
           PROCEDURE                         DIVISION.
    
           DISPLAY '  ***   BATCH JOB TEST   *** '.
  3. JCL 작성

    위에서 작성한 COBOLA(COBOL 프로그램)을 호출하는 XSP JCL을 작성한다. 예시는 다음과 같다.

    \ JOB TEST
    \ EX  COBOLA
    \ FD  PRGLIB=DA,FILE=PROD.BATCHLIB
    \ FD  LIST=DA,SOUT=A
    \ JEND
  4. JOB Submit

    tjesmgr run 옵션을 사용해 JOB을 submit한다. submit 한 JOB은 START 상태로 JOBQ에 적재되며 PS 명령어를 통해 JOBQ에 적재된 JOB을 확인할 수 있다.

    tjesmgr RUN TEST NODE=NODE1
    
    >
    Command : [RUN /home/binstall64/OpenFrame/volume_DEFVOL/SYS1.JCLLIB/TEST NODE=NODE1]
    Node name : NODE1
    (JOB00405) /home/binstall64/OpenFrame/volume_DEFVOL/SYS1.JCLLIB/TEST is submitted as TEST(JOB00405).
  5. JOB Status 확인

    tjesmgr 툴의 옵션을 통해 JOB status를 확인하고 JOB에 대한 상세 정보를 확인할 수 있다.

    • tjesmgr PSJ [ JOBID ] 명령어를 통해 JOB이 Done(R00010)으로 종료된 것을 확인한다.

      JOB  ID    : JOB00405      NODE NAME  : NODE1
      JOBG NAME  : SYSGRP        JOB  NAME  : TEST
      JOB  CLASS : A , JOB STATUS : Done(R00010) , JOB PRTY : 0 , JCLRUNNER INDEX : 0
      JOB  USER  : ROOT
      JCL  PATH  : /home/binstall64/OpenFrame/volume_DEFVOL/SYS1.JCLLIB/TEST
      TIME STAMP : READY : 20240502/18:18:32, START : 20240502/18:20:05
                                              END   : 20240502/18:20:07
      RES  USAGE : PROCESS - 2s CPU - (0s,0%)  MEM - 0Byte
      
      STEP LIST  :
      -
      [        ] START : 20240502/18:20:06, RC=R0010, CPU - 0s (0s)
      -
      
      SPOOL LIST :
      -
      NO  STEP              DDNAME       SIZE  DSNAME
      -
      0   -                 INPJCL          88 INPJCL
      1   -                 SYSMSG          1K SYSMSG
      2   -                 EXPJCL          88 EXPJCL
      3   -                 JESMSG         723 JESMSG
      4   -                 JESJCL         665 JESJCL
      5                     LIST            1K ROOT.TEST.JOB00405.D000001
      -
      OUTPUT PROCESSING STATUS : all outputs were processed
    • tjesmgr PODD [JOBID] [DI=<dd-index> | DN=<dd-name>] 명령어를 통해 COBOL의 DISPLAY 문으로 출력된 데이터가 Spool에 표시되는지 확인한다.

      [2024-05-02T18:20:06.124268] [OSAMFRUN(3837195) ] [D] [DEBUGP0D] Application without PED
      [2024-05-02T18:20:06.124286] [OSAMFRUN(3837195) ] [D] [DEBUGP0D] Application without APG
      [2024-05-02T18:20:06.133110] [OSAMFRUN(3837195) ] [M] [AIM0302M] AMS has been initialized.
      [2024-05-02T18:20:06.133128] [OSAMFRUN(3837195) ] [M] [AIM0302M] DDMS has been initialized.
      [2024-05-02T18:20:06.134617] [OSAMFRUN(3837195) ] [D] [DEBUGP1D] TSAM connection was successfully established.
      [2024-05-02T18:20:06.134626] [OSAMFRUN(3837195) ] [D] [DEBUGP0D] [DB_CONN] Check the conn_cd value
      [2024-05-02T18:20:06.134631] [OSAMFRUN(3837195) ] [D] [DEBUGP1D] - CONN CD : 1
      [2024-05-02T18:20:06.134698] [OSAMFRUN(3837195) ] [D] [DEBUGP1D] osamfrun_ap_init: argument given()
      [2024-05-02T18:20:06.135094] [OSAMFRUN(3837195) ] [D] [DEBUGP1D] [AP_EXEC]looking for handle(COBOLA)
      [2024-05-02T18:20:06.135106] [OSAMFRUN(3837195) ] [D] [DEBUGP1D] Run the COBOLA application
        ***   BATCH JOB TEST   ***
      [2024-05-02T18:20:06.135534] [OSAMFRUN(3837195) ] [D] [DEBUGP1D] The COBOLA application is terminated.
      [2024-05-02T18:20:06.135875] [OSAMFRUN(3837195) ] [D] [DEBUGP1D] TSAM was successfully disconnected.