본 장은 COBOL로 프로그램을 개발하기 위한 환경설정 방법에 대해서 기술한다.
$TMAXDIR |--lib |--cobinc |--config |--ucblinc +--sample |-- cobserver |-- cobclient
COBOL 라이브러리 파일이 저장된다.
COBOL 헤더인 *.cbl 파일이 저장된다.
COBOL sample을 테스트할 수 있는 Tmax 환경 파일이 저장된다.
필드 버퍼를 사용하는 sample을 위해서 필요한 field key, view file 등이 위치한다.
폴더 | 설명 |
---|---|
cobserver | 서비스의 저장 경로이다. |
cobclient | 클라이언트의 저장 경로이다. |
Tmax 엔진의 설치에 대한 자세한 내용은 "Tmax Installation Guide"를 참고한다.
$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
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'로 대체한다.
환경 파일을 작성한다.
*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
안내서에서 사용하는 예제는 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