기본 환경설정

본 장에서는 시스템을 운영하기에 전에 필요한 환경설정과 설정 파일에 대해 기술한다.

1. 설정 파일

OpenFrame AIM을 사용하기 위해서는 AIM 관련 설정 파일과 OpenFrame 제품의 기반 환경을 구성하고 있는 Tmax 환경설정 파일을 통해 시스템 환경을 설정해야 한다.

1.1. OpenFrame AIM 설정 파일

AIM 시스템을 사용하기 위해서는 다음 파일의 설정이 필요하다.

설정 파일 설명

openframe_aim.conf

OpenFrame AIM 시스템에서 반드시 필요한 정보를 설정한다.

AIM 설정파일에 대한 자세한 사항은 OpenFrame AIM "환경설정 안내서"를 참고한다.

1.2. Tmax 환경설정 파일

OpenFrame AIM은 Tmax를 기반으로 동작한다. 따라서 OpenFrame AIM이 정상적으로 동작하기 위해서는 다음의 Tmax 환경설정 파일에 필요한 정보가 설정되어 있어야 한다.

설정 파일 설명

tmax.config

OpenFrame AIM 시스템에서 필요한 서버(시스템 서버와 애플리케이션 서버) 및 서비스를 등록한다.

해당 파일은 다음 경로에 저장된다.

$TMAXDIR/config

본 절에서는 OpenFrame AIM에 해당하는 Tmax 서버와 서비스 설정 내역에 관한 내용을 다루도록 한다. Tmax의 상세한 설명은 "Tmax 시작하기 안내서" 및 "Tmax 관리자 안내서"를 참고한다.

시스템 서버 및 서비스 설정

OpenFrame AIM의 서버는 기본 구조에서 설명한 시스템 레이어의 AIMOMSVR, AIMPRTSV, AIMDCMS, AIMIDCM 서버가 있고, 애플리케이션 레이어의 AIMAPSVR 서버가 있다. 본 절에서는 시스템 서버에 대해 설명한다.

다음은 OpenFrame AIM 시스템 서버들을 등록한 Tmax 설정 파일의 예제이다.

*SERVER
aimomsvr    SVGNAME = svg_domain,   MIN = 1, MAX = 1,
            CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err"
aimprtsv    SVGNAME = svg_domain,   MIN = 1, MAX = 1, SVRTYPE=UCS,
            CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err"
aimdcms     SVGNAME = svg_domain,   MIN = 1, MAX = 1, SVRTYPE=UCS,
            CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err"
aimidcm     SVGNAME = svg_domain,   MIN = 1, MAX = 1, SVRTYPE=UCS,
            CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err"

*SERVICE
################################################################################
#   aimomsvr                                                                   #
################################################################################
AIMOMADM        SVRNAME = aimomsvr
################################################################################
#   aimprtsv                                                                   #
################################################################################
AIMPRTNOTIFY    SVRNAME = aimprtsv
################################################################################
#   aimdcms                                                                    #
################################################################################
AIM             SVRNAME = aimdcms
DCMSCMND        SVRNAME = aimdcms
DCMSADMN        SVRNAME = aimdcms
WEBAIM          SVRNAME = aimdcms
WEBRELAY        SVRNAME = aimdcms
DCMSWSADMN      SVRNAME = aimdcms
################################################################################
#   aimidcm                                                                    #
################################################################################
SMR             SVRNAME = aimidcm
SMRADMIN        SVRNAME = aimidcm

위의 내용 중에 SVGNAME=svg_domain은 전체 노드 중에 한 곳에서만 구동되어야 한다는 것을 의미한다. SVGNAME=svg_node은 각 노드에 하나씩 구동되어야 한다는 것을 의미한다.

aimdcms의 경우 svg_domain이며 MIN=1, MAX=1로 설정되어 있으므로 전체 노드 내에서 하나의 서버만이 구동되어야 함을 의미한다. OpenFrame AIM 시스템에 필요한 Base 및 Batch 관련 서버 정상 기동 후 AIMOMSVR 서버와 AIMDCMS, AIMIDCM 서버가 기동되어야 한다(서버 구동 시에 순서대로 구동되어야 한다).

다음은 서버 구동 방법이다.

  1. OpenFrame AIM 시스템의 온라인 기능을 사용하기 위한 리소스를 적재할 ADL 테이블을 생성한다.

    [user@host]$ aiminit create -t [ADL용 테이블명] -st [SYSTEM용 테이블스페이스명] -lt [LOG용 테이블스페이스명]
  2. OpenFrame AIM 시스템에 필요한 Base 및 Batch 관련 서버를 포함하여 정해진 순서대로 구동한다.

    [user@host]$ tmboot -w
애플리케이션 서버 및 서비스 설정

OpenFrame AIM의 애플리케이션 서버를 등록한다.

해당 서버는 최초 시스템을 기동할 때 기동하지 않으며, 업무를 실행하기 위한 AIM 커맨드를 실행하면 기동되는 것을 확인할 수 있다.

*SERVER
aimapsvr    SVGNAME = svg_domain,   MIN = 0, MAX = 1, SVRTYPE=UCS,
            CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err"
*SERVICE
################################################################################
#   Application program service                                                #
################################################################################
OFSVC000        SVRNAME = aimapsvr

위의 내용은 aimacpgen 툴을 통해 ACP JCL 작성 내용을 테이블에 적재할 때 출력해준다. 출력한 내용을 Tmax 환경설정 파일에 적용시킨 후 aimap를 구동되도록 해야 한다.

다음은 서버 구동 방법이다.

  1. OpenFrame AIM 시스템의 온라인 기동에 사용하기 위한 리소스를 적재할 ACP JCL 테이블을 생성한다.

    [user@host]$ aiminit create -t [ADL용 테이블명] -st [SYSTEM용 테이블스페이스명] -lt [LOG용 테이블스페이스명]
  2. OpenFrame AIM 시스템의 온라인 기동에 사용하기 위한 ACP JCL 작성 내용을 aimacpgen을 이용하여 적재한다.

    [user@host]$ aimacpgen s -p [ACP JCL 파일명]
  3. OpenFrame AIM에서 AIM 커맨드를 이용하여 서버를 기동한다.

    [user@host]$ aimcmd -c 'START ACP,JOB=[JOB명]'

2. ACP JCL 리소스

OpenFrame AIM의 동작을 위해서는 ACP JCL 리소스를 저장할 DB 테이블을 생성하고, 각 테이블에 필요한 ACP JCL(Application Control Program Job Control Language) 정보를 등록해야 한다. ACP JCL은 Mainframe에서 업무를 실행시키기 위해 필요한 자원과 일련의 절차를 기술한 것이다.

ACP JCL 리소스 원본을 OpenFrame AIM에서 제공하는 툴 aimacpgen을 사용하여 작성 내용을 추출하고, 이를 ACP JCL 테이블에 등록한다.

다음은 MSP 타입의 ACP JCL을 작성한 OIVPJOB.jcl 파일 예제이다.

//OIVPJOB  JOB
//STEP1    EXEC PGM=JXGIJSM
//AIMPED   DD SUBSYS=(AIM,OIVPPED,OIVPAPG0,00)
//AIMPGM   DD DSN=SYS1.PGMLIB,DISP=SHR
//SYSOUT   DD SYSOUT=*
//AIMACPIN DD *
     JOB  NAME=OIVPJOB,DUMPL=1
     MQN  NAME=OIVPMQN
     APL  NAME=OIVPAP00
     APL  NAME=OIVPAP01
     APL  NAME=OIVPAP02
     APL  NAME=OIVPAP03
     APL  NAME=OIVPAP04
     APL  NAME=OIVPAP05
/*
//

다음은 XSP 타입의 ACP JCL을 작성한 OIVPJOB.jcl 파일 예제이다.

\ JOBG  TRNGRP,MULTI=128,PRTY=3,DVAL=(PRTY=3,ML=2)
\ JOB   OIVPJOB,LIST=(A,JD,STEP)
\ EX    JXGIJSM,VSPEC=VIRT,RSIZE=16M,PRTY=6,TIME=8388606,OPT=DDUMP
\ FD    AIMPED=SSI,SUBSYS=(AIM,OIVPPED,OIVPAPG0,00)
\ FD    AIMPGM=DA,FILE=OIVP.PGMLIB
\ FD    LIST=DA,SOUT=L
\ FD    AIMACPIN=*
     JOB  NAME=OIVPPED,DUMPL=1
     MQN  NAME=OIVPMQN
     APL  NAME=OIVPAP00
     APL  NAME=OIVPAP01
     APL  NAME=OIVPAP02
     APL  NAME=OIVPAP03
     APL  NAME=OIVPAP04
     APL  NAME=OIVPAP05
\ JEND
\ JGEND
\ FIN

MSP, XSP 문법에 대한 자세한 설명은 OpenFrame Batch "JCL 문법 안내서"를 참고한다.

다음은 aimacpgen –p 옵션을 사용하여 ACP JCL의 작성 내용을 추출 및 등록하는 예제이다.

[user@host]$ aimacpgen s -p OIVPJOB.jcl
  1. ACP JCL에 대한 자세한 설명은 OpenFrame AIM "리소스 안내서"를 참고한다.

  2. aimacpgen 툴의 자세한 내용은 OpenFrame AIM "툴 참조 안내서"를 참고한다.

3. ADL 리소스

OpenFrame AIM의 동작을 위해서는 ADL 리소스를 저장할 DB 테이블을 생성하고, 각 테이블에 필요한 ADL(AIM Description Language) 정보를 등록해야 한다. ADL은 시스템 전반에 걸친 환경을 정의하는 정의체이다.

OpenFrame AIM은 ADL 테이블에 등록된 ADL 정의를 참조하여 동작한다. ADL 정의는 OpenFrame AIM이 동작하는데 필수적인 정보이며, ADL 정의체를 관리하는 테이블은 OpenFrame AIM 운영에 필수이므로 반드시 생성해야 한다.

ADL 리소스 원본을 OpenFrame AIM에서 제공하는 툴 jxdddms를 사용하여 정의 내역을 추출하고, 이를 ADL 테이블에 등록한다.

figure 2 1
ADL 리소스의 위치

다음은 ADL의 PROCEDURE를 정의한 SAMPLE.txt 파일을 jxdddms를 사용하여 정의체를 적재하고 등록하는 예제이다.

PROCEDURE NAME           IS   TMAXPROC
              ; SCHEDULE TYPE       IS   SCHTYPE1
              ; COMMUNICATION TYPE  IS   MULTI SESSION
              ; TOP MENU            IS   TMAXMENU
              ; ABEND MESSAGE       IS   SYSTEM.
END.

다음은 jxdddms –p 옵션을 사용하여 ADL 정의를 추출 및 등록하는 예제이다.

[user@host]$ jxdddms s -p SAMPLE.txt
  1. ADL에 대한 자세한 설명은 OpenFrame AIM "리소스 안내서"를 참고한다.

  2. jxdddms 툴의 자세한 내용은 OpenFrame AIM "툴 참조 안내서"를 참고한다.

4. 경로 설정

본 절에서는 OpenFrame AIM을 운영하기 위해 설정해야 할 경로에 대해서 설명한다.

운영에 필요한 유틸리티 및 라이브러리

OpenFrame AIM을 운영하기 위해서 기본적으로 OpenFrame Base와 OpenFrame Batch가 설치되어 있어야 한다. 제품의 설치 방법 및 상세한 설명은 각각 제품의 설치 안내서를 참고한다.

OpenFrame 외에 필요한 유틸리티는 다음과 같다. 각 유틸리티의 설치 방법 및 설명은 해당 업체에서 제공하는 매뉴얼을 참고한다.

구분 설명

애플리케이션 컴파일러

COBOL 컴파일러로 NetCOBOL을 사용할 수 있다.

SORT 유틸리티

SORT 유틸리티는 ProSort, Syncsort, PowerSORT를 사용할 수 있다.

다음은 SORT 엔진으로 ProSort 제품을 설치하여 사용할 경우 해당 유틸리티의 사용에 필요한 환경변수를 등록한 .profile의 예제이다.

#SORT
export PROSORT_HOME=$HOME/prosort
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PROSORT_HOME/lib
export PATH=$PROSORT_HOME/bin:$PATH
리소스

애플리케이션을 실행시키는데 필요한 리소스의 경로를 지정한다. 필요한 리소스는 다음과 같다.

  • Copybook

    COBOL 프로그램이 사용하는 Copybook이 저장되어 있는 디렉터리의 위치를 지정한다. Copybook은 COBOL 애플리케이션을 OpenFrame AIM 상에서 사용할 수 있도록 전처리하고 컴파일하는 과정에서 필요로 하는 리소스이다.

    다음은 Copybook의 위치를 나타내는 환경변수 $COBCOPY를 정의하는 .profile의 예제이다.

    export COBCOPY=$OPENFRAME_HOME/cobcpy/mapcpy:$OPENFRAME_HOME/cobcpy/aplcpy:
    $OPENFRAME_HOME/cobcpy/subscpy:$OPENFRAME_HOME/aim/oivp/cpy