환경설정

본 장은 COBOL로 프로그램을 개발하기 위한 환경설정 방법에 대해서 기술한다.

1. 디렉터리 구조

다음은 COBOL 관련 디렉터리에 대한 설명이다.

$TMAXDIR
|--lib
|--cobinc
|--config
|--ucblinc
+--sample
     |-- cobserver
     |-- cobclient
lib

COBOL 라이브러리 파일이 저장된다.

cobinc

COBOL 헤더인 *.cbl 파일이 저장된다.

config

COBOL sample을 테스트할 수 있는 Tmax 환경 파일이 저장된다.

ucblinc

필드 버퍼를 사용하는 sample을 위해서 필요한 field key, view file 등이 위치한다.

sample

다음은 하위 폴더에 대한 설명이다.

폴더 설명

cobserver

서비스의 저장 경로이다.

cobclient

클라이언트의 저장 경로이다.

Tmax 엔진의 설치에 대한 자세한 내용은 Tmax Installation Guide를 참고한다.

COBOL 라이브러리 파일

$TMAXDIR/lib에는 COBOL용 라이브러리 파일이 존재해야 한다.

$ ls -l $TMAXDIR/lib/libcbl*
-rwx------1 tmax dba 252461 4월 22일 12:53 /user/tmax3815/lib/libcblc.so*
-rw-------1 tmax dba 351420 4월 22일 12:52 /user/tmax3815/lib/libcbls.a

2. 환경변수 설정

Tmax 시스템에서 COBOL로 서비스를 작성하기 위해서는 Tmax를 위한 환경설정, COBOL을 사용하기 위한 환경설정이 필요하다.

#####  Tmax system Environment

TMAXDIR=<Tmax가 설치된 path>
TMAX_HOST_ADDR=<Tmax가 설치된 머신의 ip address>
TMAX_HOST_PORT=<Tmax 시스템이 사용하는 port>
SDLFILE=$TMAXDIR/ucblinc/tmax.sdl
FDLFILE=$TMAXDIR/sample/fdl/tmax.fdl
PATH=$TMAXDIR/bin:$PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TMAXDIR/lib:$TMAXDIR/tuxlib
export TMAXDIR TMAX_HOST_ADDR TMAX_HOST_PORT
export SDLFILE FDLFILE PATH LD_LIBRARY_PATH

#####  MF Cobol Environment

COBCPY=$TMAXDIR/cobinc:$TMAXDIR/ucblinc
COBDIR=<Cobol compiler가 설치된 디렉터리의 path>
PATH=$PATH$COBDIR/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$COBDIR/lib
export COBCPY COBDIR PATH LD_LIBRARY_PATH

LD_LIBRARY_PATH 는 IBM AIX에서는 'LIBPATH'로, UP-UX에서는 'SHLIB_PATH'로 대체한다.

3. 환경 파일 설정

다음은 Tmax 환경 파일을 생성하는 과정이다.

  1. 환경 파일을 작성한다.

    *DOMAIN
    tmax1   SHMKEY =99990, TPORTNO=9389,  BLOCKTIME=60,
    MAXSVC=100, MAXSVR=50, MAXSPR=100, MAXTMS=10,IPCPERM=0666
    
    *NODE
    tmax5   TMAXDIR = "/user/tmax3815",
            APPDIR  = "/user/tmax3815/appbin",
            PATHDIR = "/user/tmax3815/path",
            TLOGDIR = "/user/tmax3815/log/tlog",
            ULOGDIR = "/user/tmax3815/log/ulog",
            SLOGDIR = "/user/tmax3815/log/slog"
    
    *SVRGROUP
    svg1    NODENAME = "edu25"
    
    ### tms for Oracle ###
    svg2    NODENAME = "edu25",     DBNAME = ORACLE,
            OPENINFO = "Oracle_XA+Acc=P/scott/tiger+SesTm=60 ",
            TMSNAME  = tms_ora
    
    *SERVER
    carray_nxa     SVGNAME = svg1, MIN=1, MAX=1,
                   CLOPT="-e $(SVR).err -o $(SVR).out -- scott tiger"
    svctpcall      SVGNAME = svg1, MIN=1, MAX=1,
                   CLOPT="-e $(SVR).err -o $(SVR).out"
    fdlins         SVGNAME = svg1, MIN=1, MAX=1,
                   CLOPT="-e $(SVR).err -o $(SVR).out"
    carray_xa      SVGNAME = svg2, MIN=1, MAX=1,
                   CLOPT="-e $(SVR).err -o $(SVR).out"
    
    *SERVICE
    CARRAYNXA      SVRNAME = carray_nxa        # carray buffer, non-xa
    FDLINS         SVRNAME = fdlins            # field buffer, non-xa
    CARRAYAUTO     SVRNAME = carray_xa,        # carray buffer, xa ,
                   AUTOTRAN=Y                    autotran이용
    CARRAYNAUTO    SVRNAME = carray_xa         # carray buffer, xa ,
                                                 명시적 transaction
    SVCTPCALL      SVRNAME = svctpcall         # carray buffer, use
                                                 tpcall in service
  2. 환경 파일을 컴파일하고 서비스 테이블을 생성한다.

    cfl이라는 명령어를 통해서 텍스트 형태의 Tmax 환경 파일을 바이너리 형태로 만든다. Tmax 환경 파일의 바이너리는 특정 디렉터리와 파일명을 지정하지 않으면, 자동으로 $TMAXDIR/config 디렉터리에 tmconfig라는 파일명으로 저장된다.

    $ cfl –i cobol.m
    $ls –l $TMAXDIR/config
    -rw-r--r-- 1 tmax dba 793256 4월 24일 09:50 cobol.m
    -rw-r--r-- 1 tmax dba 793256 4월 24일 09:50 tmconfig
    $ gst
    $ ls –l $TMAXDIR/svct
    -rw-r--r-- 1 tmax dba 385 4월 24일 17:50 carray_nxa_svctab.c
    -rw-r--r-- 1 tmax dba 491 4월 24일 17:50 carray_xa_svctab.c
    -rw-r--r-- 1 tmax dba 373 4월 24일 17:50 fdlins_svctab.c
    -rw-r--r-- 1 tmax dba 385 4월 24일 17:50 svctpcall_svctab.c

    TMS 파일 생성에 대한 자세한 내용은 Tmax Administration Guide를 참고한다.

  3. 엔진을 기동한다.

    $ tmboot –T
    TMBOOT for node(tmax5) is starting:
    TMBOOT: TMM is starting: Thu Apr 24 12:09:17 2003
    TMBOOT: CLL is starting: Thu Apr 24 12:09:17 2003
    TMBOOT: CLH is starting: Thu Apr 24 12:09:17 2003
    TMBOOT: TMS(tms_ora) is starting: Thu Apr 24 12:09:17 2003
    TMBOOT: TMS(tms_ora) is starting: Thu Apr 24 12:09:17 2003

4. Sample 파일 설치

안내서에서 사용하는 예제는 cobolsample.tar라는 파일명으로 제공된다. 제공되는 파일에는 환경 파일, 서버 프로그램, 서버 Makefile 및 sample로 제공되는 서비스가 정상적으로 작동하는지를 테스트할 수 있는 tmd 모듈들이 포함되어 있다. COBOL용 예제 파일은 Tmax 엔진이 이미 설치되어 있다는 것을 가정하고 COBOL용으로 필요한 부분만을 복사하므로 반드시 설치 후에 cobolsanmple.tar를 시스템에 설치한다.

$TMAXDIR에서 아래의 명령어를 통해서 예제 파일을 설치한다. 예제 파일은 tar로 묶여 있으므로 -xvf 옵션을 이용하여 디렉터리 구조대로 압축을 해제한다.

$ cd $TMAXDIR
$ tar -xvf cobolsample.tar
  x ./config/cobol.m, 1709 bytes, 4 tape blocks
  x ./ucblinc x ./ucblinc/viewdemo.v, 382 bytes, 1 tape blocks
  x ./ucblinc/viewdemo.h, 190 bytes, 1 tape blocks
  x ./ucblinc/VIEWDEMO.cbl, 671 bytes, 2 tape blocks ……
  x ./lib/libcblc.so, 252805 bytes, 494 tape blocks
  x ./lib/libcbls.a, 352024 bytes, 688 tape blocks
$ cd $TMAXDIR
$ tar -xvf cobolsample.tar
  x ./config/cobol.m, 1709 bytes, 4 tape blocks
  x ./ucblinc x ./ucblinc/viewdemo.v, 382 bytes, 1 tape blocks
  x ./ucblinc/viewdemo.h, 190 bytes, 1 tape blocks
  x ./ucblinc/VIEWDEMO.cbl, 671 bytes, 2 tape blocks
  ……
  x ./lib/libcblc.so, 252805 bytes, 494 tape blocks
  x ./lib/libcbls.a, 352024 bytes, 688 tape blocks