설치 및 제거

본 장에서는 OpenFrame OSI 제품의 설치 및 설치 검증, 설치 제거 방법에 대하여 기술한다.

1. 설치

본 절에서는 OSI 인스톨러를 이용해서 자동 설치하는 방법과 스크립트를 이용한 수동 설치하는 방법에 대해서 설명한다.

1.1. 인스톨러를 이용한 자동 설치

설치용 속성 파일에서 설명한 설치용 속성 파일을 작성했다면, 인스톨러를 이용하여 간단하게 OSI 제품을 설치할 수 있다.

다음의 설치방법은 모든 플랫폼에서 동일하게 적용된다.

  1. OSI를 설치할 시스템의 원하는 위치에 인스톨러 바이너리 파일를 복사한다.

  2. 인스톨러 바이너리에 실행권한이 주어지지 않은 경우에는 다음과 같이 chmod 명령어를 사용하여 실행권한을 부여한다.

    다음은 Linux x86 64 Bit용 인스톨러 바이너리에 실행권한을 부여하는 예이다.

    $ chmod a+x OpenFrame_OSI7_2_Linux_x86_64.bin
  3. 콘솔 프롬프트에서 해당 인스톨러 바이너리가 있는 디렉터리에서 다음과 같이 수행한다.

    <installer_file_name> -f <configuration_file_name>

    다음은 설치용 속성 파일을 osi.properties로 작성해서 실행하는 방법이다. 다음 2가지 방법 중 하나를 선택하고 <Enter> 키를 누른다.

    • 방법 1

      $ ./OpenFrame_OSI7_2_Linux_x86_64.bin -f osi.properties
    • 방법 2

      $ sh OpenFrame_OSI7_2_Linux_x86_64.bin -f osi.properties
  4. 다음과 같은 화면이 나타나고 자동으로 OSI의 설치를 진행한다.

    Preparing to install...
    Extracting the JRE from the installer archive...
    Unpacking the JRE...
    Extracting the installation resources from the installer archive...
    Configuring the installer for this system's environment...

1.2. 스크립트를 이용한 수동 설치

설치 스크립트 파일들은 ${OPENFRAME_HOME}/scripts 디렉터리에 위치하며, 현재 인스톨러에 의해 다음 순서대로 스크립트가 자동 실행된다. 설치 과정에서 스크립트 동작이 외부 환경요인으로 인해 일부 비정상 동작했을 경우 OpenFrame 설치 완료후 수동으로 스크립트를 실행해야 한다. 반드시 다음 순서에 맞춰 스크립트를 실행해야 한다.

  1. link_lib_osi.sh

    OSI에서 제공하는 라이브러리들의 symbolic link 작업을 수행한다.

  2. osi_ofconfig.sh

    openframe_osi.conf, openframe_osi_IMSA.conf 환경 파일을 import 한다.

  3. osi_init.sh

    OSI에서 사용하는 DB 테이블을 생성한다.

  4. osi_mv_copybook.sh

    IMSA Region에서 사용하는 데이터 셋을 생성할 때 사용하는 copybook을 OpenFrame 환경설정에 ds 서브젝트, TSAM_RDB 섹션의 COPYBOOK_PATH 키에 설정되어 있는 위치로 이동시킨다. OpenFrame 환경설정에 대한 자세한 내용은 OpenFrame OSI "환경설정 안내서"를 참고한다.

  5. osi_define.sh

    OSI 시스템에 필요한 맵과 데이터셋들을 생성하고 리소스를 등록한다.

  6. osi_ivp.sh

    OIVP 테스트에 필요한 맵과 COBOL 소스를 컴파일하고 리소스를 등록한다.

인스톨러에 의해 실행되는 스크립트들의 수행결과는 ${OPENFRAME_HOME}/UninstallerData/log/install_OSI.log에 저장된다.

2. 설치 확인

OSI를 설치한 후에는 다음의 과정을 실행하여 제품이 정상적으로 설치되었는지 확인할 것을 권장한다.

2.1. 디렉터리 확인

OSI 제품을 설치한 후 다음 디렉터리를 확인한다. OSI의 경우 OpenFrame Base, OpenFrame Batch, OpenFrame HiDB 가 설치된 이후에만 설치가 가능하므로 해당 제품이 설치된 후 생성된 디렉터리를 기준으로 설명한다.

${OPENFRAME_HOME}
   +---- UninstallerData
   +---- bin
   +---- config
   +---- core
   +---- cpm
   +---- data
   +---- include
   +---- lib
   +---- license
   |---- log
         +---- cmd
         +---- data
         +---- sys
   +---- ofdb_scripts
   |---- osi
         +---- oivp
         +---- resource
   +---- outputq
   +---- profile
   +---- sample
   +---- schema
   +---- scripts
   +---- shared
   +---- spbackup
   +---- spool
   +---- spunpack
   +---- temp
   +---- tsam
   +---- util
   +---- volume_DEFVOL
   +---- webde
UninstallerData

시스템에 설치되어 있는 OpenFrame 독립 제품을 각각 삭제하기 위한 파일들이 위치하는 디렉터리이다.

bin

OSI에서 사용하는 각종 실행 파일들이 위치하는 디렉터리이다.

config

OSI에서 사용하는 환경설정 파일들이 위치하는 디렉터리이다. 환경설정에 대한 자세한 설명은 OpenFrame OSI "환경설정 안내서"를 참고한다.

core

OpenFrame에서 사용하는 Tmax 관련 파일들이 위치한다. OpenFrame을 구성하는 Tmax 서버 프로그램, 서비스 프로그램 및 Tmax 설정 파일을 포함한다.

cpm

문자코드 변환 테이블 파일들이 위치한다.

data

에러코드 테이블 및 Lock 서버에서 사용하는 데이터 파일들이 위치한다.

include

업무 애플리케이션을 컴파일할 때 사용될 헤더 파일들이 위치한다.

lib

OSI에서 사용하는 라이브러리 파일들이 위치하는 디렉터리이다.

license

OpenFrame의 독립 제품이 사용하는 라이선스 파일들이 위치한다. 다음은 OpenFrame의 라이선스 파일의 종류이다.

파일명 설명

licbase.dat

Base 라이선스 파일

lictjes.dat

Batch(TJES) 라이선스 파일

lictacf.dat

TACF 라이선스 파일

lichidb.dat

HiDB 라이선스 파일

licosc.dat (MVS)

OSC 라이선스 파일

licosi.dat (MVS)

OSI 라이선스 파일

licaim.dat (AIM)

AIM 라이선스 파일

log

OpenFrame의 독립 제품이 생성하는 로그 파일들이 위치한다. log의 하위 디렉터리로 로그 파일의 종류에 따라 cmd, sys, data가 있다. 자세한 내용은 OpenFrame Base "Base 안내서"의 "로그 관리"를 참고한다.

디렉터리명 설명

cmd

OpenFrame의 조작 로그가 위치한다.

sys

OpenFrame의 시스템 로그가 위치한다.

data

OpenFrame의 데이터 로그가 위치한다.

ofdb_scripts

TSAM / NDB / HiDB 사용에 필요한 템플릿과 스크립트가 위치한다.

osi

다음은 하위 디렉터리에 대한 설명이다.

하위 디렉터리 설명

oivp

OSI의 IVP 샘플 애플리케이션 파일들이 위치하는 디렉터리이다.

resource

OSI의 시스템 설정 파일, XA 관련 설정 및 JCL 샘플 등이 위치하는 디렉터리이다.

outputq

실제 프린트되기 위한 출력용 데이터가 저장되는 디렉터리이다. 멀티노드로 구성하는 경우에는 shared 디렉터리의 하위 디렉터리로 구성하는 것을 권장한다.

profile

OpenFrame의 사용자별 프로파일이 위치한다.

sample

OpenFrame 제품의 예제 파일들이 위치한다.

schema

cobgensch, pligensch 툴로 생성한 데이터셋 스키마 파일이 저장되는 디렉터리이다.

scripts

OSI를 설치, 삭제 할 때 필요한 스크립트 파일들이 위치하는 디렉터리이다.

shared

OpenFrame 독립 제품이 모두 공유하는 공통 디렉터리이다.

spbakup

Spool 데이터 셋 백업용 디렉터리이다.

spool

Spool 데이터 셋이 저장되는 디렉터리이다. 멀티노드로 구성하는 경우에는 shared 디렉터리의 하위 디렉터리로 구성하는 것을 권장한다.

spunpack

백업된 Spool 데이터를 restore하는 디렉터리이다.

temp

OpenFrame에서 임시작업 파일이 위치한다.

tsam

OpenFrame 에서 사용하는 TSAM 관련 정보를 관리하는 디렉터리이다.

util

OSI 시스템에서 사용하는 유틸리티가 위치한다.

volume_DEFVOL

OpenFrame의 여러 제품에서 기본 볼륨으로 사용하는 디렉터리이다.

webde

OpenFrame에서 사용하는 WEBDE 관련 정보를 관리하는 디렉터리이다.

2.2. 기동 확인

다음은 OSI의 기동을 확인하는 순서이다.

  1. 설치용 속성 파일에서 스크립트 자동생성 옵션을 모두 YES로 선택했다면 ${OPENFRAME_HOME}/UninstallerData/log/install_OSI.log 파일을 텍스트 데이터로 직접 열어 오류 로그가 없는지 확인한다.

    Add oframe_osi.m
    Run link_lib_osi.sh
    #### osi_ofconfig.sh START ####
    boot and tacflogin
    Logged-in as [ROOT]
    
    TMBOOT for node(NODE1) is starting:
    (E) BOOT3005 Tmax is already running [BOOT0008]
    Dataset lock flag disable (Only during OSI installation)
    COMPLETED SUCCESSFULLY.
    COMPLETED SUCCESSFULLY.
    create error code & config
    COMPLETED SUCCESSFULLY!
    COMPLETED SUCCESSFULLY.
    COMPLETED SUCCESSFULLY.
    #### osi_ofconfig.sh END ####
    
    #### osi_init.sh START ####
    osiinit version 7.2.0(4) obuild@tplinux32:ofsrc7/osi(#1) 2008-02-21 20:10:57
    Initialize OpenFrame OSI System Tables
    
    Creating OFM_OSI_MQ_MASTER...
     > "OFM_OSI_MQ_MASTER" created...
    Creating OFM_OSI_MQ...
     > "OFM_OSI_MQ" created...
    Creating OFM_OSI_MQ_SEQ...
     > "OFM_OSI_MQ_SEQ" created...
    Creating OFM_OSI_MQ_BMP...
     > "OFM_OSI_MQ_BMP" created...
    Creating OFM_OSI_MQ_BMP_SEQ...
     > "OFM_OSI_MQ_BMP_SEQ" created...
    Creating OFM_OSI_MQ_TRIGGER...
     > "OFM_OSI_MQ_TRIGGER" created...
    Creating OFM_OSI_REGION...
     > "OFM_OSI_REGION" created...
    Creating OFM_OSI_SD_DATABASE...
     > "OFM_OSI_SD_DATABASE" created...
    Creating OFM_OSI_SD_APPLCTN...
     > "OFM_OSI_SD_APPLCTN" created...
    Creating OFM_OSI_SD_TRANSACT...
     > "OFM_OSI_SD_TRANSACT" created...
    Creating OFM_OSI_SD_TRANSACT_IDX1...
     > "OFM_OSI_SD_TRANSACT_IDX1" created...
    Creating OFM_OSI_SD_TERMINAL...
     > "OFM_OSI_SD_TERMINAL" created...
    Creating OFM_OSI_SD_LTERM...
     > "OFM_OSI_SD_LTERM" created...
    Creating OFM_OSI_SD_LTERM_IDX1...
     > "OFM_OSI_SD_LTERM_IDX1" created...
    Creating OFM_OSI_RTSD_DATABASE...
     > "OFM_OSI_RTSD_DATABASE" created...
    Creating OFM_OSI_RTSD_APPLCTN...
     > "OFM_OSI_RTSD_APPLCTN" created...
    Creating OFM_OSI_RTSD_TRANSACT...
     > "OFM_OSI_RTSD_TRANSACT" created...
    Creating OFM_OSI_RTSD_TRANSACT_IDX1...
     > "OFM_OSI_RTSD_TRANSACT_IDX1" created...
    Creating OFM_OSI_RTSD_TERMINAL...
     > "OFM_OSI_RTSD_TERMINAL" created...
    Creating OFM_OSI_RTSD_LTERM...
     > "OFM_OSI_RTSD_LTERM" created...
    Creating OFM_OSI_RTSD_LTERM_IDX1...
     > "OFM_OSI_RTSD_LTERM_IDX1" created...
    Creating OFM_OSI_MODSTAT...
     > "OFM_OSI_MODSTAT" created...
    Creating OFM_OSI_CI...
     > "OFM_OSI_CI" created...
    
    #### osi_init.sh END ####
    
    ...
    
    acbgen version 7.2.0(4) obuild@tplinux32:ofsrc7/ims(#2) 2007-11-10 10:43:12
    Application Control Block Generation Program
    
    ACBGEN COMMAND=BUILD,OPERAND=(PSB=ALL),ACBLIB=IMS.ACBLIB
    ------------------------------------------------------------
    *** ACBGEN DELETE PSB=ALL
    ------------------------------------------------------------
    *** ACBGEN DELETE PSB=ALL SUCCESS
    ------------------------------------------------------------
    ------------------------------------------------------------
    *** ACBGEN BUILD PSB=ALL
    ------------------------------------------------------------
    *** ACBGEN BUILD PSB=ALL SUCCESS
    ------------------------------------------------------------
    PROGRAM COMPLETED SUCCESSFULLY.
    acbgen version 7.2.0(4) obuild@tplinux32:ofsrc7/ims(#2) 2007-11-10 10:43:12
    Application Control Block Generation Program
    
    ACBGEN COMMAND=COPY,OPERAND=(),ACBLIB=IMS.ACBLIB
    ACBGEN COPY SUCCESS
    ------------------------------------------------------------
    *** ACBGEN DELETE PSB=ALL
    ------------------------------------------------------------
    *** ACBGEN DELETE PSB=ALL SUCCESS
    ------------------------------------------------------------
    ------------------------------------------------------------
    *** ACBGEN COPY PSB=ALL
    ------------------------------------------------------------
    ------------------------------------------------------------
    PROGRAM COMPLETED SUCCESSFULLY.
    Dataset lock flag enable
    COMPLETED SUCCESSFULLY.
    COMPLETED SUCCESSFULLY.
  2. ${OPENFRAME_HOME}/license에 OSI 라이선스가 들어있는지 확인한다.

  3. osiboot를 실행하여 OpenFrame을 기동한다.

    $ osiboot
  4. 다음과 같이 기동 화면이 오류없이 출력되는 것을 확인한다.

    TMBOOT for node(NODE1) is starting:
            TMBOOT: TMM is starting: Thu Apr  8 18:16:12 2021
            TMBOOT: CLL is starting: Thu Apr  8 18:16:12 2021
            TMBOOT: CLH is starting: Thu Apr  8 18:16:12 2021
            TMBOOT: TLM(tlm) is starting: Thu Apr  8 18:16:12 2021
    [2021-04-08T18:16:12.437356] [osiboot(9402)           ] [M] [OSI7061M] System server(TPFMAGENT) booting ok
    [2021-04-08T18:16:12.440478] [osiboot(9402)           ] [M] [OSI7061M] System server(ofrsasvr) booting ok
    [2021-04-08T18:16:12.443474] [osiboot(9402)           ] [M] [OSI7061M] System server(ofrlhsvr) booting ok
    [2021-04-08T18:16:12.446754] [osiboot(9402)           ] [M] [OSI7061M] System server(ofrdmsvr) booting ok
    [2021-04-08T18:16:12.451046] [osiboot(9402)           ] [M] [OSI7061M] System server(ofrdsedt) booting ok
    [2021-04-08T18:16:12.455364] [osiboot(9402)           ] [M] [OSI7061M] System server(ofrcmsvr) booting ok
    [2021-04-08T18:16:12.459852] [osiboot(9402)           ] [M] [OSI7061M] System server(ofruisvr) booting ok
    [2021-04-08T18:16:12.464157] [osiboot(9402)           ] [M] [OSI7061M] System server(ofrsmlog) booting ok
    [2021-04-08T18:16:12.471293] [osiboot(9402)           ] [M] [OSI7061M] System server(obmjmsvr) booting ok
    [2021-04-08T18:16:12.475912] [osiboot(9402)           ] [M] [OSI7061M] System server(obmjschd) booting ok
    [2021-04-08T18:16:12.480158] [osiboot(9402)           ] [M] [OSI7061M] System server(obmjinit) booting ok
    [2021-04-08T18:16:12.490924] [osiboot(9402)           ] [M] [OSI7061M] System server(obmjhist) booting ok
    [2021-04-08T18:16:12.500370] [osiboot(9402)           ] [M] [OSI7061M] System server(obmjspbk) booting ok
    [2021-04-08T18:16:12.510117] [osiboot(9402)           ] [M] [OSI7061M] System server(ofrpmsvr) booting ok
    [2021-04-08T18:16:12.517094] [osiboot(9402)           ] [M] [OSI7061M] System server(obmtsmgr) booting ok
    [2021-04-08T18:16:12.521643] [osiboot(9402)           ] [M] [OSI7061M] System server(obmjtimr) booting ok
    [2021-04-08T18:16:12.527060] [osiboot(9402)           ] [M] [OSI7061M] System server(tmsvr) booting ok
    [2021-04-08T18:16:12.533321] [osiboot(9402)           ] [M] [OSI7061M] System server(osiomsvr) booting ok
    [2021-04-08T18:16:12.533343] [osiboot(9402)           ] [M] [OSI7051M] Booting process complete.
  5. tmadmin을 실행한 후 si 명령어로 서버목록을 출력하여 모든 서버 프로세스가 정상적으로 기동되었는지 확인한다.

    아래 예와 같이 osi.ofsys.seq에 지정된 서버들과 osiomsvr 서버까지 RDY 상태로 표시되면 제품이 정상적으로 설치되어 기동되고 있다는 것을 의미한다. 그 이외의 서버들은 Control Region을 기동하거나, BMP 작업이 수행 중일 때 자동으로 기동된다.

    $ tmadmin
    --- 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
        0   obmjtimr   (  19)      RDY         0        0         0        0
        0   tmsvr      (  20)      RDY         0        0         0        0
        0   osiomsvr   (  21)      RDY         0        0         0        0
        0   osisschd   (  22)      NRDY        0        0         0        0
        0   osicmdsv   (  23)      NRDY        0        0         0        0
        0   OSIMPPSVR  (  24)      NRDY        0        0         0        0
        0   osibmpsv   (  25)      NRDY        0        0         0        0
        0   IMSASCHD   (  26)      NRDY        0        0         0        0
        0   IMSACMMD   (  27)      NRDY        0        0         0        0
        0   IMSAMPP_TCL1 (  28)      NRDY        0        0         0        0
        0   IMSAMPP_TCL2 (  29)      NRDY        0        0         0        0
        0   IMSAMPP_TCL3 (  30)      NRDY        0        0         0        0
        0   IMSAMPP_TCL4 (  31)      NRDY        0        0         0        0

3. 제거

OSI는 인스톨러에서 제공하는 제거 유틸리티를 실행해서 제거할 수 있다.

다음은 OSI를 제거하는 과정이다.

  1. 설치된 제품을 제거하기 전에 먼저 Region 서버(Control Region, 사용자 서버)가 기동되어 있는 경우 imscmd를 이용하여 Region을 종료한다.

    $ imscmd IMSA /CHE FREEZE
  2. Region 서버를 종료하고, osidown 명령을 실행하여 OpenFrame을 종료한다.

    $ osidown
  3. 다음과 같이 오류없이 종료 메시지가 출력되는지 확인한다.

    20180908:182629 I OSI7141I [20:     OSIDOWN: 0: 13817:   67] System server(OSIGW001) shutdown ok
    20180908:182629 I OSI7141I [20:     OSIDOWN: 0: 13817:   67] System server(tmsvr) shutdown ok
    20180908:182629 I OSI7141I [20:     OSIDOWN: 0: 13817:   67] System server(obmjtimr) shutdown ok
    20180908:182629 I OSI7141I [20:     OSIDOWN: 0: 13817:   67] System server(obmtsmgr) shutdown ok
    20180908:182629 I OSI7141I [20:     OSIDOWN: 0: 13817:   67] System server(obmjspbk) shutdown ok
    20180908:182629 I OSI7141I [20:     OSIDOWN: 0: 13817:   67] System server(obmjhist) shutdown ok
    20180908:182629 I OSI7141I [20:     OSIDOWN: 0: 13817:   67] System server(obmjschd) shutdown ok
    20180908:182629 I OSI7141I [20:     OSIDOWN: 0: 13817:   67] System server(obmjinit) shutdown ok
    20180908:182629 I OSI7141I [20:     OSIDOWN: 0: 13817:   67] System server(obmjmsvr) shutdown ok
    20180908:182629 I OSI7141I [20:     OSIDOWN: 0: 13817:   67] System server(ofrpmsvr) shutdown ok
    20180908:182629 I OSI7141I [20:     OSIDOWN: 0: 13817:   67] System server(ofrsmlog) shutdown ok
    20180908:182629 I OSI7141I [20:     OSIDOWN: 0: 13817:   67] System server(ofruisvr) shutdown ok
    20180908:182629 I OSI7141I [20:     OSIDOWN: 0: 13817:   67] System server(ofrcmsvr) shutdown ok
    20180908:182629 I OSI7141I [20:     OSIDOWN: 0: 13817:   67] System server(ofrdsedt) shutdown ok
    20180908:182629 I OSI7141I [20:     OSIDOWN: 0: 13817:   67] System server(ofrdmsvr) shutdown ok
    20180908:182629 I OSI7141I [20:     OSIDOWN: 0: 13817:   67] System server(ofrlhsvr) shutdown ok
    20180908:182629 I OSI7141I [20:     OSIDOWN: 0: 13817:   67] System server(ofrsasvr) shutdown ok
    Do you really want to down whole Tmax? (y : n):
        TMDOWN for node(NODE1) is starting:
        TMDOWN: CLL downed: Sat Sep  8 18:26:29 2018
        TMDOWN: TLM downed: Sat Sep  8 18:26:29 2018
        TMDOWN: CLH downed: Sat Sep  8 18:26:29 2018
        TMDOWN: TMM downed: Sat Sep  8 18:26:29 2018
        TMDOWN: TMAX is down
  4. OpenFrame이 종료된 것을 확인한 후 UNIX 콘솔에서 ${OPENFRAME_HOME}/UninstallerData 디렉터리에 있는 Uninstall_Osi 파일을 실행한다.

    $ ./Uninstall_Osi
  5. 설치 제거 프로그램에 의해 OSI 설치 시 생성된 파일들이 모두 삭제되고, 해당 환경의 Tmax 설정에서 OSI가 모두 제거한다.

4. 제거 확인

설치 제거 프로그램이 OSI를 설치할 때 생성한 파일에 대해서만 삭제하므로 불필요하게 남아 있는 디렉터리 및 파일들은 수동으로 삭제해야 한다.