advanced search
 
 FAQ  Q&A  
> 질의응답 > FAQ > Tmax FAQ
- Tmax 처음 사용하기

 
제 품

Tmax

 

환 경

모든 플랫폼

 

상세질문

Tmax제품을 테크넷의 홈 > 다운로드 > 제품다운로드에서, Tmax 섹터의 버젼선택을 하여, 설치하였습니다.

물론 데모 라이센스도 홈 > 다운로드 > 라이센스신청에서 신청하여, 메일로 받아서 $TMAXDIR/license/license.dat 이름으로 두었습니다.

이후에 Tmax를 기동하고 샘플로 제공되어있는 서비스를 호출하기까지의 과정에 대해 알아봅니다.

 

 

답 변

 

1.      환경파일 컴파일 하기

1)       환경파일을 컴파일 하는 목적

가.    작성한 환경파일 검수

나.    gst,tmboot,tmdown,tmadmin에서 사용할 이진 환경파일 생성

2)       환경파일 컴파일 방법

(예) cfl –i sample.m

3)       환경파일 컴파일 결과

cfl 이 성공(CFL is done successfully for node(tmaxi2))하면 디폴트로 tmconfig 이진 환경파일이 생성됩니다.

 

 

2.      서비스 테이블 생성하기

1)       서비스 테이블 용도

가.    환경파일 서비스 절에 설정된 내용을 바탕으로 서버별 서비스정보를 가지고 있는 파일입니다.

나.    생성된 서비스테이블은 서버 실행파일을 생성할 때, 즉 make 과정에서 오브젝트 파일로 생성하여 어플리케이션 오브젝트파일과 각종 필요한  라이브러리와 함께 링크됩니다.

(참고) mksvr 유틸리티를 사용하여 Makefile을 작성하는 경우에는 Makefile에 설정되어있는 서비스정보를 바탕으로 서비스 테이블을 생성하며, 이때는 mksvr에 의해 서비스테이블이 생성됩니다. mksvr에 대해서는 다시 설명드리겠습니다. mksvr에 관한 FAQ를 이용해 주십시오.

 

2)       서비스 테이블 생성 방법

가.    gst 유틸리티를 사용

나.    Tmax 환경파일에 등록되어있는 서버명_svctab.c 이름으로 $TMAXDIR/svct/아래 생성됩니다.

다.    예를 들어, sample.m의 서버절(*SERVER)에 svr1, svr2, svr3, fdltest, sdltest가 등록이 되어있다면, svr1_svctab.c, svr2_svctab.c, svr3_svctab.c, fdltest_svctab.c, sdltest_svctab.c 이름으로 서비스 테이블이 생성됩니다.

 

 

3.      서버 프로그램 컴파일하기

1)       compile 스크립트

가.    compile 스크립트를 이용하여 서버별 Makefile을 만들지 않고 환경파일에 등록되어있는 서버명을 TARGET으로 주어 옵션에 따른 공통 Makefile을 사용할 수 있게 합니다.

나.    compile 뒤에 사용할 옵션은 c, sdl, pc, psdl 입니다.

다.    compile <옵션> <COMP_TARGET> 형식으로 이루어 집니다.

라.    COMP_TARGET은 Tmax 환경파일의 서버절에 등록되어있는 이름과 같아야 하며 어플리케이션 소스 파일명과 일치해야합니다.

마.    예를 들면, Tmax 환경파일 서버절에 svr2 라는 서버명이 등록되어있고, 어플리케이션 소스명이 svr2.c일 때, compile c svr2 라고 하며, compile이 성공하면, svr2라는 실행 파일이 만들어지고 Tmax에 의해 기동이 되어 TOUPPER, TOLOWER 서비스를 제공하는 svr2라는 프로세스가 되는 것입니다.

 

2)       Makefile 알아보기

가.    Makefile.c                         

      : libsvr, libnodb 라이브러리를 사용하는 서버 실행파일을 만드는 makefile

나.    Makefile.sdl                       

      : libsvr, libnodb라이브러리, 구조체 파일을 사용하는 서버 실행파일을 만드는 makefile

다.    Makefile.pc                       

      : libsvr, liboras 라이브러리를 사용하는 서버 실행파일을 만드는 makefile (DB 사용)

라.    Makefile.psdl                     

      : libsvr, liboras 라이브러리, 구조체 파일을 사용하는 서버 실행파일을 만드는 makefile (DB 사용)

 

3)       샘플 서버 프로그램 알아보기

가.    svr1.c                  

      : STRUCT 버퍼타입, 스트링 데이터 대소문자 변환 프로그램

나.    svr2.c                  

      : STRING 버퍼타입, 스트링 데이터 대소문자 변환 프로그램

다.    svr3.c                  

      : FIELD 버퍼타입, 스트링 데이터 대소문자 변환 프로그램

라.    fdltest.pc

      : FIELD 버퍼타입, DB emp 테이블 조회, 입력, 삭제, 수정 프로그램

마.    sdltest.pc             

      : STRUCT 버퍼타입, DB emp 테이블 조회, 입력, 삭제, 수정 프로그램

 

4)       서버 프로그램 컴파일하기

가.    compile sdl svr1   

      : 구조체 파일 사용 makefile(Makefile.sdl)로 svr1.c 어플리케이션 소스 파일을 컴파일

나.    compile c svr2                  

      : Makefile.c를 이용하여 컴파일

다.    compile c svr3                  

      : Makefile.c를 이용하여 컴파일

라.    compile pc fdltest 

      : Makefile.pc를 이용하여 pro*c컴파일

마.    compile psdl sdltest           

      : 구조체 파일 사용 pro*c makefile(Makefile.psdl) 로 sdltest.pc 어플리케이션 소스 파일 컴파일

 

 

4.      TMS (Transaction Management Server) 만들기

1)       tms_ora.mk

가.    TMS를 만들기위한 makefile로 libtms, liboras 라이브러리 사용

나.    Tmax 환경파일의 서버그룹절에 설정한 TMSNAME의 값을 TARGET으로 하여 tms 서버를 만듭니다.

2)       make –f tms_ora.mk

 

 

 

 

 

5.      Tmax 기동하기

1)       서버 실행파일 확인하기

가.    디폴트 설정 위치인 $TMAXDIR/appbin/디렉토리 아래, 환경파일에 정의한 실행파일들이 존재하는지 확인합니다.

나.    존재하지 않는다면 컴파일이 성공되지 않은 경우입니다.

다.    어플리케이션 소스파일을 컴파일하여 만들어진 실행파일과 tms 서버 파일은 Makefile 안에서 APPDIR로 옮겨지게끔 설정되어 있습니다.

라.    tmboot 명령어에 의해 APPDIR 아래에 있는 실행파일이 기동됩니다.

마.    APPDIR은 Tmax 환경파일의 노드절에 APPDIR이라는 항목으로 실행파일을 위치시킬 경로가 설정되어 있습니다.

 

2)       Tmax 핵심 프로세스 기동하기

가.    tmboot -T

나.    핵심 프로세스(TMM, CLL, CLH)와 tms가 기동됩니다.

다.    TMM(Tmax Manager)이 제일 먼저 기동됩니다.

라.    다음에 CLL(Client Listener), CLH(Client Handdler), TMS(Transacsion Management Server) 세 프로세스가 기동됩니다.

 

3)       Tmax 응용 프로세스 기동하기

가.    tmboot -A

나.    Tmax 환경파일 서버절에 등록되어있는 순서로 응용 서버 프로세스들이 기동됩니다.

다.    APPDIR 경로에 만들어지지 않은 실행파일을 기동하려고 하는 경우에는,

" (F) BOOT0014 exec error: /home/cutejaya/tmax/appbin/testsvr [BOOT0038]: No such file or directory " 라는 메시지가 출력됩니다.

 

4)       프로세스 확인하기

가.    ps –ef | grep 티맥스계정 : Tmax 계정이 올린 모든 프로세스 확인

나.    ps –ef | grep tmm

            

 

6.      Tmax 관리 툴 사용하기

1)       Tmax 관리 툴 실행하기

가.    tmadmin

나.    Tmax가 기동되어있는 상태에서 tmadmin 을 할 수 있습니다.

2)       기동되어있는 서버 프로세스 확인하기

가.    st –p

나.    tmadmin 안에서 st –p 명령어로 기동되어있는 서버 프로세스들을 확인할 수 있습니다.

다.    해당 명령어로 프로세스 개수를 튜닝할 수 있습니다. 즉, 프로세스가 5개 기동되어있는데, 두개만 일을 한다면 나머지 세개중에 두개 정도는 내려주어 메모리를 확보하는 것이 좋습니다.

3)       서비스 정보 확인하기

가.    st –s

나.    tmadmin 안에서 st –s 명령어로 서비스 상태를  확인할 수 있습니다.

다.    해당 명령어로 서비스를 튜닝할 수 있습니다. 즉, aq_count, aq_avg값을 확인하여 count 수가 많고 avg가 크다면 해당 서비스는 튜닝 대상입니다.

4)       Tmax 관리 툴 종료하기

가.    quit(q)

나.    강제종료 시, " TMM.83994.171906:(E) TMM2058 server abnormally closed: ADM, pid = 39378 [TMM0116] " 라는 메시지가 Tmax시스템 로그에 출력됩니다.

 

 

7.      서비스 수행하기

1)       클라이언트 환경변수 확인하기

가.    tmaxreadenv(“tmax.env”, “TMAX”);

나.    클라이언트 프로그램에서, 가)의 함수에 의해 tmax.env 파일에 있는 환경변수를 읽어들입니다.

다.    위의 함수가 없다면, 시스템 환경변수에 설정되어있는 값을 읽습니다. 즉, 유닉스는 .profile등의 파일에 설정되어있는 값을 읽고, 윈도즈는 시스템 환경변수를 참조합니다.

      클라이언트를 실행하기전, 유닉스는 echo $TMAX_HOST_PORT 로 확인하고, 윈도즈는 command 창에서 echo %TMAX_HOST_PORT% 로 확인하면 됩니다.

라.    TMAX_HOST_ADDR=ip address        

      : Tmax 서버의 ip 주소

마.    TMAX_HOST_PORT=port(TPORTNO) 

      : Tmax 서버가 기동할 때 사용한 포트번호로 Tmax환경파일의 TPORTNO의 값, 디폴트는 8888을 사용합니다. 환경파일에서 TPORTNO 값을 변경하였다면 환경변수의 값을 맞추어 주어야 합니다.

바.    SDLFILE=tmax.sdl 경로                    

      : 디폴트 경로는 $TMAXDIR/sample/sdl/tmax.sdl

사.    FDLFILE=tmax.fdl 경로                     

      : 디폴트 경로는 $TMAXDIR/sample/fdl/tmax.fdl

아.    TMAX_CONNECT_TIMEOUT=초        

      : 클라이언트가 Tmax 서버에 접속시 재시도를 할 수 있는 타임아웃값을 설정하는 환경변수입니다. 이 환경변수로 Tmax는 접속 시에 ip나 port가 달라서 접속이 되지 않는 경우 마냥 기다리지 않고 타임아웃에 의해 접속 실패 에러를 보여줍니다.

자.    Tmax 서버에 접속을 실패하면,  다음과 같은 메시지가 출력됩니다.

      (E) CLI3003 can't connect to main server: 100.100.100.100 [CLI0108][Stream ioctl timeout]

(E) CLI3004 can't connect to backup server: 100.100.100.101 [CLI0113]

tpstart failed [tperrno : 7, TPEOS]

 

2)       클라이언트 프로그램 컴파일

가.    compile c toupper, ~, compile c sdl_main

나.    클라이언트는 libcli 라이브러리 사용

 

3)       TOUPPER 서비스 호출

가.    toupper aaa

나.    출력 결과는 AAA

4)       SDLTOUPPER 서비스 호출

가.    sdltoupper aaa

나.    출력 결과는 AAA

5)       FDLTOUPPER 서비스 호출

가.    fdltoupper aaa

나.    출력 결과는 AAA

6)       SDLSEL 서비스 호출

가.    sdl_main

나.    Select Menu Number[0-4] : 2

다.    Employee Number : 7788

라.    emp 테이블 결과 조회

7)       FDLSEL 서비스 호출

가.    fdl_main

나.    Select Menu Number[0-4] : 2

다.    Employee Number : 7788

라.    Emp 테이블 결과 조회

 

 

8.      Tmax 종료하기

1)       Tmax 종료하기

가.    tmdown

나.    응용 서버 프로세스가 종료되고, Tmax 기능프로세스들, Tmax 핵심 프로세스가 종료되는데, TMM이 제일 나중에 종료됩니다.

 

 

 

  구조체 안에 구조체 사용
  tmadmin sort 기능 & 3.8.17 버젼에서 추가된 기능
▶ JEUS FAQ
▶ Tmax FAQ
▶ WebtoB FAQ
▶ Tibero FAQ