환경설정
본 장은 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 환경 파일을 생성하는 과정이다.
-
환경 파일을 작성한다.
*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
-
환경 파일을 컴파일하고 서비스 테이블을 생성한다.
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를 참고한다.
-
엔진을 기동한다.
$ 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