제1장 소개

내용 목차

1.1. 개요
1.2. 내부 구조
1.3. 시스템 구성
1.4. 시스템 관리
1.4.1. 정적 관리
1.4.2. 동적 관리
1.5. 디렉터리 구성

본 장에서는 Tmax에 대한 개요, 내부 구조, 시스템 구성 등을 설명한다.

클라이언트/서버(Client/Server) 중심의 컴퓨팅 환경에서 클라이언트의 수가 증가함에 따라 머신(Machine)의 다양화, 운영체제와 데이터베이스의 혼재, 데이터 호환성 결여, 서버의 성능 저하 등의 문제점이 발생하고 있다.

Tmax는 이러한 문제점을 해결하고 프로세스 관리, 트랜잭션 관리, 부하 조절, 이기종 사이의 자원을 관리하는 등의 기능을 제공하기 위한 트랜잭션 처리 미들웨어(Middleware)이다.


  • 프로세스 관리

    서버 프로세스 기동, 업무분산, 프로세스 자동생성 등의 수행과정을 모니터링한다.

  • 트랜잭션 관리

    ACID 특성을 보장하도록 트랜잭션을 처리한다.

  • 부하 조절

    시스템 성능을 최적화하여 일정한 응답시간을 유도한다.

  • 이기종 자원 관리

    이기종 사이에 발생할 수 있는 여러 가지 문제점을 해결한다.

Tmax에는 내부적으로 9개의 운용 프로세스 (TMM, TMS, CLL, CLH, RQS, GW, CAS, TLM, HMS)와 4개의 관리 명령어(tmadmin, racd, tmboot, tmdown)가 존재한다.


도메인(Domain)은 하나의 동일한 환경 파일을 공유하는 Tmax 시스템의 구성단위이다. 도메인은 하나 이상의 노드(Machine)로 구성되며, 각 노드는 Peer-to-peer 방식으로 연결되어 있어, 일정한 시간 간격으로 다른 노드와 통신하여 환경 파일에 구성된 정보를 공유한다. 이러한 방법으로 각각의 노드가 도메인 전체의 상태와 도메인 내의 다른 모든 노드의 정보를 공유하고 있다. 따라서 클라이언트는 도메인 내의 어느 노드에 연결하더라도 도메인에서 제공하는 모든 서비스를 제공받을 수 있다.

클라이언트는 도메인을 구성하는 특정 노드에 연결될 수 있으며, 연결된 노드는 해당 클라이언트의 서비스를 담당한다. 클라이언트가 요청한 서비스가 연결된 노드에서 제공하는 것이면 연결된 노드가 서비스를 처리하고, 다른 노드에서 제공하는 것이면 클라이언트와 연결된 노드가 서비스를 제공하는 노드에 요청하여 처리 결과를 클라이언트에게 되돌려주는 역할을 담당한다.

다른 노드에서 제공되는 서비스를 클라이언트가 요청하는 경우에는 다음과 같은 흐름으로 처리된다.


클라이언트와 처음 연결(1)된 노드 Node A가 서비스를 제공하는 노드인 Node B와 통신하여 해당 서비스의 처리를 요청하고(2) 그 응답을 받아(3) 클라이언트에 돌려준다(4).

다음은 Tmax 세부 시스템 구성이다.


Tmax 시스템 관리는 크게 정적 관리와 동적 관리로 나뉜다.

시스템 정적 관리는 Tmax 시스템 환경설정을 통해서 이루어진다.

  • Tmax 환경 파일 컴파일

    Tmax 환경 파일을 작성한 후에는 컴파일 작업을 통해 환경 파일이 올바르게 작성되었는지 검증하는 과정이 필요하다. 환경 파일이 올바르게 작성되었다면 컴파일 과정을 통해 이진(binary) 형태로 변환된 Tmax 환경 파일이 만들어진다. 이렇게 만들어진 이진 Tmax 환경 파일은 Tmax 시스템을 기동하고 종료할 때 참조된다.

  • 서비스 테이블 생성

    Tmax 시스템에게 서비스의 종류와 위치를 알려주기 위해 작성한 환경 파일로 서비스 테이블을 생성하는 과정이 필요하다. 서비스 테이블은 환경 파일의 내용을 근거로 각 서버 프로세스별로 테이블 형태로 생성된다. 또한 개발자가 생성한 서버용 소스 프로그램과 함께 컴파일되어 서버의 실행 프로그램을 만드는 데 사용된다. 서비스 테이블을 링크하지 않은 실행 프로그램은 Tmax 시스템이 인식하지 못하므로 실행할 수 없다.

다음은 동적 관리와 관련된 기동과 종료, 시스템 동작 관리에 대한 설명이다.

  • 기동과 종료

    환경설정 작업이 완료되면 관리자는 Tmax를 기동할 수 있다. 시스템이 기동될 때 Tmax의 기능 프로세스인 TMM, CLL, CLH(데이터베이스가 관련되는 경우 TMS 프로세스가 포함되며, RQ가 관련된 경우 RQ 프로세스 포함된다.)뿐만 아니라 실질적인 업무처리 서버 프로세스도 포함된다. 업무처리 서버 프로세스가 별도로 동작하는 것이 아니라 기능 프로세스와 함께 기동 및 종료되며 Tmax 시스템에 의해 관리가 이루어진다.

  • 시스템 동작 관리

    Tmax 시스템이 동작 중일 때, 관리자는 각 구성 요소의 상태를 확인하고 필요한 경우 적절한 조치를 취할 수 있다. Tmax 시스템에서는 tmadmin이라는 콘솔 형태의 대화형 관리 도구를 사용하여 동작 상태 변경 등의 동적인 작업이 가능하다.

    • 각종 정보 출력

      tmadmin은 현재의 환경설정 정보를 확인할 수 있는 명령어를 제공한다. Tmax 관리자는 tmadmin에서 명령어와 옵션을 사용해 클라이언트(이름, 위치), 서버(위치, 그룹, 프로세스 상태, 수행 횟수), 서비스(위치, 상태, 처리시간, 수행 횟수, 적체된 데이터량), 네트워크(연결 노드, 파티션 노드) 등과 이 외에도 수행되고 있는 트랜잭션, 애플리케이션 파라미터 등에 대한 정보를 확인할 수 있다.

    • 동적 환경설정 변경

      관리자는 환경설정을 통해 시스템의 설정을 수정할 수 있다. 응답시간 초과(timeout), 처리 우선 순위(priority), 부하 조절(load) 값, 동작 불능 상태의 서버 프로세스 재시작(restart) , 서버 프로세스 종료, 종료된 프로세스의 재기동 등을 설정할 수 있다. 또한 운영 중인 서버 프로세스에 새로운 서비스를 동적으로 추가하는 기능을 제공한다.

    주의

    동적으로 변경된 Tmax 환경변수는 동작 중일 때는 변경된 내용이 적용되지만, 시스템을 종료(tmdown)하고 난 후 다시 기동(tmboot)하면 Tmax 환경 파일에 설정된 내용이 적용된다.

일반적으로 Tmax 시스템이 설치될 파일 시스템의 디렉터리 구성은 다음과 같다. 디렉터리는 시스템 환경변수나 Tmax 시스템 환경설정 파일의 항목에서 참조된다.

$Tmax HOME
|---- appbin
|---- bin
+---- sample
        +---- client
        +---- server
        +---- sdl
        +---- fdl 
|---- config
|---- lib
|---- license
+---- log
        |---- slog
        |---- tlog
        |---- ulog
|---- path
|---- svct
|---- usrinc
|---- bk_appbin 
$Tmax HOME

Tmax 시스템의 홈 디렉터리이다. (시스템 변수: TMAXDIR, 환경 파일 항목: TMAXDIR)

appbin

서버 프로세스가 위치하는 디렉터리이다. (환경 파일 항목: APPDIR)

bin

Tmax 시스템의 명령어/유틸리티를 포함하는 디렉터리이다.

sample

클라이언트와 서버의 샘플 프로그램을 저장하는 디렉터리이다.

서브 디렉터리설명
client클라이언트의 샘플 프로그램을 저장하는 디렉터리이다.
server서버의 샘플 프로그램을 저장하는 디렉터리이다.
sdl (optional)구조체 관련 파일을 저장하는 디렉터리이다. (시스템 변수: SDLFILE)
fdl (optional)필드키 관련 파일을 저장하는 디렉터리이다.
config

환경설정 파일을 저장하는 디렉터리이다.

lib

Tmax 라이브러리 파일을 저장하는 디렉터리이다.

license

라이선스 파일을 저장하는 디렉터리이다.

log
서브 디렉터리설명
slog시스템 로그 파일을 저장하는 디렉터리이다. (환경 파일 항목: SLOGDIR)
ulog사용자 로그 파일을 저장하는 디렉터리이다. (환경 파일 항목: ULOGDIR)
tlog트랜잭션 정보를 저장하는 디렉터리이다. (환경 파일 항목: TLOGDIR)
path

프로세스 간 내부 통신을 위한 named pipe가 생성될 디렉터리이다. (환경 파일 항목: PATHDIR)

svct

서비스 테이블 파일을 저장하는 디렉터리이다.

usrinc

Tmax 헤더 파일을 저장하는 디렉터리이다.

bk_appbin (optional)

현재 사용 중인 서버 프로세스를 새로운 프로세스로 변경하고자 할 때 새로운 프로세스가 설치될 디렉터리이다. (시스템 변수: TMAX_BKAPPDIR)