설치 검증

본 장에서는 OpenFrame/OSI의 정상 설치를 확인하기 위한 OSI IVP를 설명한다.

1. 소개

IVP(Installation Verification Procedure)는 제품 설치 과정에서 시스템이 정상적으로 구축되어 기본적인 기능이 동작하는지 검증하기 위하여 개발되었다. 기존에는 시스템에 문제가 발생했을 경우 운영자가 직접 설정을 모두 확인해야 했지만 현재는 IVP를 사용하여 보다 직관적이고 편리하게 문제점을 확인할 수 있다.

2. OSI IVP

OSI IVP는 인스톨러를 통해 기본 설치된다. 관련 샘플 파일은 OpenFrame/osi/oivp에서 확인할 수 있다.

다음은 OSI IVP의 환경설정, 애플리케이션 등록, 검증에 대한 설명이다.

2.1. 환경설정

OIVP를 운영하기 위한 Region(IMSA) 설정, 사용자 서버, OSI 데이터 셋의 리소스가 자동으로 생성된다. 모든 등록 절차에 필요한 기본 설치 파일은 인스톨러를 통해서 제공을 하고 있으며, OSI IVP 정상 동작을 위해서는 설치 파일을 수정하지 않고 그대로 사용하는 것을 권장한다.

다음은 시스템과 사용자 서버 설정, 관련 리소스들을 등록하는 순서이다.

  1. 시스템 서버 설정

    시스템 서버와 해당 서버에서 사용하는 서비스가 Tmax 환경 파일에 등록된다.

  2. 사용자 서버 설정

    사용자 서버와 해당 서버에서 사용하는 서비스가 Tmax 환경 파일에 등록된다.

  3. 리소스 정의 등록

    인스톨러에 포함된 osi_define.sh 스크립트는 데이터 셋을 등록한다.

    설치용 속성파일에서 자동으로 설치된 항목을 확인하고 필요한 경우 수동으로 스크립트를 실행 및 점검할 수 있다.

    다음의 $OPENFRAME_HOME/scripts/osi_define.sh 명령은 제품 설치 이후 IMSA Region 설정을 수행한다. idcams툴을 통하여 관련 데이터 셋이 생성된다.

    $ OPENFRAME_HOME/scripts/osi_define.sh

    다음은 해당 셸의 주요 세부 수행내용이다.

    idcams define -t CL -n OSI.IMSA.DEFLIB  -o KS -k 10,0 -l 100,32760 -s 1024,128,128 -v DEFVOL
    ${OPENFRAME_HOME}/bin/osisdgen osi_sdlib_COBOL.dat IMSA

    시스템 서버 설정, 사용자 서버 설정, 데이터 셋 생성에 대한 자세한 내용은 OpenFrame OSI "운영자 안내서"를 참고한다.

2.2. 애플리케이션 등록

환경설정이 완료되면 Map과 COBOL 소스코드를 컴파일한 후 등록된다.

Map과 COBOL 소스코드를 컴파일하고 등록하는 방법은 다음과 같은 순서대로 진행된다. 현재 인스톨러를 통해 자동으로 설치된다.

  1. Map 컴파일

    OSI IVP에서 사용하는 Map 파일을 복사하고 컴파일한다.

    다음의 $OPENFRAME_HOME/scripts/osi_ivp.sh 스크립트는 내에 OSI IVP Map을 생성하는 명령이 포함되어 있다.

    $ OPENFRAME_HOME/scripts/osi_ivp.sh

    다음은 해당 셸의 Map 컴파일 수행내용이다.

    #mapgen
    cd ${OPENFRAME_HOME}/osi/oivp/mfs/COBOL
    ${OPENFRAME_HOME}/bin/osimfsgen -m OSI.IMSA.MFSLIB OIVP001.TXT
    ${OPENFRAME_HOME}/bin/osimfsgen -m OSI.IMSA.MFSLIB OIVP002.TXT
    ${OPENFRAME_HOME}/bin/osimfsgen -m OSI.IMSA.MFSLIB OIVP003.TXT
    ${OPENFRAME_HOME}/bin/osimfsgen -m OSI.IMSA.MFSLIB OIVP004.TXT
    ${OPENFRAME_HOME}/bin/osimfsgen -m OSI.IMSA.MFSLIB OIVP005.TXT
    ${OPENFRAME_HOME}/bin/osimfsgen -m OSI.IMSA.MFSLIB OIVP006.TXT
    ${OPENFRAME_HOME}/bin/osimfsgen -m OSI.IMSA.MFSLIB OIVP014.TXT
    ${OPENFRAME_HOME}/bin/osimfsgen -m OSI.IMSA.MFSLIB OIVP015.TXT
    ${OPENFRAME_HOME}/bin/osimfsgen -m OSI.IMSA.MFSLIB OIVP024.TXT
  2. COBOL 소스코드 컴파일

    OSI IVP에서 사용하는 COBOL 소스파일을 컴파일한다.

    컴파일은 $OPENFRAME_HOME/osi/oivp/src/compile.sh 스크립트를 사용한다.

    $ OPENFRAME_HOME/osi/oivp/src/compile.sh

    다음은 해당 셸의 주요 세부 수행내용이다. (COBOL 샘플소스 기준)

    ofcob --enable-cbltdli --force-trace -o ${base}.so ${base}.cob
  3. 리소스 정보 등록 및 데이터 구조 Mapping

    IVP 리소스 정보(osi_sdlib.dat) 등을 등록하고 데이터 구조를 매핑하는 과정이 수행된다.

    $ OPENFRAME_HOME/scripts/osi_define.sh

    다음은 해당 셸의 리소스 정보 등록에 대한 세부 수행내용이다.

    #REGISTER SYSTEM DEFINITION
    cd ${OPENFRAME_HOME}/osi/resource/data
    ${OPENFRAME_HOME}/bin/vtamgen vtam.dat
    ${OPENFRAME_HOME}/bin/osisdgen osi_sdlib_COBOL.dat IMSA
  4. OSI 시스템 부팅

    다음은 OSI 시스템을 부팅하는 명령어이다.

    TMBOOT for node(NODE1) is starting:
            TMBOOT: TMM is starting: Thu Apr  8 19:12:08 2021
            TMBOOT: CLL is starting: Thu Apr  8 19:12:08 2021
            TMBOOT: CLH is starting: Thu Apr  8 19:12:08 2021
            TMBOOT: TLM(tlm) is starting: Thu Apr  8 19:12:08 2021
    [2021-04-08T19:12:08.892931] [osiboot(16341)          ] [M] [OSI7061M] System server(TPFMAGENT) booting ok
    [2021-04-08T19:12:08.896760] [osiboot(16341)          ] [M] [OSI7061M] System server(ofrsasvr) booting ok
    [2021-04-08T19:12:08.899698] [osiboot(16341)          ] [M] [OSI7061M] System server(ofrlhsvr) booting ok
    [2021-04-08T19:12:08.903173] [osiboot(16341)          ] [M] [OSI7061M] System server(ofrdmsvr) booting ok
    [2021-04-08T19:12:08.906781] [osiboot(16341)          ] [M] [OSI7061M] System server(ofrdsedt) booting ok
    [2021-04-08T19:12:08.910483] [osiboot(16341)          ] [M] [OSI7061M] System server(ofrcmsvr) booting ok
    [2021-04-08T19:12:08.914132] [osiboot(16341)          ] [M] [OSI7061M] System server(ofruisvr) booting ok
    [2021-04-08T19:12:08.918033] [osiboot(16341)          ] [M] [OSI7061M] System server(ofrsmlog) booting ok
    [2021-04-08T19:12:08.923688] [osiboot(16341)          ] [M] [OSI7061M] System server(obmjmsvr) booting ok
    [2021-04-08T19:12:08.930825] [osiboot(16341)          ] [M] [OSI7061M] System server(obmjschd) booting ok
    [2021-04-08T19:12:08.935196] [osiboot(16341)          ] [M] [OSI7061M] System server(obmjinit) booting ok
    [2021-04-08T19:12:08.941099] [osiboot(16341)          ] [M] [OSI7061M] System server(obmjhist) booting ok
    [2021-04-08T19:12:08.947371] [osiboot(16341)          ] [M] [OSI7061M] System server(obmjspbk) booting ok
    [2021-04-08T19:12:08.958199] [osiboot(16341)          ] [M] [OSI7061M] System server(ofrpmsvr) booting ok
    [2021-04-08T19:12:08.969419] [osiboot(16341)          ] [M] [OSI7061M] System server(obmtsmgr) booting ok
    [2021-04-08T19:12:08.979715] [osiboot(16341)          ] [M] [OSI7061M] System server(obmjtimr) booting ok
    [2021-04-08T19:12:08.990644] [osiboot(16341)          ] [M] [OSI7061M] System server(tmsvr) booting ok
    [2021-04-08T19:12:08.994759] [osiboot(16341)          ] [M] [OSI7061M] System server(osiomsvr) booting ok
    [2021-04-08T19:12:08.994781] [osiboot(16341)          ] [M] [OSI7051M] Booting process complete.

    다음은 Default Region(IMSA)을 부팅하는 명령어이다.

    $ tjesmgr r IMSACTL
    Input USERNAME  : ROOT
    >
    Command : [r IMSACTL]
    Node name :  A N Y
    (JOB00541) /home/oframe6/OpenFrame/volume_DEFVOL/SYS1.JCLLIB/IMSACTL is submitted as IMSACTL(JOB00541).
    
    $ imscmd IMSA /NRE
    IMS control region : [IMSA]
    Requested command  : [NRE]
    ----------------------------------------
    NRESTART COMMAND IN PROGRESS
    *21098/191312*
    ----------------------------------------
    Command '/NRE' execution done
    
    $ imscmd IMSA /START DC
    IMS control region : [IMSA]
    Requested command  : [START DC]
    ----------------------------------------
    START COMMAND COMPLETED
    *21098/191315*
    ----------------------------------------
    Command '/START DC' execution done
    
    $ imscmd IMSA /START REGION IMSAMSG
    IMS control region : [IMSA]
    Requested command  : [START REGION IMSAMSG]
    ----------------------------------------
    START COMMAND COMPLETED
    *21098/191318*
    ----------------------------------------
    Command '/START REGION IMSAMSG' execution done

Map 컴파일, COBOL 소스코드 컴파일, 엔진 기동 관련된 자세한 내용은 OpenFrame OSI "운영자 안내서"를 참고한다.

2.3. 검증

OSI IVP을 통한 검증은 MPP(Message Processing Program) 검증, BMP(Batch Message Processing program) 검증으로 나뉜다.

  • MPP 검증

    IVP로 Online 환경에서 메시지를 처리하는 프로그램을 검증하고, 각 절차에 따라 작업 내역을 확인할 수 있다.

  • BMP 검증

    실제 데이터 관리를 사용하고, OSI에서 사용자 데이터 셋에 액세스하여 확인할 수 있다. 사용자가 메시지 큐에 적재되어 있는 데이터를 실시간으로 처리하지 않고 JCL을 기동하여 JOB을 실행한 후 결과를 확인한다.

MPP 검증

OSI IVP에서는 개인 정보를 관리하는 애플리케이션을 통해 OSI에서 지원하는 리소스 및 명령어를 검증한다. OSI IVP를 시작하려면 터미널을 통해서 OSI 시스템에 접속을 한 후, /FOR 명령으로 IVP 프로그램을 호출한다.

터미널을 통해서 OSI 시스템에 다음과 같은 방법으로 접속한다.

IMSA <ENTER>

OSI 시스템 접속 후, IVP 프로그램을 다음과 같은 방법으로 호출한다. (COBOL 샘플소스 기준)

<CLEAR>
/FOR OIVP001O <ENTER>

다음은 IVP의 각 화면에서 사용되는 키와 키 기능 설명이다.

기능 적용 화면

CLEAR

시작 화면

전체

ENTER

다음 단계 진행

전체

다음은 OSI IVP 시작 화면이다.

figure b 2
OSI IVP 시작 화면

OSI IVP의 화면 구성은 크게 3부분으로 나뉜다.

  • 상단

    OpenFrame 시스템에서 제공하는 날짜 및 시간, 터미널 정보를 출력한다.

  • 중간

    실제 IVP 애플리케이션이 실행된다.

  • 하단

    저작권 정보를 표시한다.

OSI IVP는 4개의 화면(INQR, INSR, UPDT, DELT)으로 구성되며 CODE를 입력하여 해당 화면의 사용이 가능하다.

INQR, UPDT, DELT의 경우 FILE에 레코드가 존재해야 실행 가능하므로 INSR를 사용하여 레코드를 먼저 입력해야 한다.

  • INQR 화면

    INQR 화면은 파일에 저장된 특정 레코드를 보여준다. 시작 화면에서 CODE 값을 입력하여 액세스한다. 잘못된 CODE를 입력하면 시작 화면에서 에러가 발생한다.

    figure b 2
    OSI IVP INQR 화면
  • INSR 화면

    INSR 화면에서는 새 레코드를 입력한다. 레코드의 각 필드는 ACCOUNT, NAME, DATE, AMOUNT, INTEREST, TAX TYPE로 구성된다. 순차적으로 해당 항목을 기입하고 등록한다.

    figure b 3
    OSI IVP INSR 화면
  • UPDT 화면

    UPDT 화면에서는 기존 레코드를 수정한다. 시작 화면에서 CODE 값을 입력하여 액세스한다. 잘못된 CODE를 입력하면 시작 화면에서 에러가 발생한다.

    figure b 4
    OSI IVP UPDT 화면
  • DELT 화면

    DELT 화면에서는 입력되어 있는 기존 레코드를 삭제한다. 시작 화면에서 CODE 값을 입력하여 액세스한다. 잘못된 CODE를 입력하면 시작 화면에서 에러가 발생한다.

    figure b 5
    OSI IVP DELT 화면
BMP 검증

BMP 검증은 데이터 셋에 누적된 메시지를 확인하는 것이다. tjesmgr 툴로 JOB을 수행하고 해당 로그 정보를 확인할 수 있다.

다음은 tjesmgr 명령으로 JCL을 수행하는 BMP를 활용하는 과정이다.

  1. tjesmgr 를 실행한다.

    $ tjesmgr
  2. JCL 수행을 위하여 boot 명령을 수행하고, IMSABMP2를 동작(RUN)시킨다.

      Tmax JES Manager 7.1
    +--------------------------------------------------------------------------------
    |
    | JOB  ID    : JOB00543      NODE NAME  : NODE1
    | JOB  NAME  : OSIBMPT
    | JOB  CLASS : A , JOB STATUS : Done(R00000) , JOB PRTY : 5 , JCLRUNNER INDEX : 5
    | JOB  USER  : ROOT
    | JCL  PATH  : /home/oframe6/OpenFrame/volume_DEFVOL/SYS1.JCLLIB/IMSABMP2
    | TIME STAMP : READY : 20210408/19:14:29, START : 20210408/19:14:30
    |                                         END   : 20210408/19:14:31
    | RES  USAGE : PROCESS - 1s CPU - (0s,0%)  MEM - 0Byte
    |
    | STEP LIST  :
    | ----------------------------------------------------------------------------
    | [  TSTEP1] START : 20210408/19:14:30, RC=R0000, CPU - 0s (0s)
    | ----------------------------------------------------------------------------
    |
    | SPOOL LIST :
    | ---------------------------------------------------------------------------
    | NO  STEP              DDNAME       SIZE  DSNAME
    | ---------------------------------------------------------------------------
    | 0   --------          INPJCL         214 INPJCL
    | 1   --------          SYSMSG          1K SYSMSG
    | 2   --------          CATPROC         0  CATPROC
    | 3   --------          CONVJCL        211 CONVJCL
    | 4   --------          JESMSG         730 JESMSG
    | 5   --------          JESJCL         824 JESJCL
    | 6   TSTEP1            SYSOUT          2K oframe6.OSIBMPT.JOB00543.D000001
    | -----------------------------------------------------------------------------
    |
    | OUTPUT PROCESSING STATUS : all outputs were processed
  3. tjesmgr의 PODD @j di=6 명령을 이용하여 INQR된 정보를 확인하고 업데이트 상황을 조회할 수 있다.

    |Command : [podd @j di=5]
    [2021-04-08T19:14:30.609042] [DFSRRC00(16835)         ] [M] [RRC0901M] DFSRRC00 PROGRAM START
    [2021-04-08T19:14:30.609077] [DFSRRC00(16835)         ] [M] [RRC0903M] INITIALIZE BMP REGION
    [2021-04-08T19:14:30.609226] [DFSRRC00(16835)         ] [M] [RRC0906M] SHARED OBJECT TYPE
    [2021-04-08T19:14:30.609626] [DFSRRC00(16835)         ] [M] [RRC0921M] CHILD PROCESSID - pid=16841
    [2021-04-08T19:14:30.609827] [DFSRRC00(16841)         ] [D] [DEBUGP1D] path=/home/oframe6/OpenFrame/core//appbin/osibmpsv
    [2021-04-08T19:14:30.649096] [osibmpsv(16841)         ] [M] [OSI0291M] IMSA server boots - resource manager initialization starts
    [2021-04-08T19:14:30.650632] [osibmpsv(16841)         ] [M] [OSI0101M] osimfs version: 7.2.0(4) obuild@tplinux64:ofsrc71/osi(#1) 2021-03-26 14:11:10
    [2021-04-08T19:14:30.652909] [osibmpsv(16841)         ] [M] [OSI0291M] IMSA server boots - resource manager initialization completed
    [2021-04-08T19:14:30.671149] [osibmpsv(16841)         ] [M] [OSI5251M] osibmpsv initialization ok
    [2021-04-08T19:14:30.671185] [osibmpsv(16841)         ] [M] [OSI5263M] DFSRRC00 PARM : MBR=OIVPIL02
    [2021-04-08T19:14:30.671192] [osibmpsv(16841)         ] [M] [OSI5263M] DFSRRC00 PARM : PSB=OIVPIL02
    [2021-04-08T19:14:30.671197] [osibmpsv(16841)         ] [M] [OSI5263M] DFSRRC00 PARM : IN=OIVPBMP2
    [2021-04-08T19:14:30.671203] [osibmpsv(16841)         ] [M] [OSI5263M] DFSRRC00 PARM : OUT=
    [2021-04-08T19:14:30.671208] [osibmpsv(16841)         ] [M] [OSI5263M] DFSRRC00 PARM : IMSID=IMSA
    [2021-04-08T19:14:30.671216] [osibmpsv(16841)         ] [M] [OSI5263M] DFSRRC00 PARM : AGN=
    [2021-04-08T19:14:30.684645] [osibmpsv(16841)         ] [M] [OSI2010M] pgmpath : /home/oframe6/OpenFrame/volume_DEFVOL/OSI.IMSA.STEPLIB/OIVPIL02.so
    MSG-COUNT : [00001]
    BEFORE GU
    MESSAGE EXIST
    ------------------[ INQUIRY ]-------------------
    ACCOUNT   : [          ]
    ------------------------------------------------
    MSG-COUNT : [00002]
    BEFORE GU
    MESSAGE EXIST
    MSG-COUNT : [00001]
    BEFORE GU
    MESSAGE NOT EXIST
    [2021-04-08T19:14:30.749841] [osibmpsv(16841)         ] [M] [OSI0202M] IMSA server downs - resource manager finalization starts
    [2021-04-08T19:14:30.749893] [osibmpsv(16841)         ] [M] [OSI0202M] IMSA server downs - resource manager finalization completed
    [2021-04-08T19:14:30.752047] [DFSRRC00(16835)         ] [M] [RRC0922M] CHILD TERMINATE - RC=R0000
    [2021-04-08T19:14:30.756974] [DFSRRC00(16835)         ] [M] [RRC0902M] DFSRRC00 PROGRAM FINISH

TJES 유틸리티에 대한 자세한 내용은 OpenFrame Batch "TJES 안내서"를 참고한다.