명령어

본 장에서는 Tmax에서 사용할 수 있는 명령어를 설명한다.

1. cfl

텍스트 형태의 Tmax 환경 파일을 컴파일하여 tmconfig(이진 Tmax 환경 파일)을 생성하는 명령어이다. 프로그램을 동작시키기 위해서는 프로그램에 맞는 환경 파일 정의가 필요하고 환경 파일의 정의가 완료된 후엔 환경 파일이 올바르게 생성되었는지 검증이 이루어져야 한다. cfl은 텍스트 형태로 작성된 Tmax 환경 파일을 이진 파일로 컴파일하는 명령어이다.

컴파일하는 중에 에러가 발견되면 이진 환경 파일을 만들지 않고 컴파일을 중단된다. 에러가 발견되지 않으면 이진 파일로 변환된 Tmax 환경 파일이 생성된다. 컴파일이 완료된 이진 Tmax 환경 파일은 gst, tmboot, tmdown 등에서 사용한다. 멀티 노드 환경에서 특정 노드의 환경 파일을 컴파일하고 싶은 경우에 [-n node_name] 옵션을 사용한다.

다음은 멀티 노드 감시 환경을 설명한다.

figure 1 1
멀티 노드 감시 환경

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ cfl [-i 텍스트 Tmax 환경 파일명] [-o 이진 Tmax 환경파일명] [-h] [-V]
          [-n node_name] [-A] [-v num] [-I] [-r] [-x] [-P] [-g]
    항목 설명

    [-i 텍스트 Tmax 환경 파일명]

    컴파일 대상이 되는 원본 설정 파일인 텍스트 형태의 Tmax 환경 파일명을 설정한다. 디렉터리는 사용자가 지정할 수 있으며 지정하지 않았을 경우에 기본적으로 환경설정 디렉터리는 ${TMAXDIR}/config이다.

    원본 설정 파일을 찾지 못한 경우에는 경고 메시지를 출력한다.

    [-o 이진 Tmax 환경파일명]

    컴파일 결과물인 이진 Tmax 환경 파일명을 설정한다.

    경로와 함께 지정할 수 있으며, 경로가 지정되지 않은 경우 ${TMAXDIR}/config에 이진 Tmax 환경 파일이 생성된다. 옵션이 생략되면 파일명은 tmconfig로 생성된다.

    [-h]

    명령어 도움말 옵션이다.

    [-V]

    실행 파일의 버전을 확인할 수 있다.

    [-n node_name]

    멀티 노드 환경에서 특정 노드의 환경 파일을 컴파일하고 싶은 경우에 사용하는 옵션이다. 멀티 노드 환경에서 다른 노드를 관리하기 위해서는 racd를 설정해야 한다.

    [-A]

    서비스 접근 제어(제3단계 보안)를 사용할 때만 유효한 옵션이다.

    하나의 도메인 내에 있는 ACL 서비스에 대한 접근 권한은 모든 노드에서 동일하게 적용되어야 하므로 현재 노드의 ${TMAXDIR}/config/group, acl, user 파일을 같은 도메인에 속해 있는 다른 노드들의 ${TMAXDIR}/config에 배포해 주기 위한 옵션이다. 옵션을 사용하여 환경 파일을 컴파일할 경우에는 미리 mkgrp, mkpw, mkacl을 이용하여 group, acl, user 파일이 생성되어 있어야 한다.

    생성된 파일은 하나의 도메인 내에 있는 모든 노드들이 공용으로 사용하기 때문에 파일을 생성할 때 도메인에 속하는 노드의 모든 사용자를 고려해야 한다. group_name, group_id, user_name, user_id는 한 도메인을 통틀어서 유일하게 생성해야 한다. passwd 파일은 복사되지 않으므로 노드별로 생성하거나, 별도로 복사해야 한다.

    [-v num]

    num에는 0과 1을 지정할 수 있다.

    • 0 : 멀티 노드를 구성하고 있는 노드가 모두 같은 타입의 머신이며 관리자가 노드별로 환경 파일을 관리하는 경우에 0으로 설정한다. 컴파일된 이진 파일은 각각의 머신으로 복사해서 관리한다.

    • 1 : racd를 통해서 환경 파일이 자동적으로 머신에서 컴파일된다. (기본값)

    [-I]

    기본적으로 cfl을 수행할 때 환경 파일 DOMAIN 절의 SHMKEY 항목에 설정한 값이 현재 사용 중이라면 해당 값의 UID를 비교하며, 다를 경우 에러 메시지가 발생한다. 해당 옵션은 공유 메모리 값의 현재 사용 여부 및 UID 동일 여부를 체크하지 않을 때 사용한다.

    [-r]

    cfl 수행 단계에서 ulimit –n으로 조회할 때 출력되는 현재 시스템의 사용 가능한 FD 최대 수를 미리 체크하여 사용자에게 알려준다. CLH 1개당 열 수 있는 최대 FD 개수를 미리 계산하여 체크한다.

    Tmax 시스템에서 사용하는 FD 값이 시스템에서 사용 가능한 FD보다 더 크게 설정되어 있다면 다음과 같은 에러가 발생한다.

    (E) CFL9990 Current Tmax configuration contains more servers or nodes than current system can support[CFL5056]

    [-a Tmax 환경파일명]

    동적 추가할 수정된 Tmax 환경 파일명을 지정한다.

    동적 추가의 경우 cfl을 이용하여 이진(binary) 환경 파일을 만들 때에는 [-a] 옵션을 반드시 사용해야 한다. 만약 이 옵션을 사용하지 않고 동적 추가한 경우에는 (E) TMAX00157 에러가 발생한다. 자세한 내용은 Tmax Administration Guide의 cfgadd(ca)를 참고한다.

    [-Z]

    현재 cfl에서 MAXSACALL/MAXCACALL 1024 이하 제한되어 있으나, 이 제한을 해제하는 옵션이다.

    예)

    - cfl -Z -i sample.m

    [-x]

    SERVER 절 설정의 TARGET 및 CLOPT의 -x 옵션을 사용할 때 존재하는 서버, 서비스명인지 체크한다.

    • SERVER 절의 TARGET 설정에 환경 파일에서 선언되지 않은 서버명이 설정되었을 때 다음과 같은 에러 메시지를 출력한다.

      line %d(서버가 선언된 라인): invalid target server name %s(TARGET에 설정한 서버명)
    • SERVICE 절의 CLOPT 설정에 환경 파일에서 선언되지 않은 서비스명으로 -x 옵션이 설정되었을 때 다음과 같은 에러 메시지를 출력한다.

      line %d(서버가 선언된 라인): invalid service name %s(-x로 설정한 서비스명)

    라인 번호는 TARGET이나 CLOPT가 설정된 라인이 아닌, 서버가 선언된 라인이 출력된다.

    예)

    - cfl -x -i sample.m

    [-P]

    전체 공유 메모리의 크기를 조회하는 옵션이다.

    shmsize info:
    shmkey = 80001, shmsize = 552652
    shmkey = 80002, shmsize = 111968
    shmkey = 80003, shmsize = 120224
    shmkey = 80004, shmsize = 8192
    shmkey = 80005, shmsize = 0

    [-g]

    서로 다른 게이트웨이에 동일한 RGWADDR, RGWPORTNO을 지정할 수 있도록 하는 옵션이다. 모든 게이트웨이 타입에 적용된다.

  • 적용 환경

    Tmax 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다.

  • 예제

    • 다음은 /user1/tmax/temp 디렉터리에 있는 <basic> Tmax 환경 파일(텍스트 형태)을 컴파일하여 현재 디렉터리에 기본값으로 <tmconfig>라는 이진 Tmax 환경 파일을 생성하는 예제이다.

      $ cfl -i /user1/tmax/temp/basic
    • 다음은 디렉터리의 <ex_config>라는 텍스트 형태의 Tmax 환경 파일을 컴파일하여, /user1/tmax/bin 디렉터리에 <tmconfig>라는 이름으로 이진 Tmax 환경 파일을 생성하는 예제이다.

      $ cfl -i ex_config -o /user1/tmax/bin/tmconfig

gst, tmboot, tmdown 명령어에 대한 자세한 내용은 각각 gst, tmboot, tmdown을 참고한다.

2. fdlc

필드 키 테이블을 컴파일하는 명령어이다. 필드 키 방식은 서버와 클라이언트 사이의 데이터 통신에서 구조체를 전송하는 방법처럼 전체 구조체의 항목을 전달하지 않고 필요한 항목만 전달한다. 항목을 전달하기 위해서는 각각의 항목을 구별할 수 있는 유일한 키가 있어야 한다. fdlc는 텍스트 형태로 정의된 필드키 테이블을 컴파일하여 필드 키를 생성하는 명령어이다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ fdlc {-a|c|d|u} [-f] [-h 헤더 파일명] {-i 필드 키 테이블 파일명}
           [-jc|ji] [-o 결과물 이름] [-p 패키지명] [-x] [-r 출력파일명][-V]
    항목 설명

    {-a}

    생성된 이진 형태의 파일에, 텍스트로 작성된 필드 키 테이블을 컴파일하여 필요한 부분을 추가하는 옵션이다.

    [-f] 옵션을 사용하여 대상 파일을 지정하며 기본 파일은 <tmax.fdl>이다. 중복되는 필드의 경우에 대해서는 새로운 값으로 대체된다.

    {-c}

    텍스트로 작성된 필드 키 테이블을 컴파일하여 이진 형태의 파일을 생성한다. 이미 이진 파일이 존재하면 새로운 내용을 대체한다. (기본값)

    {-d}

    생성된 이진 형태의 파일에 텍스트로 작성된 필드 키 테이블을 컴파일하여 필요한 부분을 삭제한다.

    [-f] 옵션을 사용하여 대상 파일을 지정하며 기본 파일은 <tmax.fdl>이다.

    {-u}

    생성된 이진 형태의 파일에 텍스트로 작성된 필드 키 테이블을 컴파일하여 필요한 부분을 수정하거나 추가하는 옵션이다.

    [-f] 옵션을 사용하여 대상 파일을 지정하며 기본 파일은 <tmax.fdl>이다.

    [-f]

    텍스트로 작성된 필드 키 테이블을 컴파일하여 필요한 부분을 추가, 수정, 삭제하는 경우 대상 파일을 지정하는 옵션이다.

    [-h 헤더 파일명]

    헤더 파일명을 다른 이름으로 변경할 때 사용하는 옵션이다.

    [-h] 옵션 없이 컴파일하면 FDL 헤더 파일명은 <필드 키 테이블명_fdl.h>이다.

    {-i 필드 키 테이블 파일명 }

    클라이언트 프로그램과 서버 프로그램에서 사용될 필드 키 테이블을 정의한 파일을 지정한다. 필수 옵션이며 경로와 함께 지정할 수 있다.

    [-jc|ji]

    WebT에서 사용되는 것으로서 생성될 필드 정의 클래스의 형태를 지정한다.

    • ji : 인터페이스 형태의 필드 정의 클래스 파일을 생성한다.

    • jc : 클래스 형태의 필드 키 정의 Java 파일을 생성한다.

    [-o 결과물 이름 ]

    컴파일 결과물을 다른 이름으로 변경하고자 할 때 사용하는 옵션이다.

    [-o] 옵션 없이 컴파일하면 fdl 파일명은 <tmax.fdl>이다.

    [-p 패키지명]

    WebT에서 사용되는 옵션으로, 생성된 필드 정의 클래스의 패키지명을 주어진 값으로 설정한다.

    [-x]

    반드시 [-a] 옵션과 함께 사용되어야 하며 이 옵션이 사용되는 경우에는 중복되는 필드에 대해서 원본값을 유지한다.

    [-r 출력파일명]

    FDL 파일을 텍스트로 출력파일명 파일로 환원하는 옵션이다.

    반드시 [-f fdl명] 옵션과 함께 사용되어야 한다.

    다음 명령으로 fdl 파일을 텍스트 파일로 디코딩할 수 있다.

    fdlc -f fdl명 -r 출력파일명

    [-V]

    실행 파일의 버전을 확인할 수 있다.

  • 적용 환경

    UNIX 운영 시스템과 MS-DOS 운영 시스템에서 지원된다.

    서버와 클라이언트가 UNIX와 Windows, Intel x86 계열과 같이 다를 경우 바이트 오더링 차이로 문제가 발생할 수 있기 때문에 각각의 플렛폼에서 fdlc를 실행해야 한다.

  • 예제

    • 다음은 [-jc|ji] 옵션을 설정해서 생성한 Java 파일의 예이다. 'number' 값으로 사용할 수 있는 값의 범위는 0 ~ 2^24-1(0~16777215) 이다.

      <demo.f>

      #demo.f
      #name   number  type    flags   comments
      INPUT   101     string  -       -
      OUTPUT  102     string  -       -
      $> fdlc -c -i demo.f -ji -jc webtdemo
    • 다음은 생성된 <demo_fdl.java>의 내용이다.

      package webtdemo;
      public interface demo_fdl {
          public int INPUT = (469762149);    /* number: 101 type: string */
          public int OUTPUT = (469762150);  /* number: 102 type: string */
      }
    • 다음은 현재 디렉터리에 있는 'demo.f' 필드 키 테이블 파일을 fdlc로 컴파일하는 명령이다. 컴파일 후 <tmax.fdl>과 <demo_fdl.h> 파일이 생성된다. <demo_fdl.h>는 필드 키가 정의되어있는 헤더 파일이다.

      $ fdlc -c -i demo.f
필드 키

서버 / 클라이언트 데이터 통신에서 필드 키 버퍼를 사용하여 데이터를 보내는 경우 FDL 방식을 사용한다. FDL(Field Definition Language)은 필드 키 버퍼에 2개의 쌍으로 되어 있는 식별자와 식별자에 대응하는 데이터 값을 저장하여 서로 다른 프로세스 간에 데이터를 교환하는 방식이다. 필드 키 버퍼에서 각각의 식별자는 데이터 타입과 중복되지 않는 식별 번호의 조합으로 만들어지는데 이 식별자가 필드 키이다.

애플리케이션에서는 필드 키 대신에 프로그램에 대한 판독성을 높이기 위한 필드명을 사용한다. 각각의 필드명은 실행 중에 필드 키 이진 파일을 참조하여 필드 키로 전환되어 버퍼에 저장된다.

FDL 방식은 해당 필드를 사용하는 프로그램의 변경없이도 필드의 타입(type)과 길이를 변경할 수 있고 각 필드의 길이를 가변적으로 사용할 수 있다. 데이터 타입은 일반 C 언어에서 제공되는 Char, Short, Integer, Long, Float, Double, String, Carray 등의 타입을 지원하며 필드명은 16자까지 사용 가능하다.

fdlc 컴파일러는 텍스트 형태로 정의된 필드 키 정의 파일을 컴파일하여 사용자 프로그램에서 참조되는 필드 키를 이진 파일을 생성한다. 사용되는 필드 키 정의 파일은 텍스트 파일이며 테이블 파일명은 <.f> 형식의 파일이어야 한다. 기본 결과물은 <tmax.fdl>과 <필드 키 정의 파일명_fdl.h>이다. 서버 프로그램은 생성된 헤더 파일을 참조하여 컴파일되어 필드의 데이터를 저장하거나 읽어올 수 있다. 클라이언트는 fdlc 명령어로 생성된 파일을 FDLFILE이라는 환경변수에 반드시 등록해야 한다.

필드 키 버퍼의 장점은 데이터의 독립성이다. 구조체 버퍼의 경우에는 사용되지 않는 필드가 존재하더라도 구조체 전체를 전송할 수 밖에 없지만 필드 키 버퍼의 경우에는 필요한 필드만을 선택하여 전송할 수 있다. 또한 개발의 생산성 향상을 위해 다양한 필드 키 조작 함수를 제공하고 있다.

  1. fdl number 값이 16777216 이상일 경우에는 허용하지 않는다.

  2. 필드 키 조작 함수의 자세한 내용은 Tmax FDL Reference Guide를 참고한다.

3. gst

이진 Tmax 환경 파일을 참조하여 서비스 테이블을 생성하는 데 사용되는 명령어이다. gst는 cfl 명령어에 의해서 생성된 이진 Tmax 환경 파일의 SERVER 절과 SERVICE 절을 참조하여 각 서버별로 서비스 테이블을 생성한다. 이 테이블은 서버 프로세스에서 제공하는 서비스 목록으로, 서버 프로그램과 함께 작성하여 프로그램이 컴파일될 때 함께 컴파일된다. 서버 프로세스가 동작할 때 서비스 위치를 찾는 데 사용된다.

gst 명령의 결과 파일은 지정된 TMAXDIR 디렉터리 하위에 svct 디렉터리에 <서버명_svctab.c>로 생성된다. TMAXDIR은 source config 파일의 NODE 절을 참고한다. 서버명은 SERVER 절에 등록된 서버명이며, 각 파일의 내용은 SERVICE 절에 등록된 해당 서버가 제공하는 서비스명이다.

Tmax 환경 파일에 등록된 서비스는 반드시 해당 서버의 서비스 테이블에도 등록되어야 한다. Tmax 환경 파일의 SERVER 절이나 SERVICE 절에 서버명, 서비스명, 서비스의 SVRNAME 등이 변경된 경우는 gst 명령을 사용해서 서비스 테이블과 서버 프로그램을 컴파일해야 한다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ gst [-f 이진 Tmax 환경파일명| -v server_name | -h | -n node_name | -V]
    항목 설명

    [-f 이진 Tmax 환경파일명]

    참조할 이진 Tmax 환경 파일명을 설정한다.

    cfl 명령의 결과물로 tmboottmdown에서도 참조되는 파일이다. 경로와 함께 지정될 수 있으며, 생략되면 기본값으로 ${TMAXDIR}/config로 지정된 디렉터리 하위의 config 디렉터리에서 tmconfig를 참고한다.

    [-v server_name]

    서버명에 해당하는 서비스 테이블을 설정한다.

    [-h]

    명령어 도움말 옵션이다.

    [-n node_name]

    멀티 노드 환경에서 타 노드의 서버 프로세스의 서비스 테이블을 현재 노드의 ${TMAXDIR}/svct에 생성하도록 한다.

    [-V]

    실행 파일의 버전을 확인할 수 있다.

  • 적용 환경

    Tmax 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다.

  • 예제

    다음은 /user1/park/tmax/bin 디렉터리의 <exconfig> 환경 파일을 참조하여 서버별로 서비스 테이블을 생성하는 예제이다.

    $ gst -f /user1/park/tmax/bin/exconfig

    예를 들어 환경 파일을 다음 페이지와 같이 등록한 경우 /user1/park/tmax/svct 디렉터리에 <svr1_svctab.c>와 <svr2_svctab.c>라는 서비스 테이블이 생성된다.

              ….
    *SERVER
    svr1         SVGNAME = svg1
    svr2         SVGNAME = svg1
    *SERVICE
    svc1         SVRNAME = svr1
    svc2         SVRNAME = svr2

cfl, tmboot, tmdown 명령어에 대한 자세한 내용은 cfl, tmboot, tmdown을 참고한다.

4. hkcfl

hkcfl은 텍스트 형태의 Host-link 환경설정 파일을 컴파일하여 이진 Host-link 환경설정 파일(hlinkcfg)을 만드는 명령어이다. 컴파일하는 중 에러가 발생하면 컴파일을 중단하고 정상적으로 컴파일이 완료되면 이진 환경설정 파일이 생성된다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    hkcfl [-h] [-p] [-o 이진 Host-link 환경설정 파일명] -i 텍스트 Host-link 환경설정 파일명
          -c 주석처리 문자
    항목 설명

    [-h]

    온라인 도움말을 보여준다.

    [-p]

    Host-link 환경설정 파일의 컴파일 실행 내용을 화면에 출력한다.

    [이진 Host-link 환경설정 파일명]

    컴파일 결과물인 이진 Host-link 환경설정 파일명을 명시하는 데 사용된다.

    경로와 함께 지정할 수 있으며, 경로가 지정되지 않은 경우 ${TMAXDIR}/config에 결과물이 생성된다. (기본값: 'hlinkcfg')

    -i 텍스트 Host-link 환경설정 파일명

    텍스트 형태의 Host-Link 환경 파일명을 명시하는 데 사용된다.

    필수 옵션으로, 디렉터리가 지정되지 않았을 경우 ${TMAXDIR}/config로 설정된다. 경로와 함께 지정될 수 있으며, 소스 파일을 찾지 못한 경우에는 경고 메시지가 출력된다.

    -c 주석처리 문자

    텍스트 형태의 환경설정 파일의 주석 문자를 변경한다. 기본적으로는 '#' 문자가 주석 문자로 사용된다.

5. idlc

Entera의 conversion할 때 정의 파일을 실제 프로그래밍 가능한 소스(stub)로 변환해 주는 유틸리티이다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    idlc -inf  인터페이스명
         -sql  SQL 인터페이스명
         -dbtype  ora | tbr | syb
         -clang  c | vbasic | pbuilder | java | delphi | delphi6 | delphixe
         -xa
         -header  파일명
         -sstub  파일명
         -cstub  파일명
    항목 설명

    -inf 인터페이스명

    DA 서버를 사용할 경우의 인터페이스명을 지정한다.

    -sql SQL 인터페이스명

    DA 서버와 TP 서버를 사용할 경우의 인터페이스 파일명이다.

    -dbtype

    DA 서버를 사용할 경우의 DB 타입을 선택한다.

    RPC가 지원하는 OS와 DB 종류는 Tmax Programming Guide (RPC)의 제약사항을 참고한다.

    • ora : Oracle

    • syb : Sybase

    • tbr : Tibero

    -clang

    생성할 클라이언트의 소스 Stub 파일의 언어 타입을 선택한다.

    • c

    • vbasic

    • pbuilder

    • java

    • delphi

    • delphi6

    • delphixe

    -xa

    XA 서버로 생성할 경우 지정한다.

    -header 파일명

    생성할 header 파일명을 지정한다.

    -sstub 파일명

    생성할 서버 Stub 파일명을 지정한다.

    -cstub 파일명

    생성할 클라이언트 Stub 파일명을 지정한다.

  • 예제

    다음은 서버 종류에 따른 사용 예제이다.

    • DA 서버

      Oracle을 사용하고 dstest.sql을 업무로 사용하며 클라이언트는 C 언어를 사용할 경우 다음과 같이 옵션을 설정한다.

      idlc -inf dstest
           -sql dstest.sql
           -dbtype ora
           -clang c
    • TS 서버

      • '.def' 파일을 사용할 경우

        TP 서버는 '.def' 파일을 사용할 경우 다음과 같이 옵션을 설정한다.

        idlc -xa
             -clang c tstest.def
      • DA 서버 사용할 경우

        TP 서버에서 호출할 DA 서버를 사용할 경우 다음과 같이 옵션을 설정한다.

        idlc -inf db1
             -sql db1.sql
             -dbtype ora
             -clang c
             -xa
             -tps
    • Function 서버

      Function 서버는 TP 서버와 동일하게 옵션을 설정하여 수행한다.

      idlc -xa
           -clang c fstest.def

6. mkcli

Tmax 클라이언트 모듈을 생성하는 명령어이다. 파라미터는 최대 1024자까지 사용할 수 있으며 이 명령어가 실행되면 cc 컴파일러에 의해 클라이언트 모듈이 생성된다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ mkcli {-o outfile} {-f firstfiles} [-v] [-l lastfiles] [(-32)|-64] [-V]
            [-u UserCompileOption]
    항목 설명

    {-o outfile}

    클라이언트 모듈명을 outfile에 지정한다.

    {-f firstfiles}

    사용자 정의 파일을 지정하면 Tmax에서 제공하는 클라이언트 라이브러리보다 먼저 링크되어 컴파일된다. 사용자 정의 파일으로 보통 클라이언트 프로그램을 지정한다.

    [-v]

    verbose 모드로 컴파일되어 컴파일하는 과정이 모두 콘솔창에 출력된다.

    [-l lastfiles]

    사용자 정의 파일을 지정하면 Tmax에서 제공하는 클라이언트 라이브러리보다 나중에 링크되어 컴파일된다.

    [(-32)|-64]

    생성하려는 클라이언트 모듈이 32Bit 또는 64Bit인지를 지정한다.

    • [-32] : Tmax 라이브러리 경로가 ${TMAXDIR}/lib로 지정된다. (기본값)

    • [-64] : Tmax 라이브러리 경로가 ${TMAXDIR}/lib64로 설정된다.

    [-V]

    실행 파일의 버전을 확인할 수 있다.

    [-u UserCompileOption]

    mkcli 명령어가 자체적으로 설정한 플랫폼에 맞는 기본 컴파일 옵션을 제거하고 사용자가 지정한 컴파일 옵션으로 대체한다. 라이브러리 및 include 관련 옵션은 적용되지 않으므로 주의한다.

    둘 이상의 옵션을 지정해야 할 경우 다음과 같이 설정한다.

    -u opt1 opt2
  • 적용 환경

    Tmax가 설치된 운영 시스템 환경에서 사용할 수 있다.

7. mkacl

ACL(access control list)을 생성하는 명령어이다. 서비스 접근 권한 제어 (제 3단계 보안)는 사용자 그룹별로 이루어진다. 서비스는 접근 권한이 허용된 그룹에 해당되는 user만 접근이 가능하다. 해당 기능을 사용하기 위해서는 group 파일을 생성해야 하며, 해당 그룹에 속하는 user 파일이 있어야 한다. 그리고 서비스별 접근 가능한 사용자 그룹을 지정하는 acl 파일이 있어야 한다. acl 파일을 생성하기 위해서는 mkacl 명령어를 사용해야 한다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ mkacl [-a] [-d] [-G group_name] [-t type] [-s service_name] [-h] [-V]
    항목 설명

    [-a]

    기존의 ACL 파일에 새로운 하나의 ACL 서비스를 추가하기 위한 옵션이다.

    ACL 파일이 존재할 경우 파일의 가장 끝에 새로운 서비스가 추가되며, 존재하지 않을 경우 새로운 ACL 파일이 생성된 후 추가된다.

    [-d]

    생성된 ACL 서비스를 삭제하기 위한 옵션으로 [-G], [-s], [-t] 옵션과 함께 지정해야 한다.

    ACL 파일에서 [-s] 옵션으로 지정한 ACL 서비스를 삭제하며, [-G] 옵션은 해당 서비스와 반드시 일치해야 한다.

    [-G group_name]

    [-s]로 지정한 서비스에 대해 접근이 허용된 그룹명을 지정한다. 반드시 ${TMAXDIR}/config/group에 지정된 이름을 사용해야 한다.

    [-t type]

    ACL의 타입을 지정한다. 현재 'SERVICE’만을 지원한다.

    [-s service_name]

    ACL을 적용할 서비스명을 지정한다. [-G] 옵션으로 지정된 하나의 서버 그룹에 속한 사용자만 접근 가능하다.

    [-h]

    명령어 도움말 옵션이다.

    [-V]

    명령어를 지원하는 Tmax 버전 정보를 조회한다.

  • 결과

    ${TMAXDIR}/config/acl 파일이 생성되고 형식과 내용은 다음과 같다.

    service_name:type:group_id
    TOUPPER1:SERVICE:1
    TOUPPER5:SERVICE:5
    TOUPPER7:SERVICE:7
    TOUPPER9:SERVICE:9

멀티 노드에서 사용하는 경우에는 cfl의 [-A] 옵션 설명을 참고한다.

8. mkgrp

사용자 그룹을 생성하는 명령어이다. 서비스 접근 권한 제어(제 3단계 보안)는 사용자 그룹별로 이루어진다. 하나의 서비스는 서비스에 대해 접근 권한이 허용된 그룹에 해당되는 사용자만 접근이 가능하다. 따라서 이 기능을 사용하기 위해서는 그룹 파일을 생성해야 하며, 해당 그룹에 속하는 사용자 파일이 있어야 한다. 그리고 서비스별 접근 가능한 사용자 그룹을 지정하는 acl 파일이 있어야 한다. 그룹 파일을 생성하려면 mkgrp 명령어를 사용해야 한다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ mkgrp {-a} {-G group_name} {-g group_id} [-d] [-h] [-V]
    항목 설명

    {-a}

    기존의 그룹 파일에 새로운 하나의 사용자 그룹을 추가하기 위한 옵션이다.

    기존의 그룹 파일이 존재할 경우 파일의 맨 끝에 새로운 그룹이 추가되며, 존재하지 않을 경우 새로운 그룹 파일이 생성된 후 추가된다.

    {-G group_name}

    생성할 그룹의 이름을 지정한다. 다른 그룹과 중복되지 않도록 지정해야 한다.

    {-g group_id}

    생성할 그룹의 ID를 지정한다. 이 옵션도 다른 그룹과 중복되지 않도록 지정해야 한다.

    [-d]

    기존에 생성된 그룹을 삭제하기 위한 옵션이다. [-g], [-G] 옵션과 함께 지정해 주어야 하며, [-g] 옵션으로 지정한 ID의 사용자 그룹을 삭제한다.

    [-h]

    명령어 도움말 옵션이다.

    [-V]

    명령어를 지원하는 Tmax 버전 정보를 조회한다.

  • 결과

    ${TMAXDIR}/config/group 파일이 생성이 되며 형식과 내용은 다음과 같다.

    Group_name:x:Group_id
    grp1:x:1
    grp2:x:2
    grp3:x:3
    grp4:x:4
    grp5:x:5
    grp6:x:6
    grp7:x:7
    grp8:x:8
    grp9:x:9
    grp10:x:10

9. mkpw

암호 관리 명령어로 Tmax 사용자가 선택할 수 있는 보안 확인 메커니즘은 4가지가 있다.

  1. 보안 사용 안함

  2. 도메인 보안 확인

  3. 사용자 보안 확인

  4. 서비스 접근 제어

보안 확인 메커니즘을 사용하려면 사용자명과 암호를 $(TMAXDIR)/config 디렉터리의 passwd 파일에 등록해야 한다. mkpw는 passwd 파일을 관리하는 데 사용된다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ mkpw [-f file_name] [-a | -d | -i | -n | -p | -h | -V]
           [-G group_name] [-u uid]
    항목 설명

    [-f filename]

    passwd 파일명을 지정한다.

    기본 passwd 파일은 $(TMAXDIR)/config/passwd이다.

    [-a]

    사용자를 추가하는 옵션이다.

    [-d]

    사용자를 삭제하는 옵션이다.

    [-i]

    사용자의 정보를 변경하는 옵션이다.

    [-n]

    새로운 패스워드 파일을 생성하는 옵션이다.

    [-p]

    사용자의 암호를 변경하는 옵션이다. 파라미터가 지정되지 않을 때 다음을 기본값으로 실행한다.

    $ mkpw -f $(TMAXDIR)/config/passwd -p

    [-h]

    사용법을 보여주는 옵션이다.

    [-V]

    실행 파일의 버전을 확인할 수 있다.

    [-G group_name]

    해당 사용자가 속하는 그룹명을 지정한다. 서비스 접근 제어 보안 기능을 사용할 경우 group 파일을 생성해야 하며, 해당 그룹에 속하는 사용자가 있어야 하고 user 파일을 생성해야 한다. user 파일은 mkpw 명령어를 이용하여 passwd 파일과 함께 생성된다.

    passwd 파일을 생성할 경우 [-G] 옵션을 사용하여 이전 버전과는 다른 방식으로 생성해야 한다. ACL로 지정된 서비스를 호출하기 위해서는 하나의 그룹에 속해야 하기 때문이다. [-G] 옵션을 사용하여 그룹명을 지정할 경우 반드시 group 파일에 지정된 그룹 중 하나를 선택해서 지정해야 하며, [-u] 옵션과 함께 지정한다.

    [-u uid]

    해당 사용자의 유일한 ID를 지정한다.

    [-G] 옵션과 함께 지정하며, 제 3단계 보안인 서비스 접근 제어를 사용할 경우에만 지정한다.

  • 결과

    다음은 [-G], [-u] 옵션을 사용했을 경우에 대한 passwd 파일과 user 파일의 형식 및 예제이다.

    • passwd 파일

      형식은 다음과 같다.

      username:passwd:user_id:group_id:Description:x:x

      <passwd 파일 예제>

      starbj1:UnQGcdDkNqXNc:1:1:starbj1:x:x
      starbj2:mPLY7VZtNvRXs:2:2:starbj2:x:x
      starbj3:aiu6Mt36rqwe6:3:3:starbj3:x:x
      starbj4:vVdS9naV02jA.:4:4:starbj4:x:x
      starbj5:568kCzyzYXriQ:5:5:starbj5:x:x
      starbj6:ouKrHf/89QMW6:6:6:starbj6:x:x
      starbj7:Mx8PaESrqWR4I:7:7:starbj7:x:x
      starbj8:LL59popHJp59U:8:8:starbj8:x:x
      starbj9:RG/S5BetAPeFs:9:9:starbj9:x:x
      starbj10:Ebbzv1Ecx0abE:10:10:starbj10:x:x
    • user 파일

      형식은 다음과 같다.

      user 파일:username:user_id:group_id

      <user 파일 예제>

      starbj1:1:1
      starbj2:2:2
      starbj3:3:3
      starbj4:4:4
      starbj5:5:5
      starbj6:6:6
      starbj7:7:7
      starbj8:8:8
      starbj9:9:9
      starbj10:10:10
  • 적용환경

    Tmax가 설치된 운영 시스템 환경에서 사용할 수 있다.

10. mksvr

Tmax 서버 모듈을 생성하는 명령어이다. mksvr를 사용하여 서버 모듈을 생성하는 경우 Tmax의 환경 파일에 서비스를 등록하지 않아도 동적으로 서비스를 등록할 수 있다. 파라미터는 최대 1024자까지 사용할 수 있으며 이 명령어가 실행되면 cc 컴파일러에 의해 서버 모듈이 생성된다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ mksvr {-s {@filename | service[,service...] [:func]}} [-o outfile]
            [-f firstfiles] [-v] [-r rmname] [-S sdlfilename] [-l lastfiles]
            [-t servertype] [(-32)|-64] [-V] [-a autotran] [-T svctime]
            [-u UserCompileOption] [-d]
    항목 설명

    [-s {@filename| service[,service…​] [:func]}]

    서비스명을 service에 지정한다.

    filename인 파일에 서비스명을 한 줄에 하나씩 기록하여 그 파일명을 '@' 뒤에 추가하여 서버 모듈을 생성할 수 있다. 서비스에 대한 func을 지정하면 서비스에 대한 요청이 올 때 그 처리를 func에서 할 수 있다. 서비스명을 세미콜론(;) 뒤에 계속해서 넣으려면 세미콜론 뒤에 스페이스를 사용해서는 안 된다. 옵션은 여러 번 지정할 수 있다.

    예)

    -s TOUPPER -s TOLOWER

    AUTOTRAN과 SVCTIME에 관한 내용을 함께 설정할 수도 있다. 항상 큰따옴표(" ")를 사용해야 한다.' -s TOUPPER -a 1 -T 10’으로 설정한 것과 동일한 것으로 간주된다. Function List 파일 안에서도 위와 동일하게 설정할 수 있다.

    예)

    -s "TOUPPER 1 10"

    [-o outfile ]

    서버 모듈명을 outfile에 지정한다.

    [-f firstfiles ]

    사용자 정의 파일을 지정하면 Tmax에서 제공하는 서버 라이브러리보다 먼저 링크되어 컴파일된다. 사용자 정의 파일로 보통 서버 프로그램을 지정한다.

    [-v]

    verbose 모드로 컴파일되어 컴파일하는 과정이 모두 콘솔창에 출력된다.

    [-r rmname ]

    생성하려고 하는 서버 모듈과 연결되는 리소스 매니저를 지정한다.

    rmname은 ${TMAXDIR}/config/RM 파일 안에 다음과 같은 형식으로 지정한다.

    rmname:stub:XA libraries

    Stub으로는 Tmax에서 제공하는 DBMS stub(liboras.so, libsybs.so, libinfs.so, libdb2s.so)이 설정된다. mksvr 명령어를 사용할 때 [-r rmname]을 지정하면 Stub들과 XA libraries들이 cc 컴파일할 때 링크되어 컴파일된다. [-r] 옵션이 지정되지 않은 경우 기본적으로 libnodb.so가 링크된다.

    [-S sdlfilename]

    SDL 버퍼를 사용하는 서버 모듈인 경우 sdl 파일(.s)의 object file을 sdlfilename으로 설정한다. [-S] 옵션이 지정되지 않은 경우 기본적으로 ${TMAXDIR}/lib/sdl.o가 링크된다.

    [-l lastfiles ]

    사용자 정의 파일을 지정하면 Tmax에서 제공하는 서버 라이브러리보다 나중에 링크되어 컴파일된다.

    [-t servertype ]

    Tmax 환경 파일의 SERVER 절에 'SVRTYPE’으로 지정되는 값을 mksvr에서 설정한다.

    • [-t] 옵션이 지정되지 않은 경우 : 서버 타입을 STD라고 인식을 하고 cc 컴파일할 때 <libsvr.so>가 링크된다.

    • [-t] 옵션이 지정된 경우 : 설정된 Tmax 라이브러리가 cc 컴파일할 때 링크된다.

    [ (-32)|-64]

    생성하려는 서버 모듈이 32Bit 또는 64Bit인지를 설정한다.

    • [-32] : Tmax 라이브러리 경로가 ${TMAXDIR}/lib로 지정된다. (기본값)

    • [-64] : Tmax 라이브러리 경로가 ${TMAXDIR}/lib64로 설정된다.

    [-V]

    실행 파일의 버전을 확인할 수 있다.

    [-a autotran]

    동적으로 등록한 서비스의 AUTOTRAN 유무를 설정한다.

    • 0 : NO

    • 1 : YES

    [-T svctime]

    동적으로 등록한 서비스의 SVCTIME를 설정한다.

    • 0 : 무한대로 SVCTIME을 설정한다.

    • 0보다 큰 수 : 해당 값만큼 SVCTIME을 설정한다.

    [-u UserCompileOption]

    mksvr 명령어가 자체적으로 설정한 플랫폼에 맞는 기본 컴파일 옵션을 제거하고 사용자가 지정한 컴파일 옵션으로 대체한다. 라이브러리 및 include 관련 옵션은 적용되지 않으므로 주의한다.

    둘 이상의 옵션을 지정해야 할 경우 다음과 같이 설정한다.

    -u opt1 opt2

    [-d]

    mksvr 명령으로 빌드시에 기존의 svctab.c을 참조하지 않고 서비스를 빌드할 수 있도록 한다. 기존 환경 설정의 영향을 받지 않고 독립적으로 서비스를 동적 등록할 때에 사용한다.

  • 적용 환경

    Tmax가 설치된 운영 시스템 환경에서 사용할 수 있다. Tmax 3.8.16 버전부터 Windows NT와 Windows 2000 환경에서 사용 가능하다.

  • 주의사항

    mksvr는 COUSIN이나 BACKUP 서버 그룹 형태의 서버 모듈에 서비스를 동적으로 등록하는 경우 사용에 제약이 따른다. COUSIN이나 BACKUP 서버 그룹의 경우 여러 노드에 등록된 서비스의 정보를 관리해야 하기 때문에 mksvr로 특정 서비스를 동적으로 등록한 경우 이 서비스를 해제할 수 없다.

    일반 서버 그룹에서는 해당 서버를 tmdownmksvr로 재등록하면 서비스의 이동과 삭제가 가능하다. 그러나 COUSIN/BACKUP 서버 그룹에서는 등록된 서비스 해제를 허용하지 않기 때문에 서비스의 이동과 삭제가 불가능하다.

    mksvr를 통한 서비스 동적 등록을 할 경우에는 다음의 사항을 고려하여 사용해야 한다.

    • 해당 서버의 서버 그룹 유형

    • 해당 서비스의 기 등록 여부

11. racd

멀티 노드로 분산된 환경에서 각 노드를 중앙 관리하기 위한 명령어이다. racd는 여러 노드를 하나의 도메인으로 Tmax 시스템을 구축한 경우 한 노드에서 Tmax 시스템을 집중 관리하기 위해 각각의 노드에서 미리 기동되는 데몬 프로세스이다. Tmax 시스템을 관리하는 노드에서는 racd를 실행하지 않아도 된다.

racd는 도메인 내의 한 노드에서 tmadmin을 통하여 전체 노드를 관리하거나 또는 cfl로 환경 파일을 도메인 내의 모든 노드에 동일한 내용으로 적용 가능하도록 처리한다.

아래는 racd의 특징에 대한 추가 설명이다.

  • racd를 통해 tmdown, tmboot 명령어를 실행한 뒤 종료할 때까지 기본 60초를 대기하며, clh와 tdl 요청은 완료될 때까지 무제한 대기한다.

  • racd에서 명령 실행 중에 타임아웃이나 에러가 발생하면 cfl, tmboot, tmdown, racdr 유틸리티에서 이와 관련된 내용을 출력한다.

  • racd를 통해 실행한 cfl 에서 SIGPIPE가 발생하더라도 이를 무시한다.

IP 버전이 IPv6이거나 InfiniBand의 SDP(Socket Direct Protocol)일 경우에는 환경 파일에 다음을 반드시 지정해야 한다.

SYSTEM_PROTOCOL="IPV6"
SYSTEM_PROTOCOL="SDP"

만약 racd를 -k 옵션과 함께 사용한다면 환경변수에 다음을 지정해야 한다.

TMAX_RAC_IPV6="IPV6"
TMAX_RAC_IPV6="SDP"

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ racd [-d] [-f 이진 Tmax 환경파일명] [-h] [-k] [-i filename] [-l label]
           [-P umask] [-V] [-t wait_time]
    항목 설명

    [-d]

    디버그 모드로 racd를 수행할 때 설정한다.

    [-f 이진 Tmax 환경파일명]

    참조할 이진 Tmax 환경 파일명을 설정한다.

    cfl의 결과로 tmboottmdown에서도 참조되는 파일이다. 경로와 함께 지정될 수 있으며, 이 옵션이 생략되면 기본적으로 TMAXDIR로 지정된 디렉터리 하위의 config 디렉터리에서 tmconfig를 참고한다.

    tmboot, tmdown 명령어의 자세한 내용은 tmboot, tmdown의 설명을 참고한다.

    [-h]

    명령어 도움말 옵션이다.

    [-k]

    이진 Tmax 환경 파일의 참조 여부를 설정한다.

    옵션을 지정하면 이진 Tmax 환경 파일을 참조하지 않는다. 보통 racd는 이 옵션을 이용하여 실행한다. (passive listen mode)

    만약 IP 버전이 IPv6이거나 InfiniBand의 SDP(Socket Direct Protocol)일 경우에는 이 옵션을 사용할 경우 환경 파일을 참조하지 않기 때문에 환경변수에 'TMAX_RAC_IPV6=IPV6' 또는 'TMAX_RAC_IPV6=SDP’를 반드시 지정해야 한다.

    [-i filename]

    하나의 물리적 머신에서 여러 논리적 노드를 정의할 때 사용한다.

    논리 노드의 NODETYPE이 SHM_RACD일 경우 각 논리 노드당 하나씩의 racd를 실행해야 하며 RACPORT는 모두 달라야 한다.

    racd를 실행하기 전에 환경변수의 TMAX_RAC_PORT 변수를 설정해야 하는데, 논리 노드의 수가 많을 경우 이를 일일이 모두 변경할 수 없으므로 TMAXHOME, TMAXDIR, TMAX_RAC_PORT가 정의된 파일명을 지정할 수 있다. 자세한 내용은 예제를 참고한다.

    논리 노드 설정에 대한 자세한 내용은 Tmax Administration Guide의 NODE 절 에서 HOSTNAME 항목을 참고한다.

    [-l label]

    Label은 파일 내에 등록된 환경 정보의 구분자이다. 2개 이상의 시스템 정보를 하나의 파일에 등록할 경우에 각각의 시스템을 구별할 수 있는 값이다.

    [-P umask]

    racd를 통해 기동되는 프로세스의 경우 umask를 사용자가 설정하여 원하는 권한의 파일을 생성할 수 있도록 한다.

    [-V]

    실행 파일의 버전을 확인할 수 있다.

    [-t wait_time]

    racd를 통해 tmdown, tmboot 명령어를 실행한 뒤 종료시까지의 대기시간을 조절하는 옵션이다.

    음수를 설정하면 무제한 대기하며, 0은 지정이 불가하다. 1부터 지정한 값만큼 대기하게 된다.

  • 적용 환경

    Tmax가 설치된 운영 시스템 환경에서 사용할 수 있다.

  • 예제

    • 다음은 racd에 [-P] 옵션을 지정하여 원하는 umask를 설정하는 예제이다.

      <tmax.racd>

      [tmaxs1]
      TMAXHOME = /user2/starbj81/tmax32
      TMAXDIR = /user2/starbj81/tmax32
      TMAX_RAC_PORT = 3333
      
      [NODE1]
      TMAXHOME = /user2/starbj81/tmax32
      TMAXDIR = /user2/starbj81/proj1
      TMAX_RAC_PORT = 4335
      
      [NODE2]
      TMAXHOME = /user2/starbj81/tmax32
      TMAXDIR = /user2/starbj81/proj2
      TMAX_RAC_PORT = 4337
      1. 환경 파일을 작성한다.

        *DOMAIN
        tmax1      SHMKEY = @SHMEMKY@, MINCLH = 1, MAXCLH = 3,
                   TPORTNO = @TPORTNO@, BLOCKTIME = 30, RACPORT = 3255
        
        *NODE
        @HOSTNAME@ TMAXDIR = "@TMAXDIR@",
                   APPDIR = "@TMAXDIR@/appbin",
                   PATHDIR = "@TMAXDIR@/path",
        
        @RMTNAME@  TMAXDIR = "@RMTDIR@",
                   APPDIR = "@RMTDIR@/appbin",
                   PATHDIR = "@RMTDIR@/path",
        
        *SVRGROUP
        svg1       NODENAME = "@HOSTNAME@", COUSIN = "svg2"
        svg2       NODENAME = "@RMTNAME@"
        
        *SERVER
        svr2       SVGNAME = svg1, CLOPT = "-o $(SVR).out -e $(SVR).err"
        
        *SERVICE
        TOUPPER    SVRNAME = svr2
      2. 리모트 노드에 racd를 기동한다.

        $ export TMAX_RAC_PORT = 3255
        $ racd –k –P 055
      3. HOST 노드에서 전체 Tmax를 기동한다. (tmboot)

      4. RMT 노드의 ULOGDIR에 svr2.out의 파일 권한을 확인한다.

    • 다음은 NODE1의 RACD를 실행시키는 예제이다.

      $ racd -k -i tmax.racd -l NODE1
    • 다음은 환경 파일을 참조하지 않고 다른 명령어(tmboot)에서 사용한 정보만 이용하는 예제이다.

      $ racd -k

12. racdr

멀티 노드, 멀티 도메인으로 분산된 환경에서 각 노드에 명령 수행, 파일 전송을 수행하기 위한 명령어이다. 관리를 원하는 노드에는 racd 데몬이 기동이 되어 있어야 한다. 환경설정 파일을 일정한 형식에 맞춰서 미리 작성을 해야 한다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ racdr [-f racdr 환경파일명] [-n 노드명]
            [[[[-W 셸프로그램 | -w] -e] -c 명령어] | [-s 파일명]
            [-d 저장경로] [-r]] [-h] [-V]
    항목 설명

    [-f racdr 환경파일명]

    다른 도메인의 노드 정보를 저장한 환경 파일을 지정한다.

    별도로 지정하지 않으면 현재 디렉터리의 racdr.cfg 또는 ${TMAXDIR}/config/racdr.cfg 파일을 사용한다.

    [-n 노드명]

    환경 파일에서 정의한 노드이름을 지정한다. 모든 요청들은 해당 노드의 racd 로 전달되어 수행된다.

    [-W 셸프로그램]

    [-e], [-c] 옵션을 통해 명령을 실행할 때 지정한 셸 프로그램을 통해서 실행되도록 한다.

    ksh, tsh, bash 등의 사용하고자 하는 셸 프로그램 이름을 인자로 지정한다.

    [-w]

    [-e], [-c] 옵션을 통해 명령을 실행할 때 셸 프로그램을 통해서 실행되도록 한다.

    기본적으로 사용되는 셸은 "sh" 프로그램이다. 다른 셸 프로그램을 사용하려면 이 옵션 대신 [-W] 옵션을 사용한다.

    명령의 파라미터에 와일드카드 문자를 사용하는 경우에는 와일드카드 문자 그대로 racd로 전달하기 위해서 반드시 명령 또는 명령행의 파라미터를 작은따옴표('')로 감싸줘야 한다.

    [-e]

    [-c] 옵션에서 허용하지 않는 명령들을 실행할 수 있도록 한다. [-c] 옵션 앞에 지정해야 한다. 명령이 실행될 때 해당 노드에서 셸 프로그램에 의해 명령이 수행될 필요가 있을 경우에는 [-w] 옵션을 함께 사용한다.

    [-c 명령어]

    racd에서 명령을 실행한다.

    [-c] 옵션 이후의 파라미터들은 모두 명령행의 파라미터로 간주한다. 따라서 racdr의 다른 옵션들을 지정할 때 반드시 [-c] 옵션 앞에 지정해야 한다. 명령은 tmboot, tmdown, cfl, gst 만 허용된다. 그 외의 명령이나 셸 스크립트를 수행하려면 [-e] 옵션을 지정해야 한다.

    [주의]

    tmboot, tmdown의 경우 racd에서 명령을 실행할 때 명령행 파라미터의 끝에 내부적으로 사용하는 옵션을 추가한다. 만약 반드시 인자를 지정해야 하는 옵션을 마지막 파라미터로 사용하면서 인자를 지정하지 않는 경우에 의도하지 않는 동작을 할 수 있으므로 주의해야 한다.

    예를 들어 "racdr -c tmboot -d" 명령을 수행하면 원래는 tmboot의 잘못된 파라미터를 사용한 것([-d] 옵션은 인자를 반드시 입력해야 한다)이므로 에러가 출력되는 것이 정상인데, racd에 의해 수행될 때는 [-d] 뒤에 추가된 옵션에 의해서 이상한 값을 처리하여 명령이 실행될 수 있다. 따라서 명령어를 입력할 때 파라미터 입력에 세심한 주의가 필요하다.

    [-s 파일명]

    파일을 해당 노드로 전송한다. 반드시 [-d] 옵션과 함께 사용해야 한다.

    저장될 위치에 이미 파일이 존재하는 경우, 해당 파일의 이름을 변경하고 전송된 파일을 기존 파일 이름으로 저장한다. 기존 파일의 이름은 뒷부분에 현재의 "_년월일시분초"가 추가되며, 같은 이름의 파일이 또 존재하면 그 뒤에 "_번호"를 추가한다.

    파일 전송 도중 실패하면 전송중이던 파일은 삭제하고 기존 파일을 복원한다. 만약 기존 파일의 백업을 원하지 않는다면 [-r] 옵션을 함께 지정한다.

    [-d 저장경로]

    파일이 저장될 경로를 지정한다. 경로는 최대 3개까지 지정 가능하다. 경로는 환경 파일에서 설정하며, dest_no는 설정한 디렉터리의 번호를 지정한다.

    첫 번째 경로(dest1)는 1, 두 번째 경로(dest2)는 2, 세 번째 경로(dest3)는 3을 지정하면 된다.

    [-r]

    파일이 저장될 노드에 같은 이름의 파일이 이미 존재하더라도 기존 파일의 백업을 생성하지 않는다.

    [-h]

    Usage 화면을 출력한다.

    [-V]

    실행 파일의 버전을 확인할 수 있다.

  • 적용 환경

    racdr과 racdr 환경 파일이 있으면 실행 가능하다.

  • 주의사항

    • 명령을 실행할 때 명령 인자의 파라미터에 반드시 -n 옵션을 설정해서 해당 노드만 수행하도록 해야 한다.

    • 입력을 요구하는 명령은 처리할 수 없다. 입력을 요구하지 않는 방식으로 수행되도록 명령 인자를 설정해야 한다.

      예) $ tmdown
             Do you really want to down whole Tmax? (y : n):
         --> $ tmdown -n node1
    • 실행 화면 결과는 해당 명령이 모든 수행을 마치고 종료될 때 클라이언트로 전달됨을 유의한다.

    • 실행 화면 결과 중 STDOUT과 STDERR 출력은 실제 화면과 다른 순서로 출력될 수 있음을 유의한다.

    • racdr 수행 결과에서 tmboot의 STDERR 내용은 출력되지 않음을 유의한다.

    • 명령이 실행되는 중에는 racd는 다른 요청을 처리할 수 없음을 유의한다.

  • 예제

    • 다음은 3개의 노드를 관리하는 racdr 환경설정 파일 예제이다.

      <racdr.cfg>

      #nodename  ip-address    racport  dest1(appbin)  dest2(applib)  dest3(config)
      tmnode1    192.168.1.1   5000     /tmax/appbin   /tmax/applib   /tmax/etc
      tmnode2    192.168.1.2   5000     /tmax/appbin   /tmax/applib   /tmax/config
      othnode    192.168.10.2  9999     /tmax/appbin   /tmax/applib   /tmax/config
    • /app/svr2 파일을 tmnode1 노드의 /tmax/appbin 디렉터리로 파일을 전송한다.

      $ racdr -f config.txt -n tmnode1 -s /app/svr2 -d 1
    • tmnode1 노드에 cfl 명령을 수행한다.

      $ racdr -f config.txt -n tmnode1 -c "cfl -i tmaxconfig.m"
    • tmnode1 노드에 tmboot 명령을 수행한다.

      $ racdr -f config.txt -n tmnode1 -c "tmboot -n node1"
    • tmnode1 노드에서 특정 서버를 종료한다.

      $ racdr -f config.txt -n tmnode1 -c "tmdown -n node1 -S svr2"

13. rcakill

RCA를 종료하고자 하는 경우 RCA가 사용하는 자원을 제거하기 위하여 사용한다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ rcakill [-h] [-p pid] [-n rcah_no] [-k shmkey]
    항목 설명

    [-h]

    도움말을 조회한다.

    [-p pid]

    pid를 통한 특정 RCAH에 대한 상태 정보를 지운다.

    [-n rcah_no]

    RCAH 번호를 통한 특정 RCAH에 대한 상태 정보를 지운다.

    [-k shmkey]

    RCA가 사용하는 공유 메모리 키값의 정보를 지운다.

14. rcastat

RCA는 Tmax 시스템 입장에서는 클라이언트 프로세스로 관리되기 때문에 Tmax 시스템 관리 툴인 tmadmin으로 모니터링이 가능하다. Tmax에서는 RCA를 모니터링하기 위한 rcastat이라는 별도의 툴을 제공한다. 툴을 사용해서 관리자는 현재 RCA의 설정 내용을 확인할 수 있으며 현재 RCA에 접속한 클라이언트의 수 등을 모니터링 할 수 있다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ rcastat [-h] [-p pid] [-n rcah_no] [-k shmkey]
    항목 설명

    [-h]

    도움말을 조회한다.

    [-p pid]

    pid를 통한 특정 RCAH에 대한 상태 정보를 출력한다.

    pid가 지정되지 않는다면 RCA에서 동작하고 있는 모든 RCAH에 대한 정보를 출력한다.

    [-n rcah_no]

    RCAH 번호를 통한 특정 RCAH에 대한 상태 정보를 출력한다.

    rcah_no가 지정되지 않는다면 RCA에서 동작하고 있는 모든 RCAH에 대한 정보를 출력한다.

    [-k shmkey]

    RCA가 사용하는 공유 메모리 키값을 설정한다.

    공유 메모리 키값이 지정되지 않는 경우에는 사용자 시스템 환경변수에서 설정된 RCA_SHMKEY 값을 읽어 들이며. 만약 시스템 환경변수에도 설정되어 있지 않다면 기본값인 74565가 사용된다. 잘못된 키값을 입력하는 경우에는 올바른 정보를 출력할 수 없다.

  • 예제

     ------------------------------------------------
     rca_dir: /user/tmax/server/
     rca_mode: Local
     rca_port: 8123
     rcal_name: rca
     rcal_pid: 1722
     rcah_name: rcah
     shmkey: 74565,  shmsize: 4832
     #rcah: 2,  #thread per rcah: 60
     ------------------------------------------------
     rcah_no     pid    #client
     ------------------------------------------------
         0       1724         0
         1       1723         0
     ------------------------------------------------
    출력 항목명 설명

    rca_dir

    RCAH 실행 파일과 통신용 파이프가 생성될 디렉터리이다.

    rca_mode

    현재 사용되고 있는 모드 정보이다.

    rca_port

    사용 가능한 포트 번호이다.

    rcal_name

    RCAL의 이름이다.

    rcal_pid

    RCAL의 pid이다.

    rcah_name

    RCAH의 이름이다.

    shmkey

    RCA에서 사용하고 있는 공유 메모리 키값이다.

    shmsize

    공유 메모리 크기이다.

    #rcah

    사용되고 있는 RCAH의 개수이다.

    #thread per rcah

    하나의 RCAH당 기동되어 있는 스레드 개수이다.

    rcah_no

    RCA 내부적으로 관리되는 번호이며 각각의 RCAH별로 별도의 값이다.

    pid

    RCA에 기동되어 있는 RCAH별 pid이다.

    #client

    클라이언트의 수이다.

    명령어를 사용해서 조회되는 시스템 설정 정보는 다음과 같다.

    $ rcastat
        rcastat: RCA_SHMKEY env is not set, using default shmkey (74565)

15. sdlc

서버 및 클라이언트 사이의 데이터 통신에 사용하는 방식은 여러 가지가 있지만 그 중에서 구조체(Struct)를 사용할 경우에는 해당 구조체를 Tmax 시스템에서 인식할 수 있어야 한다. sdlc는 이런 구조체를 정의한 파일을 컴파일하는 명령어이다.

SDL(Structure Data Language)은 Tmax에서 정한 표준 구조체 데이터 형식이다. 이기종 노드 간 통신할 때 Integer, Float, Double 등의 데이터 타입과 관련해서 다음의 문제를 갖는다.

  • Type Length

  • Machine Type - Big / Little Endian

  • Alignment

SDL은 이러한 문제를 해결하기 위해서 하나의 표준형을 정한 것으로 Integer, Float, Double의 통신을 지원하여 자유로운 통신 타입을 지원한다.

클라이언트 프로그램과 서버 프로그램에서 사용되는 구조체는 동일해야 한다. 구조체가 변경되었을 경우 클라이언트와 서버별로 구조체가 sdlc에 의하여 재컴파일되어야 하며, 새롭게 생성된 <구조체 파일명_sdl.c>는 서버 프로그램과 함께 반드시 재컴파일해야 한다. 사용되는 구조체 파일명은 <.s> 형식의 파일이고 결과물은 <구조체 파일명_sdl.c> 형식이다. 구조체 파일에는 서버 및 클라이언트 사이의 통신에 사용되는 버퍼 타입 구조체가 정의되고 이 구조체 이름은 통신 버퍼로 tpalloc(), tpcall(), tpacall() 등에 사용된다. sdlc 명령어로 생성된 파일은 클라이언트에 SDLFILE이라는 환경변수에 반드시 등록해야 한다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ sdlc [-c] [-h 헤더 파일명] {-i 구조체 파일명} [-o 결과물 이름]
           [-s] [-v VIEW 정의 파일] [-32] [-4vb|-4dp] [-f] [-V]
    항목 설명

    [-c]

    클라이언트를 위해 사용되는 옵션이다. 클라이언트 프로그램에서 사용하는 구조체 파일을 sdlc로 컴파일하면 구조체의 각 데이터가 표준 데이터형으로 변환되어 필요한 정보의 이진 형태의 파일이 생성된다.

    <구조체 파일명.sdl>은 클라이언트 프로그램을 실행할 때 표준 통신형으로 데이터가 송수신되는 데 사용된다.

    [-c] 옵션을 사용하는 경우 여러 개의 구조체 파일들을 함께 컴파일할 수 있다(예: sdlc -c -i *.s 또는 sdlc -c -i demo.s sam.s abc.s). 생성되는 sdl 파일명은 <demo.sdl>이며 다른 이름을 사용하려면 [-o] 옵션을 이용하여 원하는 파일명을 적는다.

    [-c] 옵션을 사용하지 않는 경우 sdlc는 구조체 파일을 컴파일하여 구조체의 각 필드를 표준 통신형인 SDL 형식에 맞춰 암호화(encoding:노드 데이터형을 표준 데이터형으로 변환), 복호화 (decoding:표준 데이터형을 노드 데이터 형으로 변환)하는 프로그램이 생성된다. 서버 프로그램과 함께 컴파일되어 표준 SDL 형식의 데이터형으로 통신이 이루어진 <구조체 파일명_sdl.c> 파일이 생성된다.

    [-h 헤더 파일명]

    [-h] 옵션 없이 컴파일하면 sdl 헤더 파일명은 <구조체 파일명_sdl.h>이다. 헤더 파일명을 변경할 때 사용하는 옵션이다.

    {-i 구조체 파일명}

    서버/클라이언트 프로그램에서 사용하는 구조체를 정의한 파일을 설정한다.

    필수 옵션이며 경로와 함께 지정할 수 있다. 구조체 이름은 16자까지 설정할 수 있다.

    [-o 결과물 이름]

    구조체 파일이 하나인 경우 [-o] 옵션 없이 컴파일하면 sdl 파일명은 <구조체 파일명.sdl>이다. 파일명을 다른 이름으로 변경할 때 사용하는 옵션이다.

    [-s]

    서버 프로그램에서 사용되는 옵션으로 구조체 정의 이진 파일을 생성한다. 구조체 정의 이진 파일은 [-c] 옵션을 사용한 경우에 생성되는 파일과 같다.

    구조체 파일을 컴파일하여 구조체의 각 필드를 표준 통신형인 SDL 형식에 맞춰 암호화, 복호화하는 프로그램이 생성된다. 생성되는 파일명은 <구조체 파일명_sdl.c>이며 이 파일은 서버 프로그램과 함께 컴파일해야 한다.

    [-c] 옵션과는 배타적으로 사용되고 [-c] 옵션이 사용되지 않는 경우 기본값으로 사용된다.

    [-v VIEW 정의 파일]

    구조체 버퍼와 필드 키 버퍼 사이에서 형태 변환을 원하는 경우에 이 옵션을 사용하여 구조체 정의 이진 파일을 생성해야 한다. 구조체 버퍼의 데이터를 필드 키 버퍼에 저장하여 서비스를 요청하거나 그 반대로 필드 키 버퍼의 내용을 구조체 버퍼에 저장하여 서비스를 요청할 수 있다.

    사용되는 함수는 fbftos()fbstof()가 있다. 자세한 설명은 예제를 참고한다.

    [-32]

    64Bit 환경에서 32Bit 라이브러리를 사용하기 위해서 구조체 파일을 32Bit로 컴파일한다.

    [-4vb]

    Visual Basic 인터페이스 파일을 생성한다.

    [-4dp]

    Delphi 인터페이스 파일을 생성한다.

    [-f]

    [-4vb] 또는 [-4dp] 옵션과 함께 사용해야 하며 Visual Basic 또는 Delphi 인터페이스 파일명을 지정한다.

    [-V]

    실행 파일의 버전을 확인할 수 있다.

  • 적용 환경

    UNIX 운영 시스템과 MS-DOS 운영 시스템에서 지원된다.

  • 예제

    • VIEW 정의 파일의 구조는 다음과 같다.

      <demo.v>

      VIEW demo
      #type   Cname   fldkey count  flag size null
      String  Demodata       INPUT  5    -    20     “”
      Int     Num     INTDATA       5    -    -       0
      END
      항목 설명

      type

      구조체 안의 멤버 변수의 데이터 타입이다.

      Cname

      멤버 변수명이다.

      fldkey

      지정한 멤버 변수와 매핑되는 필드 키이다.

      count

      구조체에서 저장할 수 있는 최대의 필드 순번이다.

      flag

      현재 사용하지 않는다.

      size

      string 타입일 경우 배열의 크기이다.

      null

      초기화할 때의 값이다.

      구조체 정의 이진 파일은 다음과 같은 명령어로 생성될 수 있다.

      $ sdlc -c -v demo.s -o tmax.sdl
    • 다음은 서버를 위하여 현재 디렉터리에 있는 <demo.s> 구조체 파일을 sdlc로 컴파일하는 명령에 대한 예제이다. 결과로 <demo.sdl>과 <demo_sdl.c>라는 파일이 생성된다. <demo_sdl.c>는 서버 프로그램을 생성하는 데 사용된다.

      $ sdlc -i demo.s
    • 다음은 클라이언트를 위하여 현재 디렉터리에 있는 <demo.s> 구조체 파일을 sdlc로 컴파일하는 명령에 대한 예제이다. 결과로 이진 데이터 파일인 <demo.sdl>라는 파일이 생성된다.

      $ sdlc -c -i demo.s

16. svcrpt

Tmax 시스템을 운용할 때 서비스 수행에 관련된 로그 기록을 분석하여 출력하는 명령어이다. 출력 내용은 수행된 서버 및 서비스의 이름과 횟수, 평균 서비스 수행시간이며 원하는 시간 범위 내에서 1시간 단위로 출력이 가능하다. 서비스 로그는 서버별로 CLOPT 절에 [-l] 옵션을 설정하면 5분 간격으로 $ULOGDIR에 <svclog.mmddyyyy>라는 이름의 파일이 저장된다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ svcrpt [-T | -N | -A] [-s svcname] [-v svrname] [-x] [-S] [-d mm:dd]
             [-c column] [-f hh:mm:ss] [-t hh:mm:ss] [-V] -i logfile
    항목 설명

    [-T|(-N)|-A]

    • [-T] : 서비스의 총 수행시간 순서로 결과를 정렬한다.

    • [-N] : 서비스 수행 횟수를 바탕으로 정렬한다. (기본값)

    • [-A] : 평균 처리시간으로 서비스 로그를 정렬한다.

    [-s svcname]

    출력을 원하는 서비스명을 설정한다.

    [-v svrname]

    출력을 원하는 서버명을 설정한다.

    [-x]

    서버 프로그램명, 최대 및 최소 처리시간 등 더 자세한 내용을 조회한다.

    [-S]

    서비스 요약을 조회한다.

    [-d mm:dd]

    서비스 로그 분석할 날짜를 입력한다.

    [-c column]

    출력하는 기본 컬럼을 입력한 숫자로 변경한다. (기본값: 5)

    [-f hh:mm:ss]

    분석을 시작하는 시간대를 입력한다.

    [-t hh:mm:ss]

    분석을 종료하는 시간대를 입력한다.

    [-V]

    실행 파일의 버전을 조회한다.

    -i logfile

    분석할 로그 파일명을 입력한다.

  • 적용 환경

    Tmax가 설치된 운영 시스템 환경에서 사용할 수 있다.

  • 예제

    • 다음은 'svclog.04152002’라는 로그 파일을 분석하여 1시간 단위로 결과를 표시하는 예제이다.

      $ svcrpt -i svclog.04152002
    • 다음은 'svclog.04152002’라는 로그 파일의 4월15일 오전에 수행된 account라는 서비스의 수행 횟수 및 평균 수행시간을 1시간 단위로 출력하는 예제이다.

      $ svcrpt -s account -d 04:15 -f 09:00:00 -t 12:00:00 -i svclog.04012002

17. tdlclean

run 디렉터리의 구버전 라이브러리 파일이나 불필요한 파일을 정리하는 명령어이다. 특히, [-m] 옵션 또는 [-M] 옵션을 사용하면 공유 메모리에서 지정한 동적 모듈이 완전히 삭제된다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ tdlclean [-p TDL 루트 디렉터리 경로] [-m 라이브러리명] [-M 함수명] [-b]
               [-d yyyymmddhhmi] [-D “n hour|day” [-N 개수] [-v | -V] [-h] [-f]
    항목 설명

    [-p TDL 루트 디렉터리 경로]

    TDL 루트 디렉터리는 ${TDLDIR} 또는 ${TMAXDIR}을 사용한다.

    루트 경로를 별도로 지정해서 실행하는 경우 [-p] 옵션을 이용하여 경로를 지정할 수 있다.

    [-m 라이브러리명]

    TDL 공유 메모리에서 지정한 라이브러리와 run 디렉터리에 파일을 삭제한다.

    [-M 함수명]

    공유 메모리에서 지정한 함수만 삭제하며, run 디렉터리의 관련 파일은 삭제하지 않는다. 단, VERSION=1로 설정된 경우는 [-m] 옵션과 동일하게 동작한다.

    [-b]

    TDL 환경 파일(tdl.cfg)에 BACKUP 파라미터가 지정되어 있더라도, 공유 메모리 파일 백업을 수행하지 않는다. [-m] 또는 [-M] 옵션과 함께 사용한다.

    [-d yyyymmddhhmi]

    지정한 시각(yyyymmddhhmi) 이전의 구버전 라이브러리 파일을 모두 삭제한다. [-m] 또는 [-M] 옵션과 함께 사용할 수 없다.

    [-D “n hour|day”]

    n은 시간(hour) 또는 일(day)을 설정한다. 지정한 시간 또는 일 이전의 구버전 라이브러리 파일을 모두 삭제한다. [-m] 또는 [-M] 옵션과 함께 사용할 수 없다.

    [-N 개수]

    지정한 개수(number)만큼의 구버전 라이브러리 파일을 남기고 나머지 구버전 파일을 모두 삭제한다. [-m] 또는 [-M] 옵션과 함께 사용할 수 없다.

    [-v|-V]

    버전 정보를 출력한다.

    [-h]

    사용법을 출력한다.

    [-f]

    run에 있는 라이브러리 정보를 힙 메모리에 모두 등록한 후 한번에 TDL 공유 메모리에 있는 최신 라이브러리의 함수들과 비교한다.

    [-f] 옵션 사용으로 성능향상을 기대할 수 있다. [-N], [-m], [-M] 옵션과 함께 사용할 수 없다.

  • 예제

    • 다음은 구버전 라이브러리 파일을 삭제하는 예제이다.

      $ tdlclean
    • 다음은 2009년 2월 1일 00시 00분 이전의 구버전 라이브러리 파일을 삭제하는 예제이다.

      $ tdlclean –d 200902010000
    • 다음은 5일 이전의 구버전 라이브러리 파일을 삭제하는 예제이다.

      $ tdlclean -D "5 day"
    • 다음은 mylibrary를 TDL 공유 메모리에서 완전히 제거하고 구버전 파일들도 삭제하는 예제이다.

      $ tdlclean -m mylibrary

18. tdlinit

TDL 공유 메모리 및 동적 모듈을 초기화하는 명령어이다. tdlinit은 설치될 때 단 한 번만 수행하며 Tmax를 부팅하기 전에 수행해야 한다. 멀티 노드 환경인 경우 마스터 노드에서만 수행 가능하다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ tdlinit [-p TDL 루트 디렉터리 경로] [-x export 함수 추출 스크립트 파일 경로] [-f]
              [-b] [-B 백업 파일 경로] [-i] [-v | -V] [-h]
    항목 설명

    [-p TDL 루트 디렉터리 경로]

    TDL 루트 디렉터리는 ${TDLDIR} 또는 ${TMAXDIR}을 사용한다.

    루트 경로를 별도로 지정해서 실행하는 경우 [-p] 옵션을 이용하여 경로를 지정할 수 있다.

    [-x export 함수 추출 스크립트 파일 경로]

    export 함수 추출을 위한 스크립트 파일 경로를 지정한다.

    [-f]

    공유 메모리가 이미 존재할 경우 강제로 초기화한다.

    [-b]

    백업 파일로부터 공유 메모리를 복구한다.

    [-B 백업 파일 경로]

    지정된 백업 파일로부터 공유 메모리를 복구한다.

    [-i]

    백업 복구 후 run 디렉터리를 체크한다. [-b] 또는 [-B] 옵션과 함께 사용한다.

    [-v|-V]

    버전 정보를 출력한다.

    [-h]

    사용법을 출력한다.

  • 예제

    • 다음은 TDL 환경 파일(tdl.cfg)을 참조하여 공유 메모리 및 모듈을 초기화하는 예제이다.

      $ tdlinit
    • 다음은 장비 장애 또는 재시작할 경우 백업 파일로부터 공유 메모리를 복구하는 예제이다.

      $ tdlinit -b
  • 참고

    VERSION=4로 설정한 경우에는 export 함수 추출을 위한 스크립트 파일이 반드시 필요하다.

    /* Example of exp file */
    /* dlib.exp */
    
    #! dlib.so
    TmaxSoft::Airplain
    Car

19. tdlnm

VERSION=2 이상에서 지정한 라이브러리에 대한 자동 export될 함수 목록을 조회하는 명령어이다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ tdlnm [-p TDL 루트 디렉터리 경로] [-x export 함수 추출 스크립트 파일 경로]
            [-m 라이브러리명] [-v | -V] [-h]
    항목 설명

    [-p TDL 루트 디렉터리 경로]

    TDL 루트 디렉터리는 ${TDLDIR} 또는 ${TMAXDIR}을 사용한다.

    루트 경로를 별도로 지정해서 실행하는 경우 [-p] 옵션을 이용하여 경로를 지정할 수 있다.

    [-x export 함수 추출 스크립트 파일 경로]

    export 함수 추출을 위한 스크립트 파일 경로를 지정한다.

    [-m 라이브러리명]

    자동 export 함수 목록 조회를 위한 라이브러리명을 지정한다.

    [-v|-V]

    버전 정보를 출력한다.

    [-h]

    사용법을 출력한다.

  • 예제

    다음은 mylibrary 파일의 export 함수 목록을 조회하는 예제이다.

    $ tdlnm -m mylibrary

20. tdlrm

TDL을 더 이상 사용하지 않을 경우에 공유 메모리를 완전히 제거하기 위한 명령어이다. tdlrm을 할 경우 tdlcall()을 사용할 수 없다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ tdlrm [-p TDL 루트 디렉터리 경로] [-v | -V] [-h]
    항목 설명

    [-p TDL 루트 디렉터리 경로]

    TDL 루트 디렉터리는 ${TDLDIR} 또는 ${TMAXDIR}을 사용한다.

    루트 경로를 별도로 지정해서 실행하는 경우 [-p] 옵션을 이용하여 경로를 지정할 수 있다.

    [-v|-V]

    버전 정보를 출력한다.

    [-h]

    사용법을 출력한다.

  • 예제

    다음은 TDL 공유 메모리를 삭제하는 예제이다.

    $ tdlrm

21. tdlseqno

특정 모듈과 함수의 시퀀스 번호를 조회한다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ tdlseqno [-m module|-M library [-p TDL 루트 디렉터리 경로]] [-V] [-h]
    항목 설명

    [-m module]

    해당 함수 이름을 지정한다.

    [-M library]

    해당 라이브러리 이름을 지정한다.

    [-p TDL 루트 디렉터리 경로]

    TDL 루트 디렉터리는 ${TDLDIR} 또는 ${TMAXDIR}을 사용한다.

    루트 경로를 별도로 지정해서 실행하는 경우 [-p] 옵션을 이용하여 경로를 지정할 수 있다.

    [-V]

    버전 정보를 출력한다.

    [-h]

    사용법을 출력한다.

  • 예제

    • ${TDLDIR} 또는 ${TMAXDIR}의 해당 모듈과 함수의 시퀀스 번호를 조회하는 예제이다.

      $ tdlseqno -m module1 -M library1
    • 특정 디렉터리 아래의 해당 모듈과 함수의 시퀀스 번호를 조회하는 예제이다.

      $ tdlseqno -m module1 -M library1 -p dirname

22. tdlshm

TDL 공유 메모리 정보를 조회하거나, 통계 모니터링 활성화 여부 및 모듈 활성화 여부를 설정하는 명령어이다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ tdlshm [-p TDL 루트 디렉터리 경로] [-r] [-S] [-n 노드명] [-m 함수명]
             [-M 라이브러리명] [-C] [-c start_index end_index] [-s e|d|r]
             [-u e|d] [-I 최소충돌횟수] [-v | -V] [-h]
    항목 설명

    [-p TDL 루트 디렉터리 경로]

    TDL 루트 디렉터리는 ${TDLDIR} 또는 ${TMAXDIR}을 사용한다.

    루트 경로를 별도로 지정해서 실행하는 경우 [-p] 옵션을 이용하여 경로를 지정할 수 있다.

    [-r]

    멀티 노드 환경에서 업데이트 동기화 중인 모듈 정보를 조회한다.

    [-S]

    동적 모듈 통계 정보를 조회한다. 통계 정보는 각 모듈별 수행시간 AVG/MIN/MAX와 CPU AVG/MIN/MAX가 조회된다.

    [-n 노드명]

    멀티 노드 환경에서 조회할 노드를 지정한다.

    [-m 함수명]

    조회할 함수명을 지정한다.

    [-M 라이브러리명]

    조회할 라이브러리명을 지정한다.

    [-C]

    전체 모듈에 대해 dlopen, dlsym을 수행한다.

    [-c start_index end_index]

    지정한 인덱스 범위의 모듈에 대해 dlopen, dlsym을 수행한다.

    [-s e|d|r]

    동적 모듈 통계 수집을 설정한다.

    • e : 활성화

    • d : 비활성화

    • r : 초기화

    [-u e|d]

    동적 모듈을 설정한다.

    • e : 활성화

    • d : 비활성화

    한 번에 하나의 모듈만 설정 가능하므로, 반드시 [-m] 또는 [-M] 옵션을 함께 사용해야 한다.

    • VERSION=1, VERSION=2인 경우 모듈은 전체 라이브러리에서 유일함으로 보장해야 하기 때문에 [-m] 옵션만 지정한다. 함수명이 전체적으로 유일해야 한다.

    • VERSION=3이고 라이브러리가 다를 경우 함수명은 중복되어도 상관없기 때문에 [-m], [-M] 옵션은 반드시 입력해야 한다. [-m] 옵션 없이 [-M] 옵션만 사용해서는 안 된다.

    [-I 최소충돌횟수] (대문자 i)

    각 모듈마다 hash collision에 의한 버킷을 검색할 때 비교횟수를 출력한다.

    0 이상의 값을 설정할 수 있으며, 지정한 횟수 이상의 모듈에 대해서만 출력한다. [-p], [-m], [-M], [-r] 옵션과 함께 사용할 수 있다.

    [-v|-V]

    버전 정보를 출력한다.

    [-h]

    사용법을 출력한다.

  • 예제

    • 다음은 기본적인 tdlshm 사용 예이다.

      $ tdlshm -S TDLDIR = /home/jeffry/tmax LOGDIR = /home/jeffry/tmax/log/dlog
      - BACKUP = /home/jeffry/tmax/log/dlog/tdl.bak VERSION = 2, SHMKEY = 0x90000,
      - IPCPERM = 0750 MAXMODULES = 256, CURMODULES = 3, Global SEQNO = 45e27d28,
      - MONITOR = Y MODE = SINGLE, DOMAINID = 1 Index = 125, Funcname = myfunction1,
      - Libname = myfunction1, Seqno = 45e27d28, Active = Y Count = 0 SVC: Avg = 0.000,
      - MinTime = 0.000, Maxtime = 0.000 CPU: Avg = 0.000, MinTime = 0.000,
      - Maxtime = 0.000 Index = 126, Funcname = myfunction2, Libname = myfunction2,
      - Seqno = 45e27d28, Active = Y Count = 0 SVC: Avg = 0.000, MinTime = 0.000,
      - Maxtime = 0.000 CPU: Avg = 0.000, MinTime = 0.000, Maxtime = 0.000 Index = 127,
      - Funcname = myfunction3, Libname = myfunction3, Seqno = 45e27d28, Active = Y
      - Count = 0 SVC: Avg = 0.000, MinTime = 0.000, Maxtime = 0.000 CPU: Avg = 0.000,
      - MinTime = 0.000, Maxtime = 0.000 $ tdlshm TDLDIR = /home/jeffry/tmax LOGDIR = /home/jeffry/tmax/log/dlog
      - BACKUP = /home/jeffry/tmax/log/dlog/tdl.bak VERSION = 2, SHMKEY = 0x90000,
      - IPCPERM = 0750 MAXMODULES = 256, CURMODULES = 3, Global SEQNO = 45e27d28,
      - MONITOR = Y MODE = SINGLE, DOMAINID = 1 Index = 125, Funcname = myfunction1,
      - Libname = myfunction1, Seqno = 45e27d28, Active = Y Index = 126,
      - Funcname = myfunction2, Libname = myfunction2, Seqno = 45e27d28, Active = Y,
      - Index = 127, Funcname = myfunction3, Libname = myfunction3, Seqno = 45e27d28,
       Active = Y
    • 다음은 TDL 통계 정보 조회를 위한 사용 예이다.

      $ tdlshm -S TDLDIR = /home/jeffry/tmax LOGDIR = /home/jeffry/tmax/log/dlog
      - BACKUP = /home/jeffry/tmax/log/dlog/tdl.bak VERSION = 2, SHMKEY = 0x90000,
      - IPCPERM = 0750 MAXMODULES = 256, CURMODULES = 3, Global SEQNO = 45e27d28,
      - MONITOR = Y MODE = SINGLE, DOMAINID = 1 Index = 125, Funcname = myfunction1,
      - Libname = myfunction1, Seqno = 45e27d28, Active = Y Count = 0 SVC: Avg = 0.000,
      - MinTime = 0.000, Maxtime = 0.000 CPU: Avg = 0.000, MinTime = 0.000,
      - Maxtime = 0.000 Index = 126, Funcname = myfunction2, Libname = myfunction2,
      - Seqno = 45e27d28, Active = Y Count = 0 SVC: Avg = 0.000, MinTime = 0.000,
      - Maxtime = 0.000 CPU: Avg = 0.000, MinTime = 0.000, Maxtime = 0.000 Index = 127,
      - Funcname = myfunction3, Libname = myfunction3, Seqno = 45e27d28, Active = Y
      - Count = 0 SVC: Avg = 0.000, MinTime = 0.000, Maxtime = 0.000 CPU: Avg = 0.000,
      - MinTime = 0.000, Maxtime = 0.000
    • 다음은 [-s] 또는 [-u] 옵션 사용 예이다.

      $ tdlshm -s r
      $ tdlshm -s e -m myfunction
      $ tdlshm -s d -m myfunction
      $ tdlshm -u e -m myfunction
      $ tdlshm -u d -m myfunction
    • 다음은 [-C] 또는 [-c] 옵션 사용 예이다.

      $ tdlshm -C
      $ tdlshm -c 0 1024
      $ tdlshm -c 1024

23. tdlsync

TDL 공유 메모리와 백업 파일 동기화를 수행하는 명령어이다. 자동 백업을 사용하지 않을 경우 필요한 관리 툴이다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ tdlsync [-p TDL 루트 디렉터리 경로] [-B 백업 파일 경로] [-v | -V] [-h]
    항목 설명

    [-p TDL 루트 디렉터리 경로]

    TDL 루트 디렉터리는 ${TDLDIR} 또는 ${TMAXDIR}을 사용한다.

    루트 경로를 별도로 지정해서 실행하는 경우 [-p] 옵션을 이용하여 경로를 지정할 수 있다.

    [-B 백업 파일 경로]

    백업 파일 경로를 지정한다.

    [-v|-V]

    버전 정보를 출력한다.

    [-h]

    사용법을 출력한다.

  • 예제

    다음은 TDL 환경 파일(tdl.cfg)의 'BACKUP' 파라미터에 지정된 파일로 공유 메모리를 백업하는 예제이다.

    $ tdlsync

24. tdltrace

TDL 환경 설정 정보와 통계 정보를 조회한다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ tdltrace [-p 디렉터리 경로] [-P PID] [-V] [-h] [-c]
    항목 설명

    [-p 디렉터리 경로]

    TDL 루트 디렉터리는 ${TDLDIR} 또는 ${TMAXDIR}을 사용한다.

    루트 경로를 별도로 지정해서 실행하는 경우 [-p] 옵션을 이용하여 경로를 지정할 수 있다.

    [-P PID]

    특정 서버 프로세스의 정보를 조회한다.

    [-V]

    버전 정보를 출력한다.

    [-h]

    사용법을 출력한다.

    [-c]

    좀비 프로세스를 찾고 이와 관련된 정보를 지운다.

  • 예제

    $ tdltrace
    $ tdltrace -P 20113
    $ tdltrace -P 20113 -p dirname
    $ tdltrace -c

25. tdlupdate

지정한 동적 모듈을 업데이트하는 명령어이다. [-m] 옵션으로 라이브러리명을 반드시 지정해야 한다. 지정한 라이브러리가 이미 등록되어 있을 경우는 지정한 라이브러리를 업데이트하며 아직 등록되어 있지 않을 경우 새로 추가한다. 멀티 노드 환경인 경우 마스터, 슬레이브 노드에서 모두 수행 가능하다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ tdlupdate [-p TDL 루트 디렉터리 경로] [-r 디렉터리 경로]
                [-x export 함수 추출 스크립트 파일 경로] [-f] [-m 라이브러리명] [-b]
                [-c] [-l 파일명] [-i] [-Q seqno] [-C [cp|mmap|self]] [-v | -V] [-h]
    항목 설명

    [-p TDL 루트 디렉터리 경로]

    TDL 루트 디렉터리는 ${TDLDIR} 또는 ${TMAXDIR}을 사용한다.

    루트 경로를 별도로 지정해서 실행하는 경우 [-p] 옵션을 사용하여 경로를 지정할 수 있다.

    [-r 디렉터리 경로]

    tdlupdate를 실행 할 원격 노드의 TDLDIR을 지정한다.

    [-p] 옵션을 사용할 경우 두 개 이상의 TDL 루트 디렉터리를 가지게 되는데 이를 지정하는 용도로 사용한다.

    [-x export 함수 추출 스크립트 파일 경로]

    export 함수 추출을 위한 스크립트 파일 경로를 지정한다.

    [-f]

    VERSION=2에서 다른 라이브러리에 함수명이 이미 존재하더라도 강제로 업데이트 한다.

    [-m 라이브러리명]

    업데이트할 라이브러리명을 지정한다.

    [-b]

    TDL 환경 파일(tdl.cfg)에 BACKUP 파라미터가 지정되어 있더라도 공유 메모리 파일 백업을 수행하지 않는다.

    [-c]

    멀티 노드 환경에서 노드 사이 버전 동기화를 수행한다.

    [-l 파일명]

    업데이트할 목록을 파일로 작성하여 업데이트를 수행한다. 이때 전체 파일을 검사 후 이상이 없을 경우에만 업데이트를 수행한다. 이상이 있을 경우에는 rollback을 원칙으로 한다.

    모듈의 구분자는 콤마(,) 또는 <Enter>이다.

    [-i]

    반영해야 하는 대상 파일이 존재하지 않더라도 중단하지 않고 계속 다음 파일을 update한다.

    [-Q seqno]

    현재 시간이 아닌 강제로 부여한 seqno를 사용한다.

    [-C [cp|mmap|self]]

    TDL 환경 파일(tdl.cfg)에 'COPY' 파라미터 설정보다 우선하여 파일 복사 방법을 변경한다.

    • cp

    • mmap

    • self

    [-v|-V]

    버전 정보를 출력한다.

    [-h]

    사용법을 출력한다.

  • 예제

    • 다음은 <mylibrary.so> 파일을 업데이트하는 예제이다.

      $ tdlupdate -m mylibrary
    • 다음은 여러 개의 모듈을 업데이트하는 예제이다. 구분자는 콤마(,)이며, 공백 없이 작성해야 한다. 개수 제한은 없으며, 멀티 노드일 경우는 1024개로 제한한다.

      $ tdlupdate -m mylibrary,mylibrary2,mylibrary3
    • 다음은 업데이트할 목록을 파일로 작성하여 업데이트를 수행하는 예제이다. 파일 내에 명시하는 모듈 수 제한은 없으며, 멀티 노드일 경우는 1024개로 제한한다.

      $ tdlupdate -l update.list
    • update.list 작성 방법이다. 다음과 같이 콤마(,)나 <Enter>를 구분자로 사용하여 작성한다.

      mylibrary,mylibrary2
      mylibrary3
    • 다음은 멀티 노드 환경에서 공유 메모리 정합성에 문제가 있을 경우 동기화를 수행하는 예제이다.

      $ tdlupdate -c
  • 참고

    VERSION=4로 설정한 경우에는 export 함수 추출을 위한 스크립트 파일이 반드시 필요하다.

    /* Example of exp file */
    /* dlib.exp */
    
    #! dlib.so
    TmaxSoft::Airplain
    Car

26. tencrypt

SVRGROUP 절의 OPENINFO에 들어가 문장에 대해서 암호화하는 유틸리티로 OPENINFO에는 DB에 접속 아이디 비밀번호가 조회된다.

DB 관리자와 TP 관리자가 분리되어 보안이 되어야 하는 상황에서는 cfl을 실행하면 DB 관리자가 있어야 하는 일이 발생하기 때문에 불편한 사항이 발생할 수 있다. tencrypt를 사용하면 DB 관리지가 OPENINFO에 들어가는 값을 암호화해서 TP 관리자에게 문장을 넘겨주면 DB 정보 노출없이 자연스럽게 TP관리자와 DB관리자가 보안에 문제 없이 운영될 수 있다.

tencrypt는 cfl에서 해석 가능한 암호화한 문장을 출력하는 기능으로 사용법은 아래에서 설명한다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ tencrypt [-e 문장 [-d]] [-g]
    항목 설명

    [-e 문장 [-d]]

    암호화할 문장을 입력한다.

    tencrypt -e ORACLE_XA+Acc=P/scott/tiger+SesTm=6

    사용하면 다음과 같이 화면에 출력된다.

    Please insert the following text in the configuration file "OPENIFNO" field.
    [@@QEAzMWU4Y0lOYXd2Y2lkSzdpTW1lL0F4U0d1NCswekkxSFlaMjJweld
    OTERaM2ptVT0jQEBvNVJPVUE9PQ==@@]

    그러면 OPEINFO 필드에 [] 안의 내용물을 copy한다.

    OPEINFO = "@@QEAzMWU4Y0lOYXd2Y2lkSzdpTW1lL0F4U0d1NCswekkx
    SFlaMjJweldOTERaM2ptVT0jQEBvNVJPVUE9PQ==@@"

    -d 옵션을 같이 사용할 경우 복호화된 결과도 함께 출력한다.

    [-g]

    SEED 사용을 위해서 모든 모듈 및 노드에서 공통적으로 사용하는 비밀키가 저장된 파일이 생성된다.

    비밀키 파일을 생성해야만 암복호화가 가능하며, 비밀키를 변경하면 암호화 과정을 다시 수행해야 한다. 멀티 노드에 적용하는 경우에는 똑같은 비밀키가 적용되도록 하기 위해서, 생성된 비밀키 파일의 내용을 복사해서 다른 노드에도 적용해야한다.

    암호화 방식이 SEED가 아닌 기존 방식의 경우 비밀키 파일을 생성하지 않는다.

  • 적용 환경

    tencrpyt만 따로 copy하여 사용 가능하다.

cfl 명령어에 대한 자세한 내용은 cfl을 참고한다.

27. tmadmin

Tmax 시스템 관리 명령어이다. Tmax 시스템의 동적인 관리를 위해 Command 인터프리터 형태로 제공되는 모니터 프로그램이다. Tmax 시스템이 사용하는 공유 메모리의 정보를 읽어서 동작 중인 시스템의 환경설정 내용이나 서버 프로세스의 동작 상태, 또는 서비스 상태 등을 파악할 수 있다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ tmadmin [-l] [-s|m] [-h] [-f [config_file]] [-n [node_name]] [-v] [-V]
              [-p] [-t] [-i lic_info]
    항목 설명

    [-l]

    racd를 통하여 여러 노드로 구성된 시스템이 중앙에서 집중 관리될 경우에 로컬 노드만을 관리하기 위해서 사용하는 옵션이다. 각각의 노드들은 이 옵션으로 자신의 시스템만을 관리할 수 있다.

    [-s]

    읽기 전용 모드로 각각의 tmadmin 툴을 10개까지 사용할 수 있는 옵션이다. 이 옵션을 사용하면 환경을 동적으로 변경시킬 수 없다. (기본값)

    [-m]

    동적으로 환경을 변경할 수 있는 마스터 모드이다. 1명의 사용자만이 마스터 모드를 사용할 것을 권장한다. 1명 이상의 사용자가 환경을 변경할 경우 심각한 시스템 문제가 발생할 수 있다. 환경 파일은 변경하지 않고 정해진 매뉴얼을 따른다.

    [-h]

    명령어 도움말 옵션이다.

    [-f [config_file]]

    지정해 준 이진 파일을 관리한다. 환경 파일을 기본값인 tmconfig가 아닌 다른 이름으로 이진 파일을 생성한 경우 tmadmin을 구동할 때 이진 파일명을 지정한다.

    [-n [node_name]]

    특정 노드에 대한 모니터링이 가능하도록 한다. 멀티 노드 환경에서 tmadmin을 구동하는 경우 이 옵션을 설정하면 지정된 노드에 대한 정보만을 확인하므로 보다 편리하게 시스템을 관리할 수 있다.

    [-v]

    Tmax의 버전을 확인한다. 이 옵션을 설정하면 Tmax 기동과 상관없이 어느 위치에서나 버전 확인이 가능하다.

    [-V]

    실행 파일의 버전을 확인할 수 있다.

    [-p]

    st –p, st –s, si, ci, cfg의 명령어가 수행될 때 결과가 화면 단위로 출력되도록 하는 옵션이다(more 기능).

    [-t]

    명령어 수행에 대한 시작 및 종료시간을 출력한다.

    [-t] 옵션을 주고 tmadmin을 실행하면 다음과 같은 형식으로 시간을 출력한다.

    • 형식

      [TIME][타입   ] : hh:MM:ss:millisec

      다음은 타입 항목에 대한 설명이다.

      • START : 콘솔에서 명령어를 실행할 때 시작시간을 출력한다.

      • END : 콘솔에서 명령어의 실행이 종료되면 종료시간을 출력한다(리모트 노드의 명령까지 수행한 이후의 시간이다).

      • R_END : 콘솔에서 명령어를 실행할 때 리모트 노드의 수행이 종료되면 종료한 시간(tmadmin을 실행한 로컬의 시간으로 리모트 노드의 시간이 아니다)을 출력한다.

      • RP_START : tmadmin의 repeat 명령어를 사용하여 수행할 경우 한 건의 명령을 시작하기 전 시간을 출력한다.

      • RP_END : tmadmin의 repeat 명령어를 사용하여 수행할 경우 한 건의 명령이 종료되면 종료시간을 출력한다(리모트 노드의 명령까지 수행한 이후의 시간이다).

    [-i lic_info]

    입력한 license.dat 파일의 라이선스 정보를 출력한다.

  • 적용 환경

    Tmax 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다.

  • 예제

    다음은 tmadmin 프로그램이 실행 상태임을 나타내는 예제이다.

    $ tmadmin

    tmadmin을 실행하면 다음의 메시지와 함께 프롬프트(prompt)가 나타낸다.

    --- Welcome to Tmax Admin (Type “quit” to leave) --- $$1 (tmadm):

cfl, tmboot, tmdown 명령어에 대한 자세한 내용은 각각 cfl, tmboot, tmdown을 참고한다.

tmadmin 툴에서 사용할 수 있는 명령어

다음은 tmadmin을 실행한 후 사용할 수 있는 명령어이다.

  • 환경 정보 조회

    명령어 설명

    tmaxinfo(ti)

    Tmax 시스템 정보를 확인한다.

    history(hist)

    이전에 저장된 명령어를 조회한다.

    config(cfg)

    환경설정 내용을 조회한다.

  • 동작상태 정보 조회

    명령어 설명

    stat(st)

    프로세스 및 서비스 상태의 통계를 조회한다. 와일드카드(Wild card)를 사용할 수 있다.

    gwinfo

    GATEWAY 절에 정의한 게이트웨이들의 채널 상태를 확인한다.

    txgwinfo(txgwi)

    Tmax 게이트웨이의 정보를 확인한다.

    nontxgwinfo

    Tmax Non 트랜잭션 게이트웨이의 정보를 확인한다.

    jgwinfo

    JEUS 게이트웨이의 정보를 확인한다.

    ajgwinfo

    JEUS Async 게이트웨이의 정보를 확인한다.

    wsgwinfo

    웹 서비스 게이트웨이의 정보를 확인한다.

    smtrc

    GID를 이용하여 해당 서비스의 수행 상태를 조회한다.

    clhsinfo

    멀티 노드 환경에서 CLH 사이의 연결 상태 정보를 확인한다.

    tmmsinfo

    멀티 노드 환경에서 TMM 사이의 연결 상태 정보를 확인한다.

    repeat(r)

    명령어를 반복한다.

    clientinfo(ci)

    접속 클라이언트를 확인한다.

    svrinfo(si)

    서버 정보를 확인한다. 와일드카드(Wild card)를 사용할 수 있다.

    txquery(txq)

    트랜잭션 처리 정보를 확인한다.

    rqstat(rqs)

    RQ의 상태를 확인하거나 디스크 큐에 쌓여 있는 서비스를 처리한다.

  • 운용 관리

    명령어 설명

    suspend(sp)

    동작 중인 서버 프로세스를 중지한다.

    resume(rs)

    중지된 서버 프로세스를 재개한다.

    advertise / unadvertise

    특정 서비스명을 advertise/unadvertise한다.

    restat

    특정 서버 프로세스 또는 모든 서버 프로세스의 통계 정보를 초기화한다.

    rebootsvr(rbs)

    서버 프로그램을 교체한다.

    cfgadd(ca)

    동적으로 서비스를 추가한다.

    set

    현재 설정된 환경설정 값을 동적으로 변경한다.

    qpurge(qp)

    큐에 쌓인 업무를 삭제한다.

    discon(ds)

    접속 중인 클라이언트를 강제로 해제한다.

    logstart / logend

    로깅을 시작 및 종료한다.

    chtrc

    Trace 관리를 한다.

    chlog

    TMM, CLH, 특정 서버의 로그 레벨을 런타임 도중 동적으로 변경한다.

    txcommit / txrollback

    트랜잭션 처리 중에 장애가 발생하는 경우 commit 및 rollback을 재이슈하여 해당 트랜잭션을 종료하는 기능이다.

    wsgwreload

    웹 서비스 게이트웨이의 서비스 정보, 설정 변경을 적용한다.

    restart

    서버 프로세스를 재기동한다.

  • 기타

    명령어 설명

    !

    바로 앞에서 사용한 명령어를 반복한다.

    quit(q)

    tmadmin을 종료한다.

    help(h)

    사용 가능한 옵션 리스트를 조회한다.

    nodeset(ns)

    멀티 노드 환경에서 특정 노드에 대한 정보만을 얻을 경우에 사용한다.

    nodeunset(nus)

    멀티 노드 환경에서 특정 노드에 대한 정보만을 얻을 때 설정한 것을 해제한다.

    tmd

    가상의 클라이언트 애뮬레이터로서 서비스 프로그램의 유효성을 검토하는 경우 클라이언트 프로그램을 별도로 작성하지 않고 이 유틸리티를 이용한다.

각 명령어의 사용방법 및 처리 결과에 대한 자세한 내용은 Tmax Administration Guide의 tmadmin을 참고한다.

28. tmapm

Tmax 시스템에서 서비스 타임아웃은 시그널 알람을 사용하여 동작한다. tmapm은 서비스에서 시그알람을 재정의하거나 시그널 알람을 사용하지 못하는 서비스에 대해서 서비스 타입 아웃을 제공하는 서버이다.

tmapm은 UCS 서버로 환경설정 파일의 SERVER 절에 다음과 같이 설정한다.

*SERVER
tmapm    CLOPT = [-i sec] [-r sec] [-c command] [-l [ 0 | 1 | 2]]
항목 설명

[-i sec]

서비스 타임을 체크하는 주기(초)이다. 짧을수록 시스템 부하가 증가한다. 소수점도 설정 가능하다.

[-r sec]

서비스 타임 이후 커맨드를 실행하기까지의 제한 시간(초)이다. 정수형으로 설정해야 한다.

[-c command]

해당 서비스가 수행시간(SVCTIME + 커맨드 실행 제한시간)까지 RUNNING 상태일 경우 실행할 커맨드이다. 셸 명령어나 스크립트가 될 수 있다.

[-c] 옵션으로 설정한 커맨드를 실행할 경우 다음과 같이 파라미터를 전달한다.

  • User Command : kill.sh

  • PID : 9659

  • SVRNAME : svr2

  • SVCNAME[Elapse Time] : TOUPPER[5]

[-l [ 0|1|2]]

사용자 로그 레벨이다. 기본값은 0이며, 높을수록 좀 더 자세한 정보 출력한다.

다음은 tmapm 설정의 예이다.

*SERVER
tmapm    SVGNAME = svg,
         SVRTYPE = UCS,
         CLOPT = "-o ulog  --  -i 5 -r 1 -c kill.sh -l 1"

29. tmaxlibver

Tmax 라이브러리의 버전 정보를 조회하는 명령어이다. Tmax 6 버전부터 컴파일하지 않고도 라이브러리의 버전 정보를 볼 수 있도록 tmaxlibver의 기능이 변경되었다.

CFLAGS 환경변수를 설정한 후 tmaxlibver를 실행하면 CFLAGS에 지정된 컴파일 옵션을 사용한다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ tmaxlibver {-l filename} {-d | -s} [-6] [-L directory] [-h]
    항목 설명

    {-l filename}

    조회하기 위한 라이브러리명을 지정한다.

    {-d|-s}

    라이브러리의 dynamic (-d) 또는 static (-s)의 여부를 설정한다.

    [-6]

    라이브러리가 64Bit일 경우 설정하는 옵션으로 설정하지 않으면 32Bit로 동작한다. -6이 설정되고 [–L] 옵션이 설정되지 않은 경우 ${TMAXDIR}/lib64 디렉터리에 위치한 라이브러리를 자동 참조한다.

    [-L directory]

    조회하기 위한 라이브러리가 위치하는 절대 경로 또는 상대 경로를 입력한다. 지정하지 않은 경우 [-6] 옵션에 따라 디폴트 경로가 달라지게 된다.

    [-h]

    명령어 도움말 옵션이다.

  • 예제

    $ tmaxlibver -l libsvr.so -d -6
    libsvr.so for TMAX Version 6.0 Sp #0 Fix #1 r11518 fd 32768 64bit x86 Linux2 6 Glibc2 3 patch

DB stub 등 일부 라이브러리에서는 버전 정보 조회 기능을 사용할 수 없다.

30. tmaxtrace

Tmax 애플리케이션 관리자나 개발자가 각 애플리케이션에 대하여 Runtime Tracing을 할 수 있도록 하는 명령어이다. Runtime Tracing은 애플리케이션이 실행하는 동안의 수행에 대하여 기록을 남기는 Trace point 개념에 근거하고 있다. Trace point는 tpcall()과 같은 atmi 함수의 시작이나 끝, 트랜잭션의 시작 등을 예로 들 수 있다.

Trace point가 발생했을 때 나타나는 현상은 다음과 같다.

  1. Trace point가 유효한 것인지를 확인하기 위해 필터가 적용된다. 유효하다면 Trace record가 receiver 파일에 기록되고 마지막으로 Action이 일어난다. Action은 프로세스를 종료(abort)시키거나, 시스템 call을 호출하는 등 여러 가지가 있을 수 있으며 이는 선택 옵션이다.

  2. Filter, Receiver, Trigger 항목은 아래에서 설명하는 스펙에 따라 정의된다. 이 항목은 TMAX_TRACE의 환경변수를 선언하면 정의할 수 있으며 클라이언트와 서버 모두 설정할 수 있다.

    실행 중인 프로세스의 spec을 변경하기 위해서는 tmadmin 툴의 chtrc 명령어로 변경할 수 있다.

  3. TMAX_TRACE 스펙 중 Trigger 옵션을 'dye’로 설정하였을 경우에는 해당 프로세스의 요청을 받는 서버의 프로세스들도 Runtime Tracing이 수행된다. 클라이언트에서 dye를 설정하였다면 해당 서비스를 수행하는 프로세스가 atmi category가 되며, Runtime Tracing이 수행된다.

  4. 클라이언트에서 TMAX_TRACE를 사용할 경우 클라이언트 환경설정 파일(tmax.env)이나 환경변수에 ULOGPFX를 반드시 지정한다. 아래와 같이 지정할 경우 해당 디렉터리에 <clilog.날짜> 파일이 생성되며, 이 파일에 해당 로그가 쌓인다.

    예)

    ULOGPFX=/data1/tmax50/client/clilog

다음은 TMAX_TRACE의 사용법에 대한 설명이다.

  • 사용 방법

    TMAX_TRACE=filter-spec:receiver-spec[:trigger-spec]
    • filter-spec : category

      특정 category에 대하여 Runtime Tracing을 수행할지를 결정한다. 모든 category를 표현하기 위해서 애스터리스크(*) 문자를 설정할 수 있으며 filter-spec에 값을 설정하지 않을 경우 아무런 category가 선택되지 않았다는 것을 의미한다.

      다음은 category의 목록이다.

      category 설명

      atmi

      사용자가 호출한 ATMI 및 TX 인터페이스(tp 또는 tx로 시작하는 함수)를 호출하는 경우 Runtime Tracing이 수행된다.

      iatmi

      사용자가 호출한 ATMI 및 TX 인터페이스 외에도 인터페이스에서 내부적으로 호출한 인터페이스들까지도 Runtime Tracing이 수행된다.

      xa

      모든 XA 인터페이스를 호출하는 경우 Runtime Tracing이 수행된다.

      trace

      Tmax Trace가 설정된 정보를 출력한다.

      gqs

      사용자가 호출한 GQ 인터페이스(gq로 시작하는 함수)를 호출하는 경우 Runtime Tracing이 수행된다.

      tdl

      사용자가 호출한 TDL 인터페이스(tdl로 시작하는 함수)를 호출하는 경우 Runtime Tracing이 수행된다.

      category를 설정할 때 여러 항목을 파이프라인(|) 구분자로 지정할 수 있다.

      atmi|xa|tdl
    • receiver-spec : [/regular-expression/]receiver

      receiver-spec를 설정하지 않을 경우 아무런 trace record도 기록이 되지 않는다.

      항목 설명

      receiver

      receiver는 trace record가 보내지는 파일이다. receiver는 ulog, stdout, stderr가 사용된다. ulog로 설정된 경우 user log로 Runtime Tracing이 수행된다. stdout, stderr의 경우 각각 stdout, stderr로 Runtime Tracing이 수행된다.

      receiver에 다음과 같은 형태로 기록된다.

      process-name.pid.hhmmss: TMAXTRACE:cc data

      cc는 category에 따라서 달라진다.

      • atmi인 경우 : at

      • iatmi인 경우 : dt

      • xa인 경우 : xa

      • trace인 경우 : tr

      regular-expression

      filter-spec에 적용되는 Trace point를 제한할 수 있다.

    • trigger-spec : [/regular-expression/]action

      항목 설명

      trigger

      trace record가 receiver로 보내진 후의 action을 설정하는 항목으로 옵션 항목이다.

      action

      다음은 action에 설정할 수 있는 동작에 대한 설명이다.

      • abort : abort()를 호출하여 프로세스를 종료시킨다.

      • ulog(message) : user log에 메시지를 쓴다.

      • system(command) : system()을 사용하여 command를 실행시킨다. Windows에서는 지원하지 않는다.

      • trace(trace-spec) : trace-spec으로 Tmax trace의 스펙을 변경한다.

      • dye : 메시지를 dyeing한다.

      • undye : 메시지를 dyeing하지 않는다.

      • sleep(seconds) : 설정한 seconds만큼 sleep한다. Windows에서는 지원하지 않는다.

  • 예제

    • 다음은 atmi 인터페이스를 호출한 경우 모두 Runtime Tracing이 수행되는 예제이다.

      export TMAX_TRACE=atmi:ulog
    • 다음은 atmi/tx 인터페이스 중에서 tpcall()을 호출한 경우에만 Runtime Tracing이 수행되는 예제이다.

      export TMAX_TRACE=atmi:/tpcall/ulog
    • 다음은 atmi/tx 인터페이스가 호출될 경우 abort()를 이용하여 해당 서버 프로세스를 종료시키는 예제이다.

      export TMAX_TRACE=atmi:ulog:abort
    • 다음은 atmi/tx 인터페이스를 호출한 경우 모두 Runtime Tracing이 수행되지만 tpend()를 호출한 경우에는 해당 프로세스는 abort()에 의해 종료되는 예제이다.

      export TMAX_TRACE=atmi:ulog:/tpend/abort
    • 다음은 모든 category에 대해서 Runtime Tracing이 수행되는 예제이다.

      export TMAX_TRACE=*:ulog:dye
    • 다음은 atmi/tx 인터페이스를 호출한 후에 trace spec이 "*:ulog:dye"로 수정되는 예제이다.

      export TMAX_TRACE=atmi:ulog:trace(*:ulog:dye)
    • 다음은 tpalloc() 호출 후에 trace spec이 "*:ulog:dye"로 수정되는 예제이다.

      export TMAX_TRACE=atmi:ulog:/tpalloc/trace(*:ulog:dye)
    • 다음은 'TMAX_TRACE=atmi:ulog:dye’와 동일한 예제이다.

      export TMAX_TRACE=on
    • 다음은 tmaxtrace를 사용하지 않는 예제이다. (기본값)

      export TMAX_TRACE=off
    • 다음은 tx, tp함수만 로깅하는 예제이다.

      export TMAX_TRACE='*:/t[px].*/ulog:undye'

31. tmboot

Tmax 시스템의 전체나 또는 일부분을 실행시키는 명령어로 Tmax 환경 파일을 바탕으로 시스템을 실행한다. 옵션 없이 실행되거나 [-f] 옵션만이 사용되면, 모든 Tmax 관리 프로세스들과 Tmax 환경 파일의 SERVER 절에 등록된 모든 서버 프로세스들을 실행시킨다.

NODE 절에 등록된 모든 노드에서 Tmax 관리 프로세스인 TMM, CLL, CLH 프로세스가 순서대로 실행된다. SVRGROUP 절에 OPENINFO 항목이 등록된 서버 그룹이 존재한다면, 각 서버 그룹별로 TMSNANEMINTMS 항목을 참조하여 TMS 프로세스들이 실행된다. Tmax 관리 프로세스들은 노드별로 정의된 TMAXDIR 디렉터리 하위의 bin 디렉터리에서 실행된다.

Tmax 관리 프로세스들이 생성된 후에는 SERVER 절의 모든 응용 서버 프로세스들이 실행된다. 응용 서버 프로세스들은 SERVER 절에 등록된 순서대로 실행된다. tmboot는 실행된 서버 프로세스의 초기화를 실행한 후에 다음 서버 프로세스를 실행시킨다. 프로세스 초기화는 tpsvrinit()를 이용해서 진행한다. 모든 서버 프로세스들이 초기화를 모두 완료할 때까지 다음 프로세스가 실행되지 않는다. tmboot는 각 응용 서버 프로세스들을 그들의 MIN 항목에 정의된 개수만큼 실행시킨다. MIN 항목이 정의되지 않은 경우 기본값은 1개이다.

tmboot는 SERVER 절의 서버들에 대하여 CLOPT, MIN, MAX 항목의 값을 사용한다. 서버 프로세스가 실행될 때 tmboot에 의해 사용되는 서버의 boot 파라미터이며, 서버의 나머지 항목들은 서버가 실행된 후 시스템에 의해 실행되는 runtime 파라미터이다. 설정 정보는 소스 설정 파일의 SERVER 절을 참고한다.

모든 응용 서버 프로세스들은 동작하는 노드에 정의된 APPDIR 디렉터리에서 실행된다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $tmboot [-A] [-b] [-c] [-f 이진 Tmax 환경파일명]
            [-g servergroup_name [-i] [-s] [-S]} [-h] [-V] [-n node_name]
            [-o clopt_string] [-q rq_svg_name] [-s server_name [-k count] [-a]]
            [-S server_name [-a]] [-t tms_name [-k all]] [-B trb_node] [-T] [-w]
            [-d boot_time] [-W] [-D] [-e clh | cas | tlm] [-R]
    항목 설명

    [-A]

    Tmax 환경 파일의 SERVER 절에 정의된 모든 응용 서버 프로세스를 실행하는 옵션이다.

    [-b]

    백업으로 지정된 서버 프로세스를 임의로 기동시킬 때 사용하는 옵션이다.

    [-c]

    CLH 프로세스를 하나 더 실행시키는 옵션이다.

    현재 동작 중인 CLH 프로세스 개수가 Tmax 환경 파일에 정의된 MAXCLH 값을 넘지 않는 범위 내에서만 사용 가능하다.

    [-f 이진 Tmax 환경파일명]

    참조할 이진 Tmax 환경 파일(소스 설정 파일을 cfl로 컴파일한 결과물)을 경로와 함께 지정해야 한다.

    [-f] 옵션이 생략될 경우 기본으로 TMAXDIR 디렉터리 하위의 config 디렉터리에서 tmconfig 파일을 참조한다.

    [-g servergroup_name [-a] [-i] [-s] [-S]]

    지정된 서버 그룹에 존재하는 서버 프로세스를 실행하는 옵션이다. 사용되는 서버 그룹명은 Tmax 환경 파일 내의 SVRGROUP절에 등록한다.

    [-a] 옵션을 함께 사용하면 서버의 기동을 TMBOOT 프로세스가 아닌 TMM 프로세스에 위임한다.

    [-i] 옵션을 함께 사용하지 않는다면 기본적으로 서버를 부팅시키는 과정에서 기동 과정 중간에 이미 max에 도달한 서버가 있을 때 전체 기동 과정이 중지된다. 그러나 [-i] 옵션을 함께 사용하면 max에 도달한 서버가 있더라도 다음 서버들을 기동할 수 있도록 중지하지 않고 계속 진행하게 된다. 대신 모든 서버들이 max에 도달했을 경우에는 다음과 같은 메시지를 출력한다.

    (I) BOOT3022 all servers in group (svgname) reached max [BOOT0039]

    [-s] 또는 [-S] 옵션과 함께 사용하면, 지정된 서버 그룹 내에서 지정한 서버명을 가진 프로세스만을 대상으로 기동된다.

    [-h]

    명령어 도움말 옵션이다.

    [-V]

    실행 파일의 버전을 확인할 수 있다.

    [-n node_name ]

    지정된 노드에 존재하는 서버 프로세스들을 실행시키는 옵션이다. 노드명은 Tmax 환경 파일 내의 NODE 절에 미리 등록되어 있어야 한다.

    [-o clopt_string]

    CLOPT string을 추가하기 위한 옵션이다.

    [-q rq_svg_name]

    RQS를 시동시키기 위한 옵션이다.

    [-s server_name [-k count] [-a]]

    지정된 서버 프로세스만을 실행시키는 옵션이다.

    사용되는 서버 프로세스명은 Tmax 환경 파일 내의 SVRGROUP 절에 미리 정의되어 있어야만 한다.

    [-k] 옵션을 함께 사용하여 서버 프로세스 개수를 지정할 수 있다. 서버 프로세스 개수는 현재 실행되어 있는 개수를 포함하여 SERVER 절의 MAX 항목에 정의된 개수를 넘어서는 안 된다. 만약 이미 기동된 서버 프로세스들이 존재한다면, [-k] 옵션으로 지정한 값이 그보다 클지라도 MAX를 넘지 않는 선까지만 추가로 기동한다.

    [-k] 옵션을 생략하면 해당 서버 프로세스는 하나만 실행된다. 만약 [-a] 옵션을 함께 사용하면 서버의 기동을 TMBOOT 프로세스가 아닌 TMM 프로세스에 위임한다.

    [-S server_name [-a]]

    지정된 서버 프로세스를 MIN 개수만큼 실행시키는 옵션이다. 만약 남은 slot보다 MIN 개수가 더 크다면 MAX를 넘지 않는 선까지만 추가로 기동한다.

    [-a] 옵션을 함께 쓰면 서버의 기동을 TMBOOT 프로세스가 아닌 TMM 프로세스에 위임한다.

    [-g] 옵션과 함께 쓰면 지정한 서버 그룹에 대해서만 기동되며, [-g] 옵션을 사용하지 않으면 동일한 서버명을 가진 모든 서버 그룹을 대상으로 하여 기동된다.

    [-t tms_name [-k all]]

    지정된 TMS 프로세스를 하나 더 실행시키기 위한 옵션이다.

    Tmax 환경 파일에 정의된 MAXTMS 값을 넘지 않을 경우에만 가능하다.

    [-k all]은 트랜잭션 Recovery 기능을 사용할 경우 필요한 옵션이다. 그룹 전체를 종료했다가 기동할 경우 Recovery가 수행되기 때문에 Recovery는 TMS 그룹 단위로 가능하다. 특정 이름을 가진 TMS 전체를 기동/종료할 경우 이 옵션을 사용할 수 있다.

    [-B trb_node]

    TRB 노드를 기동시킨다.

    [-T]

    Tmax 시스템 프로세스(TMM, CLL, CLH, TMS)만을 실행시키는 옵션이다.

    [-w]

    옵션이 없는 경우에는 등록된 서버 프로세스를 동시에 기동시킨다. 이 경우 운영체제에 따라 동시에 리소스를 만들어내지 못해 서버 프로세스가 올바르게 기동되지 못하는 경우가 발생한다. 이러한 문제를 해결하기 위해 프로세스를 하나씩 기동시켜 올바르게 기동시키는 옵션이다.

    • 서버 프로세스들이 TMM에 접속할 때 LOCK 사용 조건 (LOCK|NOLOCK)

    • 서버 프로세스가 기동될 때 WAIT 조건 (NO-WAIT|FINITE-WAIT)

      • "-d -1000000 (1sec)"와 동일한 효과를 가진다.

      • [-d] 옵션이 없는 경우에만 의미가 있다.

      • [–d] 옵션이 사용되면 [–w] 옵션은 무시된다.

    [-d boot_time]

    한 번에 많은 서버 프로세스를 기동시킬 때 CLH로의 등록요구가 폭주하여 생기는 문제를 해결하기 위해 서버 프로세스들이 기동하는 데 걸리는 총 시간을 지정하여 등록 간격을 조절할 수 있다.

    (기본값: LOCK, NO-WAIT, 단위: usec)

    • 서버 프로세스들이 TMM에 접속할 때 LOCK 사용 조건 (LOCK|NOLOCK)

    • 서버 프로세스 기동될 때 WAIT 조건 (NO-WAIT|FINITE-WAIT)

      • -d val < 0 : LOCK, |VAL| FINITE-WAIT *

      • -d val = 0 : NO-LOCK, NO-WAIT

      • -d val > 0 : NO-LOCK, |VAL| FINITE-WAIT

      • 기본적으로 [–d] 옵션의 val이 0이 아닌 경우 절대값(|VAL|)을 사용하며 단위는 usec이다.

    • FINITE-WAIT의 경우 |VAL| 값은 각 프로세스마다 최대의 WAIT시간이다. (전체 프로세스의 총 WAIT 시간이 아님)

    • 서버 프로세스가 signal을 줄 경우 WAIT은 해제된다. 즉, |VAL| 시간이 되지 않더라도 signal을 받으면 다음 프로세스의 기동을 시도한다. VAL이 음수인 경우 LOCK을 사용한다. 이 옵션이 사용되었을 경우 [-w] 옵션은 무시된다.

    [-D]

    [-d] 옵션과 거의 유사하지만 finite-wait될 때 signal이 오더라도 |VAL|까지는 무조건 WAIT한다.

    [-W]

    tmboot를 수행하는 경우 현재 기동 중인 서버 프로세스가 완전히 기동이 될 때까지 다음 프로세스를 기동시키지 않고 대기한다.

    [-e clh|cas|tlm|tsm]

    Tmax 엔진 프로세스 중 CLH, CAS, TLM을 부팅하기 위한 옵션으로 tmboot할 경우에 문제가 발생했거나, kill로 인하여 잘못하여 엔진 프로세스가 비정상 종료된 경우에 사용한다. tmdown에서는 이 옵션을 제공하지 않는다.

    • clh : CLH를 부팅한다.

    • cas : CAS를 부팅한다.

    • tlm : TLM을 부팅한다.

    • tsm : TSM을 부팅한다.

    [-R]

    리모트 셸(rsh 또는 remsh)을 사용하여 리모트 노드의 Tmax 시스템을 부팅시키는 경우 [-R] 옵션을 사용한다. 이 옵션을 사용하게 되면 tmboot로 기동되는 프로세스에게 tmboot의 stdin/stdout이 상속되지 못하도록 처리한다.

    • 사용 방법

      (remote)
       rsh $HOSTNAME tmboot.sh
       - tmboot.sh
       TMAXDIR=/data3/starbj81/tmax64; export TMAXDIR
       PATH=$PATH:$TMAXDIR/bin; export PATH
       export LD_LIBRARY_PATH=$LIBPATH:$TMAXDIR/ (BIT)
       export LIBPATH=$LIBPATH:$TMAXDIR/ (BIT)
       exec tmboot -R
       echo "tmboot success"
       exit 0
  • 적용 환경

    Tmax 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다.

  • 예제

    • 다음은 TMAXDIR 디렉터리 하위의 config 디렉터리에 있는 tmconfig 파일을 참조하여 Tmax 프로세스와 응용 서버 프로세스들을 모두 실행하는 예제이다.

      $ tmboot
    • 다음은 tms_name으로 생성된 모든 TMS가 기동되는 예제이다.

      $ tmboot -t tms_name -k all
    • 다음은 서버 그룹의 설정 옵션을 사용한 예제이다.

      서로 다른 서버 그룹에서 tms_name을 동일하게 사용하는 경우 다음과 같이 [–g] 옵션으로 해당 TMS가 속해있는 서버 그룹명을 지정한다. 그렇지 않으면 해당 TMS명을 가진 가장 첫 번째 서버 그룹의 TMS가 기동된다.

      $ tmboot -t tms_name -k all -g svgname
    • 다음은 tmconfig 환경 파일을 참조하여 SERVER 절에 정의된 모든 응용 서버 프로세스들을 실행하는 예제이다.

      $ tmboot -A
    • 다음은 /user1/tmax/con 디렉터리의 exconfig 환경 파일을 참조하여 NODE 절에 등록된 cosmo 노드에 존재하는 응용 서버 프로세스들을 실행하는 예제이다.

      $ tmboot -n cosmo -f /user1/tmax/con/exconfig
    • 다음은 tmconfig2 환경 파일을 참조하여 svr1프로세스를 5개 실행하는 예제이다.

      $ tmboot -s svr1 -k 5 -f tmconfig2

cfl, tmdown 명령어에 대한 자세한 내용은 각각 Tmax Reference Guide의 cfl , tmdown을 참고한다.

tmboot를 실행할 때의 tmconfig 경로 참조

tmboot 명령어로 Tmax를 기동할 경우 이진 바이너리 환경 파일 ${TMAXDIR}/config/tmconfig를 ${TMAXDIR}/path/tmconfig에 복사한 후 ${TMAXDIR}/path 디렉터리에 있는 환경 파일을 사용한다.

하지만 이미 Tmax 엔진이 기동되어 있는 상황에서 tmboot –S 또는 –s 를 이용하여 특정 서버만을 기동할 경우에도 ${TMAXDIR}/config/tmconfig를 참조한다면 아래와 같은 환경에서 문제가 될 수 있다.

  • 환경 파일

    <기존 운영 환경 파일>

    *SVRGROUP
    svg1       NODENAME = "tmaxh4"
    *SERVER
    svr1       SVGNAME = svg1
    svr2       SVGNAME = svg1
    *SERVICE
    TOUPPER1   SVRNAME = svr1
    TOUPPER2   SVRNAME = svr2

    <운영 중 변경된 환경 파일>

    *SVRGROUP
    svg1       NODENAME = "tmaxh4"
    *SERVER
    svr1       SVGNAME = svg1
    svr3       SVGNAME = svg1
    svr2       SVGNAME = svg1
    *SERVICE
    TOUPPER1   SVRNAME = svr1
    TOUPPER3   SVRNAME = svr3
    TOUPPER2   SVRNAME = svr2

다음과 같이 운영 중 변경된 환경 파일을 CFL로 재컴파일한다.

$ cfl –i node1.m

새로 추가된 서버를 기동한다.

$ tmboot –S svr3

운영 중인 환경에서 환경 파일을 변경한 후 tmboot –S를 시도하려면 다음과 같은 에러가 발생할 수 있다.

(E) BOOT3007 maxsvr (1) is over for svr(svr3:svr2): nodeno = 0, svri = 5, cur = 1, ksvr = 1 [BOOT0015]

운영 환경에서 CFL을 수행하였을 경우 ${TMAXDIR}/config/tmconfig는 변경된 내용이 적용되지만 실제 공유 메모리에는 변경되기 이전인 ${TMAXDIR}/path/tmconfig와 동일하게 구성되어 있기 때문에 tmboot –S로 새로 추가한 서버 프로세스가 기동될 때 실제로는 기존에 이미 실행 중인 서버 프로세스를 추가로 기동하는 결과가 발생한다.

Tmax 엔진이 기동되어 있는 상황에서의 CFL은 허용되지 않지만 이 실수로 인한 에러가 발생하면 해당 에러는 디버깅하기가 쉽지 않다. 따라서 Tmax 엔진 동작 중 tmboot [–S], [-s], [–g], [-q], [-t], [-A] 등의 옵션으로 각 서버를 기동시킬 때 참조하는 tmconfig의 경로는 ${TMAXDIR}/config/tmconfig가 아닌 ${TMAXDIR}/path/tmconfig이다. 단, 엔진을 기동할 경우 ${TMAXDIR}/path/tmconfig를 참조한다.

$ cfl –i new_config.m –o tmchg
$ tmadmin : cfgadd –I tmchg
$ tmboot –S new_svr –f tmchg

tmboot를 수행할 때 [-f] 옵션을 사용하여 특정 이진 바이너리 환경 파일을 지정하면 ${TMAXDIR}/config/tmconfig를 참조하여 서버를 기동한다. 동적 서버를 추가할 때에는 반드시 [–f] 옵션으로 특정 환경 파일을 지정하여 ${TMAXDIR}/config/의 변경된 이진 바이너리 환경 파일을 참조하도록 한다.

32. tmd

서버 프로그램을 테스트하기 위해 클라이언트를 시뮬레이션하는 명령어이다. 프로그래머는 직접 클라이언트 프로그램을 작성하지 않아도 쉽게 서버 프로그램의 동작 상태를 확인할 수 있다.

tmd 명령어는 Windows NT와 Windows 2000 환경에서는 작동하지 않는다.

tmd에서 지원하는 버퍼 유형은 STRING, CARRAY, FIELD, 구조체 버퍼이다. CARRAY 버퍼의 경우에는 print 가능한 데이터에 대해서 지원한다. STRING이나 CARRAY 데이터는 공백으로 데이터의 끝을 간주하기 때문에 계속되는 데이터를 표시하기 위해서는 큰따옴표(" ")로 데이터를 처리해야 한다. 구조체 버퍼의 경우 단일 구조체에 대해서 지원하고 있으며 송수신 구조체 타입이 일치해야 한다. 수신한 버퍼 유형과 같은 버퍼를 tpreturn() 함수 내의 파라미터로 사용해야 한다.

그렇지 않으면 다음과 같은 에러 메시지를 출력한다.

(E) 3004 not supported output type

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ tmd [-X] [-T 시간(초)] [-t 시간(초)] [-s] [-V] [-i file_name] [-l 크기(byte)] [-q]
    항목 설명

    [-X]

    트랜잭션 사용 유무를 지정한다. flags가 지정되면 주어진 서비스를 트랜잭션으로 간주하여 처리한다.

    [-T 시간(초)]

    트랜잭션 타임아웃을 지정한다. tx_set_transaction_timeout(시간)과 같은 기능을 수행하게 된다.

    [-t 시간(초)]

    블록 타임아웃을 지정한다. tpset_timeout(시간)과 같은 기능을 수행한다.

    [-s]

    tpstart 정보를 콘솔에서 입력받을 수 있도록 하여 사용자에 대한 정보가 시스템에 전달될 수 있도록 하는 기능을 수행한다. 옵션을 설정한 경우 tmd 수행할 때 domain password와 user name, user password를 입력받게 된다.

    [-V]

    실행 파일의 버전을 확인할 수 있다.

    [-i file_name]

    호출할 서비스를 정의한 파일이다.

    [-l size]

    명령어를 통해 입력받을 데이터의 최대 크기를 지정한다. (기본값: 1024byte)

    [-q]

    따옴표(")가 포함된 string 형의 데이터를 처리할 수 있다. string 데이터 중의 \"를 "로 인식하여 처리한다.

  • 예제

    • 다음은 tmd 명령어를 사용한 예이다.

      $ tmd -i input_data
      $ tmd -i tmdTest
      $ tmd -i tmd.sh -s
    • 다음은 필드 키 버퍼를 사용하는 예제이다. 필드 키 버퍼는 애스터리스크(*)로 시작되며 함수명, 서비스명, 버퍼 타입으로 첫 번째 행이 구성된다. 다음 행에는 필드명과 데이터가 나열된다.

      Input File  ( input_data ) 작성
      *tpcall BR_ADD FIELD
      BRANCH_ID     1
      LAST_ACCT     9999
      LAST_TELLER   99
      ADDRESS      “25 Powell St. San Francisco, CA 94188”
      PHONE         415-753-9000
    • STRING 버퍼를 사용하는 경우에는 버퍼 타입에 FIELD 대신 STRING을 입력한다.

      <tmdTest File 작성 예>

      *tpcall TOUPPER STRING
      abc

33. tmdown

Tmax 시스템 전체나 또는 일부분을 종료시키는 명령어이다. tmdown은 Tmax 환경 파일을 바탕으로 하여 Tmax 시스템을 종료시키기 때문에 기본적으로 [-f] 옵션을 사용하여 참조할 이진 Tmax 환경 파일(소스 설정 파일)을 cfl로 컴파일한 결과물을 경로와 함께 지정해야 한다.

[-f] 옵션이 생략될 경우 기본값으로 TMAXDIR 디렉터리 하위의 config 디렉터리에 있는 tmconfig 파일을 참조한다. [-f] 이외의 옵션이 사용되지 않는다면 tmdown은 Tmax의 모든 관리 프로세스와 Tmax 환경 파일의 SERVER 절에 등록된 모든 서버 프로세스를 종료시키고 Tmax 시스템과 관련된 IPC 자원들을 제거한다. 종료 순서는 다음과 같다.

  1. SERVER 절에 등록된 응용 서버 프로세스들이 종료된다.

  2. 서버 그룹별로 TMS 프로세스가 동작 중이라면 TMS 프로세스가 종료된다.

  3. Tmax 시스템 관리 프로세스들이 종료된다. 프로세스 종료는 CLH, CLL, TMM 순서로 진행된다. 이 순서가 일반적인 시스템 관리 프로세스 종료 순서나 CLH의 MIN 값이 1이 아닌 경우에는 CLL이 CLH보다 먼저 종료될 수도 있다.

백업으로 기동된 서버에 동적으로 등록된 서비스가 있는데 이 서버가 모두 다운되어 동적으로 등록된 서비스가 공유 메모리에서 사라질 경우를 가정해본다. 이 경우 장애 복구 후(백업 서버들이 모두 종료되고 정상 노드의 서버들이 재기동되어 있는 상태), 백업 노드로 접속한 클라이언트에 대해서 naming 서비스를 제공할 수 없게 된다. 따라서 백업 서버의 동적 서비스는 해당 서버가 모두 종료된 후에도 공유 메모리에서 삭제되지 않도록 처리한다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $tmdown [-A] [-f 이진 Tmax 환경파일명] [-g servergroup_name] [-h] [-V][-i] [-b]
            [-n node_name] [-p server_num] [-q rq_svg_name]
            [-s server_name [-k count]] [-S server_name] [-t tms_name[-k all]]
            [-w wait_time] [-B trb_node][-R] [-y]
    항목 설명

    [-A]

    모든 응용 서버 프로세스들을 종료시킨다.

    [-f 이진 Tmax 환경파일명]

    시스템이 종료될 때 참조할 이진 Tmax 환경 파일명을 지정하는 항목으로 파일명을 지정하지 않으면 기본값으로 TMAXDIR 디렉터리 하위의 config 디렉터리에 있는 tmconfig 파일을 참조한다.

    [-g servergroup_name]

    지정된 서버 그룹에 속한 서버 프로세스들을 종료한다.

    만약 [-s] 또는 [-S] 옵션과 함께 쓰면 지정한 서버 그룹 내에서 지정한 서버명에 대해서만 서버 프로세스를 종료한다.

    [-h]

    명령어 도움말 옵션이다.

    [-V]

    실행 파일의 버전을 확인할 수 있다.

    [-i]

    tmdown 명령을 즉시 수행한다. 기본적으로 tmdown 명령은 해당 업무를 모두 종료하고 수행되지만 [-i] (immediately) 옵션에 의한 종료는 현재 수행 중인 업무를 무조건 중단하기 때문에 신중하게 사용해야 한다.

    [-b]

    POD 서버가 명시적으로 tmboot를 호출하기 전에 ASQCOUNT에 의해서 자동으로 기동하지 않도록 방지한다. 반드시 [-S] 옵션이나 [–g] 옵션, [–A] 옵션과 함께 사용해야 한다.

    [-n node_name]

    지정된 노드에 존재하는 모든 서버 프로세스들을 종료시킨다. 노드명은 Tmax 환경 파일의 NODE 절에 등록되어 있어야 한다.

    [-p server_num]

    지정된 서버 프로세스를 종료시킨다. [-s] 옵션에 의한 종료와 달리 tmadmin에서 "st -p" 명령으로 확인할 수 있는 프로세스 번호(spr_no)를 사용하여 특정 프로세스를 종료시킨다.

    [-q rq_svg_name]

    RQS를 종료시킨다.

    [-s server_name [-k count]]

    지정된 서버 프로세스 하나만 종료시킨다. 사용되는 서버 프로세스명은 Tmax 환경 파일 내의 SERVER 절에 미리 등록되어 있어야 한다.

    [-k] 옵션을 함께 사용하여 서버 프로세스 개수를 지정할 수 있다. 서버 프로세스 개수를 현재 실행되어 있는 개수보다 크게 지정하여도 에러는 발생되지 않고 현재 실행되고 있는 모든 프로세스를 종료시킨다.

    [-k] 옵션을 생략하면 해당 서버 프로세스는 하나만 종료된다.

    [-S server_name]

    지정된 서버 프로세스들을 모두 종료시킨다. 하나 이상의 프로세스가 지정되어 있다면 해당되는 모든 프로세스를 종료시킨다.

    만약 -g 옵션과 함께 쓰면 지정한 서버 그룹에 대해서만 종료되며, -g 옵션을 사용하지 않으면 동일한 서버명을 가진 모든 서버 그룹을 대상으로 하여 종료된다.

    [-t tms_name [-k all] ]

    지정된 TMS 프로세스를 하나만 종료시킨다.

    [-k all ]은 트랜잭션 Recovery 기능을 사용할 경우 필요한 옵션이다. 그룹 전체를 종료했다가 기동할 경우 Recovery가 수행되기 때문에 Recovery는 TMS 그룹 단위로 가능하다. 특정 이름을 가진 TMS 전체를 기동/종료할 경우 이 옵션을 사용할 수 있다.

    [-w wait_time]

    wait_time에 지정된 시간이 지나면 tmdown을 수행한다.

    [-B trb_node]

    TRB 노드를 종료시킨다.

    [-R]

    Rolling Down될 때 사용한다.

    [-y]

    tmdown될 때 종료 여부(y| n)를 묻지 않고 바로 종료시킨다.

  • 예제

    • 다음은 TMAXDIR 디렉터리 하위의 config 디렉터리에 있는 tmconfig 파일을 참조하여 전체 Tmax 시스템을 종료하는 예제이다. Tmax 관리 프로세스와 응용 서버 프로세스들을 모두 종료한다.

      $ tmdown
    • 다음은 이름이 tms_name인 모든 TMS가 종료되는 예제이다.

      $ tmdown -t tms_name -k all
    • 다음은 서버 그룹을 설정 옵션을 사용한 예제이다. 서로 다른 서버 그룹에서 tms_name을 동일하게 사용하는 경우 위와 같이 [-g] 옵션으로 해당 TMS가 속해있는 서버 그룹명을 지정해 준다. 그렇지 않으면 해당 TMS 이름을 가진 가장 첫 번째 서버 그룹의 TMS가 종료된다.

      $ tmdown -t tms_name -k all -g svgname
    • 다음은 tmconfig2 환경 파일을 참조하여 전체 Tmax 시스템을 종료하는 예제이다.

      $ tmdown -f tmconfig2
    • 다음은 tmconfig 환경 파일을 참조하여 svr1이라는 응용 서버 프로세스를 모두 종료하는 예제이다.

      $ tmdown -S svr1
    • 다음은 tmconfig 환경 파일을 참조하여 svr1이라는 응용 서버 프로세스를 강제로 모두 종료하는 예제이다. svr1 중 특정 서버 프로세스의 서비스가 종료되지 않는 경우 [-i] 옵션을 사용하여 강제로 종료하는 예제이다.

      $ tmdown -S svr1 -i
    • 다음은 tmconfig 환경 파일을 참조하여 <spr_no>인 서버 프로세스만 강제로 종료하는 예제이다. 해당 서버의 서버 프로세스가 여러 개일 때 특정 서버가 looping인 경우 해당 프로세스만 강제로 종료하는 예제이다.

      $ tmdown -p <spr_no> -i
    • 다음은 /user1/tmax/con 디렉터리의 exconfig 환경 파일을 참조하여, NODE 절에 등록된 cosmo 노드에 존재하는 응용 서버 프로세스를 종료하는 예제이다.

      $ tmdown -n cosmo -f /user1/tmax/con/exconfig
    • 다음은 tmconfig2 환경 파일을 참조하여 동작 중인 svr1프로세스 하나만 종료하는 예제이다.

      $ tmdown -s svr1 -f tmconfig2

Rolling Down 기능

클라이언트의 요청을 처리하고 있던 Tmax 시스템이 비정상적으로 종료될 경우 기존 버전에서는 현재 처리 중인 요청에 대해서만 응답을 처리하여 전달한 후 큐에 쌓여 있는 요청에 대하여 TPECLOSE 에러를 전달하였다. 하지만 Tmax 5에서는 Tmax 엔진을 다운시키기 이전에 요청된 모든 클라이언트에 대하여 정상적으로 응답을 주는 Rolling Down 기능을 제공한다.

  • 사용 방법

    $ tmdown –R –n node_name
    항목 설명

    –n node_name

    종료되는 노드명을 지정한다.

  • 적용 환경

    Tmax 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다.

  • 예제

    다음은 NODEA와 NODEB가 멀티 노드(또는 멀티 도메인)로 구성되어 있으며, 총 100개의 클라이언트가 NODEA에 접속되어 있다고 가정할 경우의 처리 과정을 설명하는 예제이다.

    • NODEA의 Tmax 시스템을 종료시킬 경우

      $ tmdown –R –n NODEA
      1. NODEA의 CLL은 클라이언트로부터의 Listen 포트를 막는다.

      2. NODEA에서 기존에 처리되고 있던 요청에 대해서는 처리를 완료한 후 클라이언트에게 처리 결과를 전달한다.

      3. 큐에 쌓여 있는 요청에 대해서는 TMAX_BACKUP_ADDR로 설정된 NODEB에 요청을 보낸다.

      4. NODEA의 Tmax 시스템이 종료된다.

      5. NODEB에서는 NODEA로부터 받은 요청을 처리한 후 처음 해당 request를 요청한 클라이언트에게 처리 결과를 직접 전달한다.

      6. NODEA에 접속되어 있는 모든 클라이언트는 정상 응답을 받는다.

    • NODEB의 Tmax 시스템을 종료시킬 경우

      $ tmdown –R –n NODEB
      1. 100개의 클라이언트 요청을 NODEA의 CLH가 약 50:50으로 NODEA와 NODEB에 분배된다.

      2. tmdown -R –n NODEB로 NODEB의 Tmax 시스템을 종료시킨다.

      3. NODEB의 CLL은 클라이언트부터 Listen 포트를 막는다.

      4. NODEB에서 기존에 처리되고 있던 요청에 대해서는 처리를 완료한다.

      5. 클라이언트는 NODEA에 접속되어 있는 상황이므로 해당 처리 결과를 NODEA의 CLH에게 전달하고, NODEA의 CLH는 클라이언트에게 처리 결과를 전달한다.

      6. NODEB의 큐에 쌓여 있는 요청에 대해서는 TMAX_BACKUP_ADDR로 설정된 NODEA에 요청을 보낸다.

      7. NODEB의 Tmax 시스템이 종료된다.

      8. NODEA에서는 NODEB로부터 받은 요청을 처리한 후 처음 해당 request를 요청한 클라이언트에게 처리 결과를 전달한다.

      9. NODEA에 접속되어 있는 모든 클라이언트는 정상 응답을 받는다. 100개의 클라이언트가 모두 정상 응답을 받아야 한다.

        NODEA의 요청을 NODEB가 처리하기 위해서는 NODEA에 접속한 클라이언트의 TMAX_BACKUP_ADDR, TMAX_BACKUP_PORT가 NODEB로 설정되어 있어야 한다. 그렇지 않을 경우 NODEA의 Tmax 시스템이 종료되는 순간 아직 처리되지 않은 클라이언트 요청에 대하여 TPESYSTEM 에러를 전달한다.

34. tmmbfgen

텍스트의 서비스 정보 파일을 서비스 정보 바이너리 파일로 만드는 명령어이다. 사용자가 작성한 서비스 정보 파일은 그대로 웹 서비스 게이트웨이와 xwsdlgen에서 사용할 수 없기 때문에 tmmbfgen으로 새로운 파일을 생성해야 한다. tmmbfgen에 의해서 생성된 파일을 서비스 정보 바이너리 파일이라고 한다. tmmbfgen을 하면 문법을 체크하고 파라미터의 타입 체크를 통해서 웹 서비스 게이트웨이에서 참조하기 전에 미리 유효성 검사를 할 수 있으며 텍스트 문서를 여러 개로 분할하여 관리가 가능하다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ tmmbfgen [-r text_file,] [-i text_file] [-d svc] -o binary_file 
    항목 설명

    [-r text_file]

    서비스 정보 파일(text) 리스트를 입력한다.

    [-i text_file]

    서비스 정보 파일(text)을 입력한다.

    [-d svc]

    삭제할 서비스명 리스트를 입력한다.

    -o binary_file

    생성할(변경할) 서비스 정보 바이너리 파일(default = sample)한다.

  • 예제

    • 다음은 새로운 서비스 정보 바이너리 파일을 생성하는 예제이다. sample을 생성하고 sample.txt와 sample2.txt에 정의된 서비스 정보를 sample에 입력한다.

      $ tmmbfgen -r sample.txt,sample2.txt -o sample
    • 다음은 기존 서비스 정보 바이너리 파일에 서비스 정보를 추가하는 예제이다. 기존 sample 파일에 sample.txt에 정의된 서비스 정보를 추가한다. 같은 서비스가 있는 경우 파일이 교체된다.

      $ tmmbfgen -i sample.txt -o sample
    • 다음은 기존 서비스 정보 바이너리에서 특정 서비스 삭제하는 예제이다. sample 파일에서 서비스 SVC1, SVC2의 정보를 삭제한다.

      $ tmmbfgen -d SVC1,SVC2 -o sample

untmmbfen 명령어에 대한 자세한 내용은 untmmbfgen을 참고한다.

35. tmsnmpd

표준 SNMP 프로토콜에 의해서 Tmax 구성 및 성능 정보 조회하는 명령어로 조회가 가능하도록 SNMP Agent인 tmsnmpd가 추가되었다. CNMP 프로토콜은 기본적으로 UDP 161번을 사용하므로 이 포트를 사용하려면 root 권한이 있어야 하며, 1024 이후의 포트를 사용할 경우 일반 사용자 계정으로도 사용 가능하다. Tmax SNMP Agent는 tmboot와 무관하게 tmsnmpd를 실행해야 한다. racd와 동일하게 tmboot / tmdown과 무관하게 동작한다. tmsnmpd를 실행하기 전에 환경변수로 TMAXDIR이 지정되어 있어야 한다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ tmsnmpd [[-h | -d| -f | -n node_name | -i| -l| -t| -p| -V] [[프로토콜:][IP:][PORT]]
    항목 설명

    [-h]

    사용법을 조회한다.

    [-d]

    디버그 모드로 동작한다.

    [-f]

    config_file로 해당 위치의 config 파일을 사용하고, 설정하지 않을 경우 ${TMAXDIR}/snmp/tmsnmpd.conf를 사용한다.

    [-n node_name]

    멀티 노드 환경에서 노드명을 지정한다.

    [-i]

    env_file로 해당 위치의 env_file 파일을 사용한다.

    [-l]

    환경 파일 내에서 적용할 라벨을 지정한다.

    [-t]

    TMM과의 연결 체크 주기를 설정한다.

    [-p]

    성능 정보의 수집 주기를 설정한다.

    [-V]

    버전 정보를 조회한다.

    [프로토콜]

    TCP, UDP 중 지정한다. (기본값: UDP)

    [IP]

    모니터링할 IP를 지정한다.

    [PORT]

    SNMP 유틸리티가 접속할 때 사용할 tmsnmpd의 Listen 포트를 지정한다.

  • 예제

    tmsnmpd를 실행할 때 root 권한이 없으면 아래와 같이 포트를 지정한다. 또는 tmsnmpd.conf에서 agentAddress로 지정할 수 있다.

    $ tmsnmpd 9999

tmmbfgen 명령어에 대한 자세한 내용은 tmmbfgen을 참고한다.

Tmax SNMP MIB

사용자는 Tmax 서버의 속성 및 통계 정보에 접근할 수 있으며, 이것들은 Tmax MIB에 정의되어 있다. MIB는 표준 SNMP의 한 부분이다. MIB에 대한 내용은 www.ietf.org 사이트를 참고한다.

  • MIB 브라우징

    Tmax MIB 파일은 ${TMAXDIR}/snmp/mib/TMAXSOFT-TMAX-MIB.mib로 존재해야 한다. 직접 MIB 파일을 확인할 수 있으며, 3rd-party MIB 브라우저를 사용할 수 있다. Tmax에서는 MIB 브라우저를 제공하지는 않지만, SNMP 유틸리티 벤더 대부분에서 MIB 브라우저를 제공한다.

  • 객체 식별(OID)

    OID는 관리되는 객체를 구별하기 위한 정수를 나열한 것으로, OID 트리 구조를 사용해서 객체의 경로를 정의한다. OID는 MIB 파일에서 정의된다. Tmax SNMP Agent로 특정한 OID 값을 가진 SNMP 패킷을 보내면 OID와 일치하는 정보를 얻을 수 있다.

다음은 Tmax MIB의 OID 트리를 나타낸다. TmaxSoft의 Enterprise OID는 1.3.6.1.4.1.14586이다. 모든 Tmax의 속성값의 접두어는1.3.6.1.4.1.14586.200이 된다.

figure 1 3
Tmax SNMP의 OID
  • 주의사항

    현재 버전에서는 SNMP v1, v2c만을 지원한다. 구성 및 성능에 대한 조회만 가능하다(READ-ONLY 기능만 지원). SNMP 유틸리티(snmpget, snmpwalk 등)는 해당 OS 벤더에서 지원받거나 NET-SNMP(http://net-snmp.sourceforge.net/) 등을 사용할 수도 있다.

    NET-SNMP의 간단한 사용 예는 아래와 같다.

    $ nmpwalk –v 2c –c tmax 192.168.1.100:9999 1.3.6.1.4.1.14586.200
환경설정
  • 환경설정 파일의 위치

    SNMP Agent(tmsnmpd)를 사용하기 위해서 ${TMAXDIR}/snmp/tmsnmpd.conf 환경설정 파일이 있어야 한다.

  • 환경설정 방법

    SNMP 유틸리티(snmpget, snmpwalk 등)를 사용하여 정보를 조회하거나 값을 설정하는 등의 통신을 위한 community string을 지정한다. Tmax 4 SP1 이상에서는 rocommunity 설정만 지원한다. IPv6 통신 환경이라면 'rocommunity6’로 설정한다.

    rocommunity <string>
  • 환경설정 예제

    만약 'tmax’라는 community명으로 UDP로 포트 '9999’로 IPv4와 IPv6로 동시에 열고 싶다면 ${TMAXDIR}/snmp/tmsnmpd.conf 파일에 아래와 같이 설정하고 tmsnmpd를 기동한다.

    agentAddress udp:9999, udp6:9999
    rocommunity tmax
    rocommunity6 tmax

36. tperr

tperr은 Tmax 에러 번호와 에러 타입을 이용하여 에러에 관한 자세한 정보를 조회할 수 있도록 하는 명령어이다. Tmax 시스템 운용 중에 발생하는 에러에 대해서 쉽게 원인을 찾아 해결할 수 있도록 해준다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ tperr {-t error_type} {-e errno_number} [-f filename] [-h] [-V]
    항목 설명

    {-t error_type}

    에러 타입을 설정한다. 모듈명을 지정하는 옵션으로 반드시 필요하다.

    다음은 에러 타입에 대한 설명이다.

    • TPE : Tmax API 에러이다.

    • ADM : Tmax Administration 툴(tmadmin) 에러이다.

    • BOOT : Tmax Boot-up 툴(tmboot) 에러이다.

    • CAS : CAS(Client Authentication Server) 에러이다.

    • CFL : CFL(Tmax Configuration File Compiler) 에러이다.

    • CLH : CLH(Client Handler) 에러이다.

    • CLI : CLI(Client Library) 에러이다. (libcli.a, tmax.dll)

    • CLL : CLL(Client Listener) 에러이다.

    • DOWN : Tmax Shutdown 툴(tmdown) 에러이다.

    • FDLC : FDLC(FDL File Compiler) 에러이다.

    • GST : 서비스 테이블 생성 툴(gst) 에러이다.

    • MKPW : 패스워드 관리 Tool(mkpw) 에러이다.

    • RAC : RACD(Remote Access Control Daemon) 에러이다.

    • RQS : RQS(Reliable Queue Server) 에러이다.

    • SDLC : SDLC(SDL File Compiler) 에러이다.

    • SVR : 서버 라이브러리 에러이다. (libsvr.a)

    • TCPGW : Custom TCP/IP 게이트웨이 에러이다. (libtcpgw.a)

    • TMD : Server Application Test Tool이다.

    • TMGW : Custom TCP/IP Gateway이다. (libtcpgw.a)

    • TMM : Tmax 관리(tmm) 에러이다.

    • TMS : TMS 라이브러리 에러이다. (libtms.a)

    {-e errno_number}

    에러 번호를 지정하는 옵션으로 반드시 필요하다.

    [-f filename]

    에러 메시지에 관한 내용이 담겨 있는 텍스트 파일로 지정하지 않을 경우 ${TMAXDIR}/bin/_tmax_errno라는 텍스트 파일이 적용되며 이 파일은 기본적으로 제공된다.

    [-h]

    명령어 도움말 옵션이다.

    [-V]

    실행 파일의 버전을 확인할 수 있다.

  • 적용 환경

    Tmax 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다.

  • 예제

    (E) BOOT3008 server(svr000) is not in config [BOOT0022]
    
    $ tperr -t BOOT -e 3008
    [BOOT3008] : server (svr_name) is not in config.
    Type : ERROR
    Description : You specified invalid server name.
    Action : Check the configuration file for valid server names.
    TPEBADDESC (2)
    
    $ tperr -t TPE ?e 2
    [TPE 2] : TPEBADDESC
    Cause : invalid call descriptor.
    Solution : After confirm whether cd is valid, must call again tpstart().

에러 메시지의 자세한 내용은 Tmax Error Message Reference를 참고한다.

37. twagent

Tmax 웹 Agent와 연결하는 데몬 프로세스 기동을 위한 명령어이다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ twagent -m 환경 파일 [-v|-V] [-d] [-p sec] [-l filename]
    항목 설명

    -m 환경 파일

    twagent 기동을 위해 환경 설정 파일을 지정한다.

    [-v|-V]

    버전 정보를 출력한다.

    [-d]

    디버그 모드를 활성화한다.

    [-p sec]

    TMM과 연결을 시도하는 주기(초)를 설정한다.

    [-l filename]

    로그 파일을 지정한다.

  • 예제

    $ twagent -m sample.m -p 10
    $ twagent -m sample.m -d
    $ twagent -m sample.m

38. uncfl

텍스트 형태의 Tmax 환경 파일을 컴파일하여 생성된 tmconfig(이진 Tmax 환경 파일)을 다시 역으로 분석하여 텍스트 형태의 환경 파일로 변환하는 명령어이다. 환경 파일을 컴파일하고 기동시킨 후 실수로 텍스트 환경 파일을 삭제한 경우에 유용하게 사용할 수 있다.

또한 여러 개의 텍스트 환경 파일을 작성 후 시스템 운용 중에 현재 어떤 환경으로 동작하고 있는지 확인할 경우에도 유용하게 사용할 수 있으며 tmadmin의 cfgadd 명령어를 이용하여 서비스를 동적으로 추가할 때에도 유용하게 사용될 수 있다. cfgadd 명령어에 대한 자세한 설명은 Tmax Administration Guide의 cfgadd(ca)를 참고한다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ uncfl [-i 이진 Tmax 환경파일명] [-o 텍스트 Tmax 환경파일명] [-h] [-V]
    항목 설명

    [-i 이진 Tmax 환경파일명]

    역으로 분석하여 텍스트 파일로 변환할 이진 Tmax 환경 파일명을 설정한다. 경로와 함께 지정할 수 있으며, 경로가 지정되지 않은 경우 현재 디렉터리에 위치해 있는 이진 환경 파일이 참조된다.

    옵션이 생략되면 기본으로 tmconfig라는 이름의 파일을 참조하여 텍스트 환경 파일이 생성된다.

    [-o 텍스트 Tmax 환경파일명]

    이진 Tmax 환경 파일을 역으로 분석하여 변환할 텍스트 형태의 Tmax 환경 파일명을 명시하는 데 사용되는 옵션으로 반드시 필요하다.

    경로와 함께 지정될 수 있으며 경로가 지정되지 않았을 경우에 기본적으로 현재 디렉터리에 텍스트 환경 파일이 생성된다.

    [-h]

    명령어 도움말 옵션이다.

    [-V]

    실행 파일의 버전을 확인할 수 있다.

  • 적용 환경

    Tmax 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다.

  • 예제

    • 다음은 현재 디렉터리에 있는 'tmconfig’라는 이진 Tmax 환경 파일을 참조하여 /user1/tmax/temp 디렉터리에 'basic.m’이라는 텍스트 형태의 Tmax 환경 파일을 생성하는 예제이다.

      $ uncfl -o /user1/tmax/temp/basic.m
    • 다음은 /user1/tmax/bin 디렉터리에 있는 'tmconfig’라는 이진 Tmax 환경 파일을 참조하여 현재 디렉터리에 'basic.m’이라는 텍스트 형태의 Tmax 환경 파일을 생성하는 예제이다.

      $ uncfl -i /user1/tmax/bin/tmconfig -o basic.m

cfl 명령어의 자세한 내용은 cfl을 참고한다.

39. untmmbfgen

untmmbfgen은 서비스 정보 바이너리 파일을 서비스 정보 파일(텍스트)로 변환하는 명령어이다. tmmbfgen 명령어의 자세한 내용은 tmmbfgen를 참고한다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ untmmbfgen -i binary_meta_file -o text_file  
    항목 설명

    -i binary_meta_file

    서비스 정보 바이너리 파일을 지정한다.

    -o text_file

    생성될 서비스 정보 파일(텍스트)을 지정한다.

  • 예제

    다음은 untmmbfgen으로 서비스 정보 바이너리 파일을 사용자들이 알아볼 수 있도록 텍스트 형태의 파일로 변환하는 예제이다.

    $ untmmbfgen -i sample -o unsample.txt

40. xwsdlgen

웹 서비스 스펙 중 명세서 역할을 하는 WSDL 문서를 생성하는 명령어이다. 현재 WSDL 문서는 1.1, 2.0이 존재한다. xwsdlgen은 웹 서비스 게이트웨이 환경설정 파일과 서비스 정보 바이너리 파일을 입력받아서 WSDL 문서를 생성한다.

다음은 명령어 사용법에 대한 설명이다.

  • 사용 방법

    $ xwsdlgen [options] -g wsgw_config_file -m binary_meta_file -o wsdl_file
    • [options]

      항목 설명

      -w version

      • 0 : WSDL1.1 (기본값)

      • 1 : WSDL2.0

      -b binding_style

      • 0 : rpc (기본값)

      • 1 : document

    • 입력항목

      항목 설명

      -g wsgw_config_file

      웹 서비스 게이트웨이 환경설정 파일을 설정한다.

      -m binary_meta_file

      서비스 정보 바이너리 파일을 설정한다.

      -o wsdl_file

      생성할 WSDL 파일을 설정한다.