관리 도구
본 장에서는 Tmax의 효율적인 관리를 위해 제공되는 관리 도구에 대해서 설명한다.
1. 개요
Tmax 시스템이 동작하고 있다면 현재 환경설정에 대한 정보를 확인해 보고 이를 동적으로 변경하거나 서버 프로그램에 서비스를 추가하는 등의 시스템에 대한 관리가 필요하다. 또한 제공되는 서비스 중 특정 서비스에 대하여 현재 처리 상태 즉, 몇 건의 서비스를 처리해 왔으며, 평균 처리 시간이 얼마나 되며, 몇 건의 요청이 대기하고 있는지, 그 서비스를 제공받기 위해서는 얼마나 기다려야 하는지 등의 정보를 확인할 필요가 있다. 이 정보에 따라 서버 프로세스를 더 기동하거나 종료시키는 등의 조치도 필요하다.
Tmax 시스템은 명령어 인터프리터 형태의 명령어를 이용하여 동적 시스템 관리를 할 수 있도록 tmadmin을 제공한다.
2. tmadmin
tmadmin 프로그램은 UNIX 환경의 셸과 비슷한 명령어 인터프리터이다. 항상 프롬프트(prompt) 상태로 대기 중이다가 입력되는 명령어를 해석하여 이를 실행한다. 여러 노드를 한 도메인으로 사용하는 경우 tmadmin으로 전체에 대한 중앙 관리가 가능하며, 각각의 노드별로 로컬에서 관리가 가능하다.
-
사용방법
$ 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 파일의 라이선스 정보를 출력한다.
-
명령어 실행
tmadmin에서는 명령어를 통해 Tmax 시스템을 기동 또는 종료시킬 수 있으며, 현재 동작 중인 시스템의 환경설정 내용을 조회 및 수정할 수 있다. 또한 각 서버 프로세스의 상태와 서비스의 처리 상태 등을 확인할 수 있다.
tmadmin 프로그램은 다음과 같이 실행한다.
$tmadmin
아래와 같은 메시지와 함께 프롬프트(prompt)가 나타난다. 이것은 tmadmin 프로그램이 실행 상태임을 나타낸다.
--- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmax1 (tmadm):
tmadmin을 종료하기 위해서는 'quit’이나 'q' 명령을 사용한다.
$$1 tmax1 (tmadm):quit
다음은 tmadmin을 실행한 후 사용할 수 있는 명령어 목록이다.
-
환경 정보 조회
명령어 설명 환경설정 내용을 조회한다.
TMMOPT 등의 환경설정에 정의된 옵션 중 동적 변경이 가능한 설정의 현재 설정값을 조회한다.
라이선스 정보를 조회한다.
Tmax 시스템 정보를 확인한다.
-
동작 상태 정보 조회
명령어 설명 JEUS Async 게이트웨이의 정보를 확인한다.
멀티 노드 환경에서 CLH 사이의 연결 상태 정보를 확인한다.
접속 클라이언트를 확인한다.
GATEWAY 절에 정의한 게이트웨이들의 채널 상태를 확인한다.
JEUS 게이트웨이의 정보를 확인한다.
Tmax Non 트랜잭션 게이트웨이의 정보를 확인한다.
명령어를 반복한다.
RQ의 상태를 확인하거나 디스크 큐에 쌓여있는 서비스를 처리한다.
GID를 이용하여 해당 서비스의 수행 상태를 조회한다.
프로세스 및 서비스 상태의 통계를 낸다.
서버 정보를 확인한다.
멀티 노드 환경에서 TMM 사이의 연결 상태 정보를 확인한다.
Tmax 게이트웨이의 정보를 확인한다.
트랜잭션 처리 정보를 확인한다.
웹 서비스 게이트웨이의 정보를 확인한다.
-
운용 관리
명령어 설명 TCS, UCS, RDP 서버로 이벤트를 전송한다.
특정 서비스명을 advertise/unadvertise한다.
동적으로 서비스를 추가한다.
TMM, CLH, 특정 서버의 로그 레벨을 런타임 도중 동적으로 변경한다.
로그 레벨을 런타임 도중 동적으로 변경한다.
트레이스 관리를 한다.
서버 프로세스 개수가 0개인 서버에 속하는 동적 등록된 서비스들을 삭제하는 기능이다.
접속 중인 클라이언트를 강제로 해제한다.
로깅을 시작/종료한다.
특정 서버 프로세스에 특정 CLH 에 연결을 하라고 명령한다.
큐에 쌓인 업무를 삭제한다.
서버 프로그램을 교체한다.
CLH와 다른 노드의 재연결을 시도한다.
서버 그룹에 속한 모든 TMS 및 서버 프로세스들이 데이터베이스에 재연결한다.
서버 프로세스를 재기동한다.
특정 서버 프로세스 또는 모든 서버 프로세스의 통계정보를 초기화한다.
중지된 서버 프로세스를 재개한다.
현재 설정된 환경설정 값을 동적으로 변경한다.
TMMOPT 등의 환경설정에 정의된 옵션 중 동적 변경이 가능한 환경설정 값을 동적으로 변경한다.
동작 중인 서버 프로세스를 중지한다.
트랜잭션 처리 중에 장애가 발생하는 경우 commit/rollback을 재이슈하여 해당 트랜잭션을 종료하는 기능이다.
웹 서비스 게이트웨이의 서비스 정보, 설정 변경을 적용한다.
-
기타
명령어 설명 !
바로 전에 사용한 명령어를 반복한다.
help(h)
사용 가능한 옵션 리스트를 조회한다.
이전에 저장된 명령어를 조회한다.
nodeset(ns)
멀티 노드 환경에서 특정 노드에 대한 정보만을 얻으려는 경우에 사용한다.
nodeunset(nus)
멀티 노드 환경에서 특정 노드에 대한 정보만을 얻으려는 설정을 해제한다.
tmd
가상의 클라이언트 애뮬레이터로서 서비스 프로그램의 유효성을 검토하는 경우 클라이언트 프로그램을 별도로 작성하지 않고 이 유틸리티를 이용한다.
quit(q)
tmadmin을 종료한다.
3. 환경 정보 조회
3.1. config(cfg)
현재 동작 중인 시스템의 환경 정보를 알려준다. 환경 파일에서 정의된 도메인, 노드, 서버 그룹, 서버, 서비스별로 기본값까지 포함한 모든 환경 정보를 확인할 수 있다. 출력되는 항목에 대한 자세한 설명은 환경 파일 설정을 참고한다.
-
사용 방법
$$1 tmax1 (tmadm): config (cfg) [-d] [-n] [-g [servergroup_name]] [-v[server_name]] [-s [service_name] [-x]] [-w [gateway_name]] [-r] [-b] [-f] [-pr]
항목 설명 [-d]
도메인에 대한 환경 정보를 조회한다.
환경 파일의 DOMAIN 절과 관련된 모든 항목 내용과 도메인에 존재하는 정보를 확인할 수 있다.
[-n]
전체 노드에 대한 환경 정보를 조회한다.
환경 파일의 NODE 절과 관련된 모든 항목 내용과 시스템에서 내부적으로 정의된 정보를 확인할 수 있다.
[-g [servergroup_name]]
서버 그룹에 대한 환경 정보를 조회한다.
서버 그룹명을 지정하면 그 서버 그룹에 대한 정보만을 조회하고 서버 그룹명을 지정하지 않으면 모든 서버 그룹에 대한 정보를 조회한다.
그룹별로 각 서버 그룹에 대하여 환경 파일의 SVRGROUP 절과 관련된 모든 항목 내용을 확인할 수 있다.
[-v [server_name]]
서버에 대한 환경 정보를 조회한다.
서버명을 지정하면 그 서버에 대한 정보만을 조회하고 서버명을 지정하지 않으면 모든 서버에 대한 정보를 출력한다.
서버별로 각 서버에 대하여 환경 파일의 SERVER 절과 관련된 모든 항목 내용과 내부적으로 정의된 서버 번호(svr_no), 서버와 관련된 데이터 의존형 라우팅 정보(ddri)를 확인할 수 있다.
[-s [service_name] [-x]]
서비스에 대한 환경 정보를 조회한다.
서비스명을 지정하면 그 서비스에 대한 정보만을 조회하고 이름을 지정하지 않으면 모든 서비스에 대한 정보를 출력한다.
서비스별로 각 서비스에 대하여 환경 파일의 SERVICE 절과 관련된 모든 항목 내용을 확인할 수 있다.
[-x] 옵션을 사용할 경우 txtime 정보를 추가로 출력한다.
[-w [gateway_name]]
게이트웨이에 대한 환경 정보를 조회한다.
게이트웨이명을 지정하면 그 게이 트웨이에 대한 정보만을 조회하고 이름을 지정하지 않으면 모든 게이트웨이에 대한 정보를 출력한다.
[-r]
라우팅 환경 정보를 조회한다.
[-b]
백업 환경 정보를 조회한다.
[-f]
TopEnd의 함수 정보를 조회한다.
[-pr]
TopEnd의 product 정보를 조회한다.
-
예제
-
도메인의 환경 정보(-d)
다음은 도메인의 환경 정보를 확인하는 예제이다.
$$1 tmax8 (tmadm): cfg -d domain_name = tmax1, shmkey = 79190, minclh = 1, maxclh = 3, maxuser = UNLIMITED, portno(portno) = 7789, racport = 3333, cmtret = YES, blocktime(bt) = 30.000, txtime(tt) = 0.000, nliveinq(ni) = 30, security = NONE, cpc = 1, maxfunc = 0, clichkint(clichkint) = 0, idletime(idletime) = 0, node_count = 1, svg_count = 6, svr_count = 14, cousin_count = 0, cousin_gcount = 0, backup_count = 0, backup_gcount = 0, rout_count = 0, rout_gcount = 0, maxsacall = 8, maxcacall = 16, nclhchktime(nclhchktime) = -1, txpendingtime(txpendingtime) = 0, maxconv_node = 16, maxconv_server = 8, maxnode = 32, maxsvg = 32, maxspr = 64, maxsvr = 64, maxsvc = 512, maxcpc = 150, maxtms = 32, maxrout = 16, maxroutsvg = 32, maxrq = 2, maxgw = 2, maxcousin = 16, maxcousinsvg = 32, maxbackup = 16, maxbackupsvg = 32, maxtotalsvg = 64, maxprod = 0, tipsvc = , crypt = NO, maxthread = 128, tmmloglvl = DETAIL, clhloglvl = DETAIL, tlmloglvl = DETAIL, casloglvl = DETAIL, rsloglvl = DETAIL, sqloglvl = DETAIL, tgloglvl = DETAIL, tmsloglvl = DETAIL, hmsloglvl = DETAIL, rqloglvl = DETAIL, gwloglvl = DETAIL, cllloglvl = DETAIL, loglvl = DETAIL, cllblock = NO, tdl = NO, maxconvn = 16, maxconvs = 8, domainid = 0, fdlversion = 1, tgshmsize = 0, tgmax = -1, tgmax_child = -1, tgmax_watcher = -1, tgheartbeat = 0, tgtimeout = 0, tg_mcast_ip = 224.0.0.100, tg_portno = 9999, tghistorycount = 50, tgstandbycount = 50, tgmaxbuffersize = 65000, tgdownwaittime = 30,
다음은 명령어를 실행하는 경우 출력되는 항목에 대한 설명이다.
항목 설명 nodecount
도메인에 존재하는 노드 개수이다.
svgcount
서버 그룹 개수이다.
cousin_gcount
COUSIN 항목이 정의된 그룹 개수로 부하 조절을 위한 복사 서버 그룹 개수이다.
cousin_count
모든 복사본 서버 그룹의 개수이다.
rout_count
ROUTING 절에 정의된 라우팅 개체의 개수이다.
relem_count
각 라우팅 개체의 범위 항목에 정의된 각 범위별 라우팅 단위 개수이다.
-
전체 노드의 환경 정보(-n)
다음은 전체 노드의 환경 정보를 확인하는 예제이다.
$$1 tmax8 (tmadm): cfg -n node_name = tmax8, hostname = tmax8, node_no = 0 load = 0, shmkey = 79190, minclh = 1, maxclh = 3, maxuser = UNLIMITED, Supported maximum user per node = 15931, Supported maximum user per handler = 15932, clhqtimeout(cqt) = 0, portno(portno) = 7789, racport = 3333, tmaxhome = /data/tmaxha/tmax/, tmaxdir = /data/tmaxha/tmax/, appdir = /data/tmaxha/tmax/appbin/, pathdir = /data/tmaxha/tmax/path/, tlogdir = /data/tmaxha/tmax/log/tlog/, slogdir = /data/tmaxha/tmax/log/slog/, ulogdir = /data/tmaxha/tmax/log/ulog/, envfile = , svgcount = 6, svrcount = 14, svccount = 24, curclh = 1, sprcount = 14, tmscount = 6, cpccount = 10, cmprsize(cmprsize) = -1, ipcperm = 1c0, clichkint(clichkint) = 0, idletime(idletime) = 0, tmmopt = , clhopt = , tlmopt = , realsvr = , rscpc = 4, maxsvg = 32, maxsprs = 64, maxsvr = 64, maxtmss = 32, maxcpc = 150, maxgwsvr = 2, maxrqsvr = 2, maxgwcpc = 8, restart(rs) = YES, maxrstart(mr) = -1, gperiod(gp) = 86400, autobackup(ab) = YES, extport = 0, maxthread = 128, cllblock(cb) = NO, cllconnlb(cllconnlb) = RR, cllbindip = YES, tdl = NO, sqkey = 78550, sqsize = 8388608, sqmax = 1024, sqkeymax = 64, sqtimeout = 30, smsupport = NO, msgsizewarn(msw) = 1073741824, msgsizemax(msx) = 1073741824, tgshmkey = -1, tgid = -1, tgmcast_ttl = 1, tgmcast_if = , crypt_algorithm = "", svclog_format = "", casthread = -1, cas = "", security_lib = "", crypt_lib = ""
다음은 명령어를 실행하는 경우 출력되는 항목에 대한 설명이다.
항목 설명 node_no
시스템에서 내부적으로 정의된 노드 번호이다.
svgcount
노드 내에 존재하는 서버 그룹 개수이다.
svrcount
서버 개수이다.
svccount
서비스 개수이다.
curclh
노드에서 동작 중인 CLH 프로세스 개수이다.
maxsprs
동작 가능한 최대 서버 프로세스의 개수이다.
maxtms
최대 TMS 프로세스 개수이다.
autobackup
backup으로 선언되어 있는 svg의 서버들을 자동으로 기동할지 여부를 설정한다. (Y|N)
주로 tmdown -i 로 main 노드를 down시킬 경우 자동으로 backup 서버들이 기동되지 않도록 하기 위해서 N으로 변경하고 tmdown 시키고 다시 Y로 변경하는 방법으로 운영한다.
tmadmin을 실행하는 노드 또는 접속된 노드가 set 명령으로 설정하려는 노드가 아닌 경우에는 아래와 같이 에러가 출력되며 변경사항이 반영되지 않는다.
no such name(nodename) for the section defiend in config.
또한 다른 노드의 설정을 변경하려면 대상 노드에 racd가 실행되어 있어야 한다.
-
서버 그룹의 환경 정보(-g)
다음은 서버 그룹의 환경 정보를 확인하는 예제이다.
$$2 tmax8 (tmadm): cfg -g svg2 svg_name = svg2, svg_no = 3 xaoption = , openinfo = Oracle_XA+Acc=P/scott/tiger+SesTm=60+DbgFl=7+LogDir=/data/tmaxha/tmax/log/xalog, closeinfo = , appdir = , ulogdir = , svgtype = TMAX, envfile = , tmsname = tms_ora, mintms = 2, maxtms = 3, curtms = 2, tmstype = STD, tmsthreads = 0, tmsopt = -o svg2 -e svg2, tmsrecovery = YES, tmsloglvl = DEBUG4, tmsrange = DOMAIN, tmsxatime(tmsxatime) = 0, load(ld) = -9, tms starti = 0, tms endi = 2, restart(rs) = YES, maxrstart(mr) = -1, gperiod(gp) = 86400, autobackup = YES, dummy = NO, dbname = ORACLE, rmid = 0, svclog_format = ""
-
서버의 환경 정보(-v)
서버의 환경 정보를 확인하는 예제이다.
$$4 tmax8 (tmadm): cfg -v svr2 svr_name = svr2, svr_no = 5 svgno = 2, cursvr = 1, clopt = , seq = -1, minsvr = 1, maxsvr(max) = 1, ulogdir = , maxqcount(mq) = -1, asqcount(aq) = -1, conv = NO, ddri = DDR_NO_ROUT, lifespan(ls) = -1, restart(rs) = YES, maxrstart(mr) = 5, gperiod(gp) = 86400, svrtype = TMAX_STD, schedule(schedule) = FA, cpc = 1, dummy = NO, aus = NO, mac(mac) = NO, roc(roc) = NO, multiclh = YES, ctx_ereply = NO, svrqtimeout(sqt) = -1, inbound_cpc = 1, svclog_format = ""
-
서비스의 환경 정보(-s)
다음은 서비스의 환경 정보를 확인하는 예제이다.
$$5 tmax8 (tmadm): cfg -s ------------------------------------------------------------------------------------------- svc_name funcname prio(pr) autotran svctime(st) routno svrname svgno ------------------------------------------------------------------------------------------- _hms01 50 NO 0.000 -1 _hms01 4 TOLOWER 50 NO 0.000 -1 svr2 2 TOUPPER 50 NO 0.000 -1 svr2 2 HMS 50 NO 0.000 -1 svr_hms 2 FDLTOLOWER 50 NO 0.000 -1 svr3 2 FDLTOUPPER 50 NO 0.000 -1 svr3 2 gw1 50 NO 0.000 -1 gw1 0 gw2 50 NO 0.000 -1 gw2 1 SDLTOLOWER 50 NO 0.000 -1 svr1 2 SDLTOUPPER 50 NO 0.000 -1 svr1 2 _rq1 50 NO 0.000 -1 _rqsvg 5 LOGIN 50 NO 0.000 -1 svr_ucs 2 TPDEQ 50 NO 0.000 -1 svr_rq 2 TPENQ 50 NO 0.000 -1 svr_rq 2 FDLDEL 50 NO 0.000 -1 fdltest 3 SDLDEL 50 YES 0.000 -1 sdltest 3 FDLSEL 50 NO 0.000 -1 fdltest 3 FDLINS 50 NO 0.000 -1 fdltest 3 TOUPPER_CONV 50 NO 0.000 -1 svr_conv 2 SDLSEL 50 YES 0.000 -1 sdltest 3 SDLINS 50 YES 0.000 -1 sdltest 3 FDLUPT 50 NO 0.000 -1 fdltest 3 SDLUPT 50 YES 0.000 -1 sdltest 3 GET_SQ 50 NO 0.000 -1 svr_sq 2
-
게이트웨이의 환경 정보(-w)
다음은 게이트웨이의 환경 정보를 확인하는 예제이다.
$$7 tmax8 (tmadm): cfg -w gw1 gw_name = gw1, node_no = 0, gw_no = 0 gw_type = TMAXNONTX, portno = 4021, rgwaddr = 192.168.1.86, rgwportno = 4021, backup_rgwaddr = , backup_rgwportno = -1, backup_rgwaddr2 = , backup_rgwportno2 = 0, backup_rgwaddr3 = , backup_rgwportno3 = 0, cpc = 1, timeout(timeout) = 11000, direction(direction) = BIDIR, maxinrgw = 32, clopt = -i, ptimeout(ptimeout) = -1, ptimeint(ptimeint) = -1, gwchkint(gwchkint) = -1, gwconnect_timeout = -1, nliveinq(nliveinq) = -1
-
3.2. configopt(cfgopt)
TMMOPT 등의 환경설정에 정의된 옵션 중 동적 변경이 가능한 설정의 현재 설정값을 조회한다.
-
사용 방법
$$1 tmax1 (tmadm): configopt (cfgopt) [-tmm | -gw gwname]
항목 설명 -tmm
TMMOPT 환경설정에 정의된 옵션 중 동적 변경이 가능한 옵션들의 현재 설정된 값을 확인한다.
-gw gwname
GATEWAY 절의 CLOPT 환경설정에 정의된 옵션 중 동적 변경이 가능한 옵션들의 현재 설정된 값을 확인한다.
-
예제
-
TMMOPT의 환경 정보(-d)
다음은 TMMOPT 환경설정의 환경 정보를 확인하는 예제이다.
$$1 node1 (tmadm): cfgopt -tmm ------------------------------------------------------------------------ -tmm configurable value ------------------------------------------------------------------------ accept retry count (-A) = 100 max forked threshold (-F) = 95 booting timeout (-t) = 10 auto failback (-D) = 1 node check try count (-R) = 0 ------------------------------------------------------------------------
다음은 명령어를 실행할 경우 출력되는 항목에 대한 설명이다.
항목 설명 accept retry count(-A)
서버 프로세스의 접속 요청에 대해서 accept를 처리할 때 한 번에 처리할 횟수이다. TMMOPT의 -A 옵션 설명을 참조한다.
max forked threshold(-F)
TMM에서 서버 프로세스의 추가 기동이나 프로세스 재기동 등으로 인해 새로운 프로세스를 생성할 때 동시에 처리할 수 있는 최대 개수이다.
TMMOPT의 -F 옵션 설명을 참조한다.
booting timeout(-t)
ASQCOUNT로 기동된 서버 프로세스의 접속 타임아웃 시간이다.
TMMOPT의 -t 옵션 설명을 참조한다.
auto failback(-D)
FailBack을 수행하는 경우 백업으로 설정된 서버 그룹의 서버 프로세스들이 자동으로 종료되는지 여부를 설정한다.
1을 지정하면 활성화되고 0을 지정하면 비활성화된다.
node check try count (-R)
기본적으로 백업 서버 그룹의 PRIMARY 노드에서 장애가 발생한 뒤 NLIVEINQ 설정 시간이 지나면 바로 FailOver 동작(백업 서버 그룹 기동)을 한다. 이 옵션을 지정하면 해당 노드의 TMM으로 Retry Count만큼 재연결 시도를 하고, 설정한 횟수의 재연결이 모두 실패한 경우에 FailOver를 수행한다. 기본값은 0이며 1 이상의 값을 지정한다. 자세한 설명은 NODE 절의 "TMMOPT 항목"을 참고한다.
-
GATEWAY절 CLOPT의 환경 정보(-d)
다음은 게이트웨이의 CLOPT 환경설정의 환경 정보를 확인하는 예제이다.
$$1 node1 (tmadm): cfgopt -gw gw1 ------------------------------------------------------------------------ -gw configurable value ------------------------------------------------------------------------ debug log level (-D) = 0 ------------------------------------------------------------------------
다음은 명령어를 실행할 경우 JEUS 게이트웨이에서 출력되는 항목에 대한 설명이다. 게이트웨이의 종류에 따라 설정 가능한 항목이 다르다.
항목 설명 debug log level (-D)
현재 설정된 Debug log의 로깅 레벨을 표시한다.
-
3.3. licinfo
현재 기동된 Tmax 라이선스 정보를 확인한다.
-
사용 방법
$$1 tmax1 (tmadm): licinfo
-
예제
다음과 같이 현재 기동된 Tmax의 라이선스 정보를 확인할 수 있다.
$$1 gnibm (tmadm): licinfo ############################################### Current License Image (node: gnibm) ############################################### License seqno: TRS-xxxx-xxx-xxx License issue date: 2022/8/3 License type: REAL Edition: Standard Licensed sub-products: Distributed transaction support Reliable Queue subsystem Hybrid Messaging System Session Queue subsystem Separate UCS type server license : 32768 CPCs Multi-Domain transaction gateway Multi-Domain non-transaction gateway Jeus gateway Jeus asynchronous gateway Tuxedo gateway Tuxedo asynchronous gateway Web-Service gateway Tmax XA gateway HostLink gateway TCP/IP (thread) gateway X.25 gateway Serial(RS232) gateway WebT components Torus components Entera gateway Topend gateway Anylink license OpenFrame license Global Queue subsystem Deployment subsystem License check by hostname: gnibm Unlimited license
3.4. tmaxinfo(ti)
현재 접속된 Tmax 시스템의 환경 정보를 조회한다.
-
사용 방법
$$1 tmax1 (tmadm): ti
-
예제
다음과 같이 시스템 버전(version), 최대 사용자 수(maxuser) 등을 확인할 수 있다.
$$1 tmax8 (tmadm): ti Tmax System Info: REAL version 6.0: maxuser = UNLIMITED, Supported maximum user per node = 16076, Supported maximum user per handler = 16077, domaincount = 1, nodecount = 1, svgrpcount = 1, svrcount = 1, svccount = 1 rout_groupcount = 0, rout_elemcount = 0 cousin_groupcount = 0, cousin_elemcount = 0 backup_groupcount = 0, backup_elemcount = 0 Tmax All Node Info: nodecount = 1: ------------------------------------------------------------------ no name portno racport shmkey shmsize minclh maxclh ------------------------------------------------------------------ 0 tmax8 7789 3378 87789 755872 1 3
4. 동작 상태 정보
4.1. jgwinfo(jgwi) / ajgwinfo(ajgwi)
tmadmin에서 JTmax나 WebtAsync와의 연결 상태를 확인할 수 있는 명령어이다. 이와 더불어 현재 메인과 연결되어 있는지 백업과 연결되어 있는지 상세한 정보를 확인할 수 있다. jgwinfo는 Java(JEUS) 게이트웨이의 정보를 확인하며, ajgwinfo는 Async Java(ASYNC_JEUS) 게이트웨이의 정보를 확인한다.
-
사용 방법
-
jgwinfo
$$1 tmax1 (tmadm): jgwinfo
-
ajgwinfo
$$1 tmax1 (tmadm): ajgwinfo
-
-
예제
-
jgwinfo
다음은 명령어 사용 예제이다.
10/user2/starbj81>tmadmin --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxs1 (tmadm): jgwinfo ------------------------------------------------------------------------------- gw_no name channel type foreign_address status ------------------------------------------------------------------------------- 0 gw1 OUTCH PRIM unknown(192.168.35.47:6555) RDY
다음은 명령어를 실행하면 조회되는 결과에 대한 설명이다.
항목 설명 gw_no
게이트웨이 번호이다.
name
게이트웨이명이다.
channel
INBOUNT channel인지, OUTBOUND channel인지를 표시한다.
type
현재 메인과 연결되어 있는지, 백업과 연결되어 있는지를 표시한다.
foreign_address
연결되어 있는 리모트 게이트웨이의 IP 주소이다.
status
webt, jtmax, webtasync와의 연결상태이다. 상태에 대한 자세한 설명은 "시스템 동작 상태"를 참고한다.
-
ajgwinfo
다음은 백업과 연결되어 있을 경우의 예제이다.
10/user2/starbj81>tmadmin --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmax1 (tmadm): ajgwinfo ------------------------------------------------------------------------------- gw_no name channel type foreign_address status ------------------------------------------------------------------------------- 1 gw2 OUTCH BACK unknown(192.168.35.47:6555) RDY
-
4.2. clhsinfo(clhsi)
clhsinfo는 멀티 노드 환경에서 각각의 CLH 사이 연결 상태 정보를 확인할 수 있다. 멀티 노드 환경에서는 서로 다른 노드 간의 연결이 반드시 이루어져야 한다. 하지만 방화벽이나 장비 노후로 인해 네트워크가 불안정한 경우에는 노드 사이의 연결이 끊어져 정상적인 서비스가 이루어질 수 없는 경우가 있다. 이와 같은 문제를 확인할 수 있는 명령어로 clhsinfo, tmmsinfo가 추가되었다.
-
사용 방법
$$1 tmax1 (tmadm): clhsinfo
-
예제
다음은 'minclh =1', 'maxclh=2’로 설정한 경우 clhsinfo를 사용한 예제이다.
tmaxh4@starbj81:/EMC01/starbj81/tmax/config>tmadmin TMADMIN for rnode (tmaxh2): starting to connect to RAC --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxh4 (tmadm): clhsinfo CLH 0: --------------------------------------- nodename clhno cpc status --------------------------------------- tmaxh2 0 2 RDY tmaxh2 1 0 NRDY --------------------------------------- CLH 1 is not available Msg from rnode(tmaxh2): CLH 0: --------------------------------------- nodename clhno cpc status --------------------------------------- tmaxh4 0 2 RDY tmaxh4 1 0 NRDY --------------------------------------- CLH 1 is not available
다음은 명령어를 실행하면 조회되는 결과에 대한 설명이다.
항목 설명 nodename
노드명이다.
clhno
CLH 번호이다.
cpc
CPC 번호이다.
status
노드간 CLH 상태이다.
다음은 노드간 CLH 상태에 출력되는 값에 대한 설명이다.
-
NRDY(NOT_READY) : 대상 CLH와 연결이 되어 있지 않거나 연결이 끊어진 상태이다.
-
RDY(READY) : 정상적으로 연결되어 있는 상태이다.
-
4.3. cliinfo(ci)
현재 접속된 클라이언트의 환경 정보를 조회한다.
-
사용 방법
$$1 tmax1 (tmadm): ci [–s] [-c] [-P] [-p [portno, ...]]
항목 설명 [-s]
연결된 총 클라이언트의 개수를 파악할 수 있다.
[-c]
암호화 모드로 접속한 클라이언트만 조회할 수 있다.
[-P]
포트 번호 정보와 qpcount, emaxcount 정보를 추가로 출력한다.
[-p [portno, …]]
열거한 Tmax 접속 포트 번호에 대해서만 출력한다.
-
예제
다음은 명령어 사용 예제이다.
$$1 tmax1 (tmadm): ci CLH 0: --------------------------------------------------------------------------- cli_id clid status count lastin_time ipaddr usrname --------------------------------------------------------------------------- 0 0x00200000 RDY 0 10 192.168.1.43 1 0x00200001 RDY 0 91 192.168.1.43 tmax ... $$1 tmaxi9 (tmadm): ci -c CLH 0: -------------------------------------------------------------------------------------------------- cli_id clid status count lastin_time ipaddr usrname tmax_port -------------------------------------------------------------------------------------------------- 0 0x00000000 RUN 0 1 127.0.0.1:58235 7189 1 0x00000001 RUN 0 1 127.0.0.1:58236 7389 4 0x00000004 RUN 0 1 127.0.0.1:58239 7289 -------------------------------------------------------------------------------------------------- Total Connected Clients(CRYPTED) = 3 -------------------------------------------------------------------------------------------------- $$1 tmaxi9 (tmadm): ci -p 7189,7289,7389,7489,7589 CLH 0: ------------------------------------------------------------------------------------------------------------ cli_id clid status count qpcount emcount lastin_time ipaddr usrname tmax_port ------------------------------------------------------------------------------------------------------------ 0 0x00000000 RUN 0 0 0 1 127.0.0.1:58235 7189 1 0x00000001 RUN 0 0 0 1 127.0.0.1:58236 7389 2 0x00000002 RUN 0 0 0 1 127.0.0.1:58238 7489 3 0x00000003 RUN 0 0 0 1 127.0.0.1:58237 7589 4 0x00000004 RUN 0 0 0 1 127.0.0.1:58239 7289 ------------------------------------------------------------------------------------------------------------ Total(7189,7289,7389,7489,7589) Connected Clients = 5 ------------------------------------------------------------------------------------------------------------ $$8 tmaxh9 (tmadm): ci -P CLH 0: ------------------------------------------------------------------------------------------------------------ cli_id clid status count qpcount emcount lastin_time ipaddr usrname tmax_port ------------------------------------------------------------------------------------------------------------ 7 0x00000007 QED 0 0 0 27 192.168.1.34:63307 12399 8 0x00000008 QED 0 0 0 27 192.168.1.34:63308 12399 9 0x00000009 QED 0 0 0 27 192.168.1.34:63309 12399 10 0x0000000a QED 0 0 0 27 192.168.1.34:63310 12399 11 0x0000000b QED 0 0 0 27 192.168.1.34:63311 12399 ------------------------------------------------------------------------------------------------------------ Total Connected Clients = 5 ------------------------------------------------------------------------------------------------------------
다음은 명령어를 실행하면 조회되는 결과에 대한 설명이다.
항목 설명 cli_id
클라이언트 ID이다.
clid
"노드번호+CLH번호+cli_id"를 조합한 16진수 값이다.
status
클라이언트의 현재 상태이다.
다음은 출력 항목 중 status 항목에서 확인할 수 있는 상태이다.
-
RDY : 클라이언트가 정상적으로 CLH에 접속되어 있는 상태이다.
-
NRDY : CLH와 연결을 맺고 있는 클라이언트 중 TCP/IP 소켓만 연결되어 있고 정상적으로 연결 메시지(TPSTART 메시지)를 보내지 않은 상태이다.
-
QED : 클라이언트의 서비스 요청이 서버 큐에 쌓여 있는 상태이다.
-
CTING : 클라이언트가 CLH에 연결 중인 상태이다.
-
UNR : 클라이언트가 tpend()과정 중이거나 NCLH가 내려갈 때의 상태이다.
-
RUN : 클라이언트가 요청한 서비스가 실행 중인 상태이다.
count
서비스 처리 건수이다.
qpcount
queue에서 purge된 메시지들의 개수이다.
emaxcount
queue 안에 있는 메시지들이 max 값에 도달한 횟수이다.
lastin_time
클라이언트가 서비스 호출 후 대기하는 시간이다.
ipaddr
클라이언트의 접속 IP 주소이다. -P 혹은 -p 옵션 을 사용할 경우 포트 번호도 출력된다.
usrname
TPSTART_T 구조체의 usrname 필드에 정의한 사용자명이다.
tmax_port
Tmax 접속 포트 번호가 출력된다.
비정상적으로 연결된 클라이언트가 CLH에 무한정 연결되어 있을 경우 다른 클라이언트가 접속하지 못하는 현상이 발생할 수 있다. CLH에서 소켓 연결 이후 60초 이내에 TPSTART 연결 메시지가 오지 않는 클라이언트에 대해서는 자동으로 연결을 종료한다. 클라이언트 연결을 종료할 때 다음과 같은 에러가 발생한다.
(I) CLH0209 internal error : disconnect client because client didn't send tpstart msg for 60 sec.(192.168.1.43) [CLH0058]
-
4.4. gwinfo(gwi)
tmadmin에서 리모트 게이트웨이와의 연결 상태를 확인할 수 있는 명령어이다. 이와 더불어 현재 메인 노드와 연결되어 있는지, 백업 노드와 연결되어 있는지, 어떤 노드와 연결되어 있는지의 상세한 정보를 확인할 수 있다.
모든 게이트웨이의 연결 정보를 확인할 수 있다(예외로, 웹 서비스 게이트웨이는 지원하지 않는다).
-
사용 방법
$$1 tmax1 (tmadm): gwinfo [-w gw_name] [-t gw_type]
항목 설명 [-w gw_name]
특정 게이트웨이만 정보를 조회한다. gw_name은 GATEWAY 절에 설정한 이름이다.
[-t gw_type ]
특정 게이트웨이 종류만을 조회한다.
GATEWAY 절에 정의하는 TYPE(TMAX, TMAXNONTX, JEUS, JEUS_ASYNC, TUXEDO, TUXEDO_ASYNC, XAGW)으로 입력한다. (예: TMAX)
-
예제
다음은 gwinfo 명령의 사용 예제로 연결된 노드가 메인 노드인지 백업 노드인지에 따라 조회결과가 달라진다.
-
메인 노드에 연결된 경우
10/user2/starbj81>tmadmin --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxs1 (tmadm): gwinfo ---------------------------------------------------------------- gw_no channel type foreign_address status ---------------------------------------------------------------- 0 OUTCH PRIM tmaxc1(192.168.1.12:9400) RDY 1 OUTCH PRIM tmaxc1(192.168.1.12:9400) RDY 4 INCH - tmaxc1(192.168.1.12:1434) RDY 5 INCH - tmaxc1(192.168.1.12:1436) RDY 6 INCH - tmaxh2(192.168.1.48:58094) RDY 7 INCH - tmaxh2(192.168.1.48:58093) RDY
다음은 명령어를 실행하면 조회되는 결과에 대한 설명이다.
항목 설명 gw_no
게이트웨이 번호이다.
channel
채널이 INBOUNT인지, OUTBOUND인지를 표시한다.
type
현재 메인과 연결되어 있는지 백업과 연결되어 있는지를 표시한다.
foreign_address
연결되어 있는 리모트 게이트웨이의 IP 주소이다.
status
webt, jtmax, webtasync 와의 연결상태이다. 상태에 대한 자세한 설명은 "시스템 동작 상태"를 참고한다.
-
백업 노드에 연결된 경우
$$1 tmax1 (tmadm): gwinfo ---------------------------------------------------------------- gw_no channel type foreign_address status ---------------------------------------------------------------- 0 OUTCH BACK tmaxh2(192.168.1.48:9200) RDY 1 OUTCH BACK tmaxh2(192.168.1.48:9200) RDY 6 INCH - tmaxh2(192.168.1.48:58091) RDY 7 INCH - tmaxh2(192.168.1.48:58092) RDY
-
4.5. txgwinfo(txgwi) / nontxgwinfo(ntxgwi)
tmadmin에서 리모트 게이트웨이와의 연결 상태를 확인할 수 있는 명령어이다. 이와 더불어 현재 메인 노드와 연결되어 있는지, 백업 노드와 연결되어 있는지, 어떤 노드와 연결되어 있는지의 상세한 정보를 확인할 수 있다. txgwinfo(txgwi)는 Tmax 게이트웨이의 정보를 확인하며, nontxgwinfo(ntxgwi)는 Tmax Non Transaction(TMAXNONTX) 게이트웨이의 정보를 확인한다.
-
사용 방법
-
txgwinfo
$$1 tmax1 (tmadm): txgwinfo
-
nontxgwinfo
$$1 tmax1 (tmadm): nontxgwinfo
-
-
예제
다음은 명령어 사용 예제이다.
-
txgwinfo
10/user2/starbj81>tmadmin --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxs1 (tmadm): txgwinfo ---------------------------------------------------------------- gw_no channel type foreign_address status ---------------------------------------------------------------- 0 OUTCH PRIM tmaxc1(192.168.1.12:9400) RDY 1 OUTCH PRIM tmaxc1(192.168.1.12:9400) RDY 4 INCH - tmaxc1(192.168.1.12:1434) RDY 5 INCH - tmaxc1(192.168.1.12:1436) RDY 6 INCH - tmaxh2(192.168.1.48:58094) RDY 7 INCH - tmaxh2(192.168.1.48:58093) RDY
다음은 명령어를 실행하면 조회되는 결과에 대한 설명이다.
항목 설명 gw_no
게이트웨이 번호이다.
channel
채널이 INBOUNT인지, OUTBOUND인지를 표시한다.
type
현재 메인과 연결되어 있는지 백업과 연결되어 있는지를 표시한다.
foreign_address
연결되어 있는 리모트 게이트웨이의 IP 주소이다.
status
webt, jtmax, webtasync와의 연결상태이다. 상태에 대한 자세한 설명은 "시스템 동작 상태"를 참고한다.
-
nontxgwinfo
다음은 백업 노드와 연결되어 있을 경우의 예제이다.
$$1 tmax1 (tmadm): nontxgwinfo ---------------------------------------------------------------- gw_no channel type foreign_address status ---------------------------------------------------------------- 0 OUTCH BACK tmaxh2(192.168.1.48:9200) RDY 1 OUTCH BACK tmaxh2(192.168.1.48:9200) RDY 6 INCH - tmaxh2(192.168.1.48:58091) RDY 7 INCH - tmaxh2(192.168.1.48:58092) RDY
-
4.6. repeat(r)
repeat은 상태 정보 반복 표시 기능으로 다음의 방식으로도 사용될 수 있다. 반복적인 명령어 수행은 상태 정보를 모니터링할 뿐 아니라 업무 수행에 대한 디버깅에도 많은 도움을 줄 수 있다.
-
사용 방법
$$1 tmax1 (tmadm): r -k n -i ms 반복 수행 명령어
항목 설명 -k n
n번 반복 수행한다.
-i ms
ms(밀리초) 간격으로 반복 수행한다.
반복 수행 명령어
반복할 대상 명령어를 지정한다.
-
예제
다음은 5초의 간격을 두고 'st -s’를 30번 수행하는 것을 반복하는 예제이다.
$$1 tmax1 (tmadm): r -k 30 -i 5000 st -s
다음은 5초의 간격을 두고 'st -p’를 30초간 수행하는 것을 반복하는 예제이다.
$$1 tmax1 (tmadm): r -k 30 -i 5000 st -p
4.7. rqstat(rqs)
현재 사용 가능한 RQ의 상태를 보여주거나 디스크 큐에 쌓여있는 서비스를 사용자가 처리할 수 있다.
-
사용 방법
$$1 tmax1 (tmadm): rqstat (rqs) [-l] [-s rqname] [-f rqname] [-c rqname] [-a]
항목 설명 [-l]
사용 가능한 RQ를 보여준다.
[-s rqname ]
해당 RQ의 상태를 보여준다.
[-f rqname]
RQ에 쌓여 있는 서비스를 처리한다.
[-c rqname]
정체된 RQ를 제거한다.
[-a]
모든 RQ의 상태를 리스트 형태로 출력한다.
[-f] 옵션과 [-c] 옵션을 사용하여 RQ를 처리하기 위해서는 tmadmin -m 옵션을 사용하여 마스터 모드로 동작하도록 해야 한다.
-
예제
-
RQ의 상태 조회 (-a)
각 레코드는 다음의 항목들을 표현한다.
$$1 tmaxi9 (tmadm): rqs -a rq1 RDY 0 0 0 0 0 5 5 total count : 1
출력되는 데이터는 다음의 형식으로 표시된다.
rq이름 상태 request reply fail requestenqueued requestdequeued replyenqueued replydequeued
마지막 레코드는 total count를 표시한다.
-
RQ 조회(-I)
다음은 사용 가능한 RQ를 조회하는 예제이다.
$$1 tmax1 (tmadm): rqs -l list of available RQs: rq1 rq2
-
RQ 상태 조회(-s)
다음은 RQ의 상태를 조회하는 예제이다.
$$1 tmax1 (tmadm): rqs -s rq1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Number of queue entries - - - - - - - - - - - - - - - - - - - - - - - - - - - - - request 0 reply 0 fail 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Accumulated queue activities - - - - - - - - - - - - - - - - - - - - - - - - - - - - - request enqueued 0 request dequeued 0 reply enqueued 10 reply dequeued 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
RQ 서비스 처리(-f)
다음은 RQ에 쌓여있는 서비스를 처리하는 예제이다.
$$1 tmax1 (tmadm): rqs -f rq2 RQ(rq2) flushed
-
RQ 제거(-c)
다음은 정체된 RQ를 제거하는 예제이다.
$$1 tmax1 (tmadm): rqs -c rq2 RQ(rq2) statics cleared
-
4.8. smtrc
환경 파일 NODE 절의 SMSUPPORT가 'Y’로 설정되어 있을 경우 'st ?p ?x’를 실행하면 수행 중인 서비스에 대해서 해당 GID를 출력한다.
-
사용 방법
$$1 tmax1 (tmadm): smtrc [-a] GID0 GID1
항목 설명 [-a]
기존 정보 외에 서버 프로세스 인덱스(spri), 사용자 CPU 사용 시간, 시스템 CPU 사용 시간, 반환 정보 등을 모두 표시한다.
GID0
SysMaster의 GID 상위 4Byte를 Hexa decimal로 표기한다.
GID1
SysMaster의 GID 하위 4Byte를 Hexa decimal로 표기한다.
-
예제
다음은 'st ?p ?x’를 수행한 후 서비스에 대해서 해당 GID를 출력하기 위해 smtrc를 수행하는 예제이다.
$$1 tmax1 (tmadm): st ?p -x CLH 0: -------------------------------------------------------------- svr_name svgname spr_no status count avg svc PID fail_cnt err_cnt min_time max_time SysMaster_GID -------------------------------------------------------------- evtsvr svg1 36 RDY 0 0.000 -1 17980 0 0 0.000 0.000 00000000-00000000-00000000 svr1 svg1 37 RUN 0 0.000 SDLTOUPPER 17981 0 0 0.000 0.000 00000000-00000101-00000000 svr2 svg1 38 RUN 0 0.000 SDLTOUPPER2 17982 0 0 0.000 0.000 00000000-00080101-00000000 svr3 svg1 39 RUN 0 0.000 SDLTOUPPER3 17983 0 0 0.000 0.000 00000000-00100101-00000000 svr_sys svg1 40 RDY 3 0.000 -1 17984 0 0 0.000 0.000 00000000-00000000-00000000 ---------------------------------------------------------------- TOTAL COUNT = 3 TOTAL SVCFAIL COUNT = 0 TOTAL ERROR COUNT = 0 TOTAL AVG = 0.000 TOTAL RUNNING COUNT = 3 $$1 tmax1 (tmadm): smtrc 0 0101 CLH 0: ------------------------------------------------------------- sysmaster_global_id status svc_name ------------------------------------------------------------- 00000000:00000101:00000000 SVC_RUNNING SDLTOUPPER2 45670701 tmaxi1 (tmadm): smtrc -a 0 0101 CLH 0: ---------------------------------------------------------------- sysmaster_global_id status svc_name ctime svctime spri ucpu scpu ---------------------------------------------------------------- 00000000:00000101:00000000 SVC_RUNNING SDLTOUPPER2 14:05:32:159 0.000 38 0.000 0.000 00000000:00000101:00010000 SVC_RUNNING SMTRACE 14:05:32:159 0.000 40 0.000 0.000 00000000:00000101:00010000 SVC_DONE SMTRACE 14:05:32:159 0.000 40 0.000 0.000
다음은 명령어를 실행하면 조회되는 결과에 대한 설명이다.
항목 설명 sysmaster_global_id
SysMaster의 gid이다.
status
서비스 상태이다.
svc_name
서비스명이다.
ctime
로그를 생성한 시간이다.
svctime
서비스 수행 시간이다.
spri
서비스를 실행한 서버 프로세스 인덱스이다.
ucpu
사용자 cpu time이다.
scpu
시스템 cpu time이다.
4.9. stat(st)
실질적인 시스템 동작 상태를 나타내며, 동작 중인 서버 프로세스와 서비스에 대한 정보를 알 수 있다.
서버 프로세스의 현재 상태, 처리 중인 서비스명, 처리한 서비스 개수, 서비스에 대한 상태, 서비스 큐에 존재하는 서비스 요청 개수 등과 같은 동적인 정보를 확인할 수 있다. stat 명령어의 약어는 st이다.
-
사용 방법
$$1 tmax1 (tmadm): stat (st) {-v | -p | -s | -t | -q | -tg} -v [server_process_name] [-pod] [-b] -p [server_process_name] [-x [-j] | -X | -d [-j]] [-o sort_conditions [-n maxline]] [-b] -s [service_name] [-x | -X | -spr] [-o sort_conditions [-n maxline]] -t [TMS_name] [-x] -q [destination_name] [-c] -tg
항목 설명 -v [server_process_name] [-pod] [-b]
서버 프로세스에 대한 정보를 조회한다(si와 동일).
[-pod] 옵션을 사용하면 POD 서버의 상태 부분에 항상 "(POD)"가 출력된다.
이 옵션이 없으면 POD 서버의 상태가 기동된 경우에는 RDY, 기동되지 않은 경우에는 NRDY로 표시된다. POD 서버는 NRDY 상태이더라도 서비스를 요청할 때 자동으로 기동되어 처리되므로 상태가 중요하지 않으며, 모니터링할 때 문제인 서버로 오해할 수 있다. 이 옵션을 사용하여 불필요한 오해를 줄일 수 있다.
[-b] 옵션을 사용하면 서버 프로세스의 가장 마지막 기동 시각을 함께 표시한다.
-p [server_process_name] [-d] [-j] [-b]
서버 프로세스에 대한 정보를 조회한다.
Tmax 환경 파일에 등록된 서버는 MIN과 MAX 항목을 사용하여 여러 개 동작할 수 있는데, 이들 각각의 동작 상황을 확인할 수 있다. 서버명을 지정하면 해당 서버명의 서버 프로세스들에 관한 정보들이 출력되고, 이름을 지정하지 않으면 동작 중인 모든 서버 프로세스들에 대한 정보가 출력된다.
'st –p' 명령의 마지막 라인에 총 처리 건수, 전체 평균 처리시간, 현재 수행 중인 총 서비스 개수 통계 정보를 출력하여 시스템 처리 현황을 파악할 수 있다.
[-d] 옵션을 사용하면 서버 프로세스가 RUN 상태일 때 경과시간이 표시된다. 그 외의 상태일 경우 '-'로 표시된다.
[-j] 옵션을 사용하면 st -p -x, st -p -d 명령시 여러 라인에 나오는 항목들을 한 라인에 나오도록 한다.
[-b] 옵션을 사용하면 서버 프로세스의 가장 마지막 기동 시각을 함께 표시한다.
-s [service_name] [-spr]
서비스에 대한 정보를 조회한다.
서비스명을 지정하면 해당 서비스에 관한 정보만 출력되고, 서비스명을 지정하지 않으면 제공되는 모든 서비스에 관한 정보들이 출력된다.
[-spr] 옵션을 함께 사용하면 해당 서비스를 서버 프로세스별로 상태정보가 출력된다. 일부 서버 프로세스만 suspend 된 경우 사용하면 프로세스 별로 상태정보를 확인 할 수 있다.
-t [tms_name]
시스템에서 제공하는 TMS에 대한 동적 정보를 알려준다.
-
TMS 이름을 지정하면 해당 TMS에 관한 정보만 출력된다.
-
TMS 이름을 지정하지 않으면 제공되는 모든 TMS에 관한 정보가 출력된다.
[-x]
'st –p' 또는 'st –s' 명령어를 이용하여 서버 프로세스나 서비스의 상태 조회와 다음의 항목을 추가적으로 조회한다. [–s] 옵션이나 [–p] 옵션과 함께 사용해야 한다. 자세한 내용은 "상세 정보(-x)"를 참고한다.
-
OS에서 제공하는 프로세스 ID(PID), Fail count, Error count,
-
최소/최대 서비스 수행 시간(min_time, max_time)
-
시스템, 사용자 CPU 수행 시간(utime, umin_time, umax_time, stime, smin_time, smax_time) (단, 서버 프로세스나 서비스가 GATEWAY 일 경우에 이 값은 0으로 표시)
'st –t' 명령어를 이용하여 TMS의 상태 조회와 다음의 항목을 추가적으로 조회한다. [–t] 옵션과 함께 사용해야 한다.
-
트랜잭션 ID(XID), XA 처리상태(xastate)
-
multi thread TMS일 경우 각 thread의 상태
[-X]
-
[-s] 옵션과 함께 사용하는 경우
COUSIN 서비스에 대하여 상태1(상태2)의 형태로 로컬 상태를 따로 조회할 수 있다. (예: RDY(NRDY))
(상태2)가 실제적인 로컬 상태이며, [-X] 옵션을 사용하지 않을 경우 COUSIN 환경에서는 로컬 상태가 항상 RDY로 조회되는 문제점을 해결할 수 있다. 반드시 [–s] 옵션과 함께 사용해야 한다.
-
[-p] 옵션과 함께 사용하는 경우
서버 프로세스의 Suspend 상태를 조회한다. Suspend 상태에 있다면 다음과 같이 표시된다. (예: RDY(BLK:Pp))
서버 프로세스의 일부만 suspend할 수 있으며 부분적으로 suspend되는 경우에는 stat -v로 조회할 때 서버의 상태는 RDY로 표시되고, stat -p -X 로 조회할 때 suspend되어 있는 프로세스는 실제상태 뒤에 (BLK:Pp)가 함께 표시된다.
(BLK:Pp)의 Pp 상태는 suspend 명령할 때 -n/-N 옵션에 따라서 달라진다.
-
Pp
sp -n P -N P
-
Tp
sp -n T -N P
-
Tt
sp -n T -N T
-
Pt
sp -n P -N T
-
[-o sort_conditions [-n maxline]]
[–o] 옵션은 특정 조건을 기준으로 조회 결과를 sort하여 출력하기 위한 옵션이다. Tmax 시스템에서 제공하는 서버 프로세스와 서비스에 대한 동적 정보를 조회할 경우 특정 조건을 바탕으로 sort해서 원하는 정보를 볼 수 있다. 반드시 [–p] 옵션이나 [–s] 옵션과 함께 사용되어야 한다.
[-p] 와 함께 사용시 ca, ce, aa, ae 조건이 가능하며, [-s] 와 함께 사용시 ca, aa, cq, aq, qa 조건이 가능하다. 자세한 내용은 "내림 차순으로 sort 할 조건"을 참고한다.
sort는 내림차순, 오름차순으로 설정이 가능하다.
-
[-o ca] : 내림차순
-
[-o ca-] : 오름차순
[-n maxline] 옵션을 사용하면 sort되어 출력되는 메시지 라인(서버 프로세스 또는 서비스의 개수)을 지정할 수 있다.
-q [destination_name] [-c]]
HMS destination에 대한 정보를 보여준다. 환경설정 파일에서 설정한 destination의 목록과 각 destination에서 처리 중인 메시지의 정보를 확인할 수 있다.
특정 destination을 지정하고 [-c] 옵션과 함께 사용하면 해당 destination에 대한 각 클라이언트의 상세한 정보를 조회할 수 있다.
-tg
TmaxGrid에 대한 정보를 조회한다.
-
-
예제
-
서버 프로세스의 정보 (–p)
다음은 서버 프로세스의 정보를 확인하는 예제이다.
$$24 tmax8 (tmadm): st -p CLH 0: --------------------------------------------------------------------------- svr_name svgname spr_no status count avg svc --------------------------------------------------------------------------- gw1 gw1 32 RDY 0 0.000000 -1 gw2 gw2 33 RDY 0 0.000000 -1 _hms01 hms01 34 RDY 2 0.000000 -1 _hms01 hms01 105 RDY 0 0.000000 -1 _hms01 hms01 106 RDY 0 0.000000 -1 _hms01 hms01 107 RDY 0 0.000000 -1 _rqsvg rqsvg 35 RDY 0 0.000000 -1 _rqsvg rqsvg 109 RDY 0 0.000000 -1 _rqsvg rqsvg 110 RDY 0 0.000000 -1 _rqsvg rqsvg 111 RDY 0 0.000000 -1 svr1 svg1 36 RDY 0 0.000000 -1 svr2 svg1 37 RDY 0 0.000000 -1 svr3 svg1 38 RDY 0 0.000000 -1 svr_ucs svg1 39 RDY 0 0.000000 -1 svr_conv svg1 40 RDY 0 0.000000 -1 svr_rq svg1 41 RDY 0 0.000000 -1 svr_sq svg1 42 RDY 0 0.000000 -1 svr_hms svg1 43 RDY 0 0.000000 -1 fdltest svg2 44 RDY 0 0.000000 -1 sdltest svg2 45 RDY 0 0.000000 -1 --------------------------------------------------------------------------- TOTAL COUNT = 2 TOTAL AVG = 0.000 TOTAL RUNNING COUNT = 0
다음은 명령어를 실행하면 조회되는 결과의 항목에 대한 설명이다.
항목 설명 svr_name
서버 프로세스명이다.
svgname
서버 프로세스가 속해있는 서버 그룹명이다.
spr_no
각 서버별 프로세스의 ID이다.
status
서버 프로세스의 현재 상태이다.
다음은 시스템 동작 상태 정보이다.
-
RDY : Ready 상태이다.
-
NRDY : Non-Ready 상태로 NRDY인 경우는 tpstart하고 클라이언트가 소켓으로 연결이 맺어진 상태에서 서버로부터 데이터가 전송이 안 되는 경우에 발생할 수 있는 상태이다. 예를 들면 네트워크 상태가 좋지 않을 경우에 발생할 수 있다.
-
RUN : 실행 중인 상태이다.
-
Unregisted : 등록되지 않은 상태로 클라이언트에 tpend 직후에 잠시 나왔다가 상태가 변경된다.
-
BLK : 해당 서비스의 모든 프로세스가 suspend된다.
-
PBLK : 해당 서비스의 일부 프로세스가 suspend된다.
-
UNADV : 해당 서비스가 속한 모든 서버 프로세스가 unadvertise된 상태이다.
-
PUNADV : 해당 서비스가 속한 일부 서버 프로세스가 unadvertise된 상태이다.
count
처리한 서비스 개수이다.
avg
프로세스의 평균 처리시간이다.
svc
처리 중인 서비스명이다. 현재 처리 중인 서비스가 없는 경우 -1로 표시된다.
st 명령어는 와일드 카드도 사용할 수 있다. st –p s*을 입력하면 s로 시작하는 svr_name에 관한 정보만을 조회된다.
$$25 tmax8 (tmadm): st -p s* CLH 0: --------------------------------------------------------------------------- svr_name svgname spr_no status count avg svc --------------------------------------------------------------------------- svr1 svg1 36 RDY 0 0.000000 -1 svr2 svg1 37 RDY 0 0.000000 -1 svr3 svg1 38 RDY 0 0.000000 -1 svr_ucs svg1 39 RDY 0 0.000000 -1 svr_conv svg1 40 RDY 0 0.000000 -1 svr_rq svg1 41 RDY 0 0.000000 -1 svr_sq svg1 42 RDY 0 0.000000 -1 svr_hms svg1 43 RDY 0 0.000000 -1 sdltest svg2 45 RDY 0 0.000000 -1 --------------------------------------------------------------------------- TOTAL COUNT = 0 TOTAL RUNNING COUNT = 0
다음은 'st –p -j' 명령어를 사용한 예제이다.
$$1 redhat73 (tmadm): st -p svr2 -d CLH 0: ------------------------------------------------------------------------------ svr_name svgname spr_no status count avg svc PID scheduled ------------------------------------------------------------------------------ svr2 svg1 37 RUN 0 0.000000 TOLOWER 27302 3.719207 svr2 svg1 38 RDY 0 0.000000 -1 27301 - --------------------------------------------------------------------------------- TOTAL COUNT = 0 TOTAL RUNNING COUNT = 1
다음은 'st –p -d -j' 명령어를 사용한 예제이다.
$$2 redhat73 (tmadm): st -p svr2 -d -j CLH 0: ------------------------------------------------------------------------------ svr_name svgname spr_no status count avg svc PID scheduled ------------------------------------------------------------------------------ svr2 svg1 37 RUN 0 0.000000 TOLOWER 27302 8.570694 svr2 svg1 38 RDY 0 0.000000 -1 27301 - --------------------------------------------------------------------------------- TOTAL COUNT = 0 TOTAL RUNNING COUNT = 1
다음은 'st –p svr2 -b' 명령어를 사용한 예제이다.
$$3 tmaxh9 (tmadm): st -p svr2 -b CLH 0: ------------------------------------------------------------------------------------ svr_name svgname spr_no status count avg svc PID boottime ------------------------------------------------------------------------------------ svr2 svg1 45 RDY 5 1.000000 -1 7129 17:31:57.188 svr2 svg1 46 RDY 3 1.000000 -1 7130 2022-08-25 ------------------------------------------------------------------------------------ TOTAL COUNT = 0 TOTAL RUNNING COUNT = 0
-
-
서비스의 정보(–s)
다음은 서비스의 정보를 확인하는 예제이다.
$$13 tmax8 (tmadm): st -s CLH 0: ------------------------------------------------------------------------------------------------ svc_name svr_name count q_cnt aq_cnt q_avg avg status ------------------------------------------------------------------------------------------------ _hms01 _hms01 2 0 1 0.000000 0.000000 RDY TOLOWER svr2 0 0 0 0.000000 0.000000 RDY TOUPPER svr2 0 0 0 0.000000 0.000000 RDY HMS svr_hms 0 0 0 0.000000 0.000000 RDY FDLTOLOWER svr3 0 0 0 0.000000 0.000000 RDY FDLTOUPPER svr3 0 0 0 0.000000 0.000000 RDY gw1 gw1 0 0 0 0.000000 0.000000 RDY gw2 gw2 0 0 0 0.000000 0.000000 RDY SDLTOLOWER svr1 0 0 0 0.000000 0.000000 RDY SDLTOUPPER svr1 0 0 0 0.000000 0.000000 RDY _rq1 _rqsvg 0 0 0 0.000000 0.000000 RDY LOGIN svr_ucs 0 0 0 0.000000 0.000000 RDY TPDEQ svr_rq 0 0 0 0.000000 0.000000 RDY TPENQ svr_rq 0 0 0 0.000000 0.000000 RDY FDLDEL fdltest 0 0 0 0.000000 0.000000 RDY SDLDEL sdltest 0 0 0 0.000000 0.000000 RDY FDLSEL fdltest 0 0 0 0.000000 0.000000 RDY FDLINS fdltest 0 0 0 0.000000 0.000000 RDY TOUPPER_CONV svr_conv 0 0 0 0.000000 0.000000 RDY SDLSEL sdltest 0 0 0 0.000000 0.000000 RDY SDLINS sdltest 0 0 0 0.000000 0.000000 RDY FDLUPT fdltest 0 0 0 0.000000 0.000000 RDY SDLUPT sdltest 0 0 0 0.000000 0.000000 RDY GET_SQ svr_sq 0 0 0 0.000000 0.000000 RDY
다음은 명령어를 실행하면 조회되는 결과의 항목에 대한 설명이다.
항목 설명 svc_name
서비스명이다.
svr_name
서비스가 속한 서버명이다.
count
처리한 서비스 건수이다.
avg
서비스의 평균 처리시간이다.
q_count
현재 대기 중인 서비스 요청 건수이다.
aq_count
잠시라도 대기했던 총 서비스 요청 건수이다.
q_avg
서비스의 평균 대기시간이다.
status
서비스의 현재 상태이다. 상태에 대한 자세한 설명은 "시스템 동작 상태"를 참고한다.
와일드 카드를 사용해서 'st -s *W’를 입력하면 W로 끝나는 서비스에 대한 정보만 조회된다.
$$27 tmax8 (tmadm): st -s *R CLH 0: ------------------------------------------------------------------------------------------------ svc_name svr_name count q_cnt aq_cnt q_avg avg status ------------------------------------------------------------------------------------------------ TOLOWER svr2 0 0 0 0.000000 0.000000 RDY TOUPPER svr2 0 0 0 0.000000 0.000000 RDY FDLTOLOWER svr3 0 0 0 0.000000 0.000000 RDY FDLTOUPPER svr3 0 0 0 0.000000 0.000000 RDY SDLTOLOWER svr1 0 0 0 0.000000 0.000000 RDY SDLTOUPPER svr1 0 0 0 0.000000 0.000000 RDY
다음은 'st –s TOUPPER -spr' 명령어를 사용한 예제이다.
$$7 redhat73 (tmadm): st -s TOUPPER -spr CLH 0: --------------------------------------------------------------------- svc_name svr_name spr_no PID status --------------------------------------------------------------------- TOUPPER svr2 37 16228 BLK TOUPPER svr2 38 16227 RDY
-
TMS 정보(-t)
다음은 서비스의 정보를 확인하는 예제이다.
$$29 tmax8 (tmadm): st -t CLH 0: ------------------------------------------------------------------------------------ tms_name svgname spr_no status count avg cqcount aqcount qavg ------------------------------------------------------------------------------------ tms_ora svg2 0 RDY 1 0.004917 0 0 0.000000 tms_ora svg2 1 RDY 0 0.000000 ( 0) ( 0) (0.000000)
다음은 명령어를 실행하면 조회되는 결과의 항목에 대한 설명이다.
항목 설명 tms_name
TMS명이다.
svgname
TMS가 속해 있는 서버 그룹명이다.
spr_no
TMS의 프로세스 ID이다.
status
TMS의 현재 상태로 자세한 설명은 "시스템 동작 상태"를 참고한다.
count
처리한 TMS의 건수이다.
avg
TMS의 평균 처리시간이다.
cqcount
현재 대기 중인 요청 건수이다.
aqcount
잠시라도 대기했던 총 서비스 요청 건수이다.
qavg
서비스의 평균 대기시간이다.
TMS가 Multi Thread TMS일 경우에는 각 Thread의 상태를 조회할 수 있다.
$$1 tmax1 (tmadm): st -t -x CLH 0: ------------------------------------------------------------------------------------ tms_name svgname spr_no(tid) status count avg cqcount aqcount qavg PID XID xastate ------------------------------------------------------------------------------------ tms_ora_mt svg2a 3 RUN 0 0.000000 0 0 0.000000 44040492 000:000:13505 commit tms_ora_mt svg2a 3( 1) RDY 0% 0.00 ( 0) - - tms_ora_mt svg2a 3( 2) RDY 0% 0.00 ( 0) - - tms_ora_mt svg2a 3( 3) RDY 0% 0.00 ( 0) - - tms_ora_mt svg2a 3( 4) RDY 0% 0.00 ( 0) - - ---------------------------------------------------------------------------------
-
다음은 'st –p' 명령어와 함께 사용된 예제이다.
$$1 tmax8 (tmadm): st -p -x CLH 0: --------------------------------------------------------------------------- svr_name svgname spr_no status count avg svc PID RBS_TAG fail_cnt err_cnt min_time max_time utime umin_time umax_time stime smin_time smax_time --------------------------------------------------------------------------- gw1 gw1 32 RDY 0 0.000000 -1 10702 00000000 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 svr2 svg1 37 RDY 0 0.000000 -1 10700 00000000 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 --------------------------------------------------------------------------- TOTAL COUNT = 0 TOTAL SVCFAIL COUNT = 0 TOTAL ERROR COUNT = 0 TOTAL RUNNING COUNT = 0
다음은 'st –s' 명령어와 함께 사용된 예제이다.
$$2 tmax8 (tmadm): st -s -x CLH 0: ------------------------------------------------------------------------------------------------ svc_name svr_name count q_cnt aq_cnt q_avg avg status fail_cnt err_cnt mintime maxtime utime umintime umaxtime stime smintime smaxtime ------------------------------------------------------------------------------------------------ TOLOWER svr2 0 0 0 0.000000 0.000000 RDY 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 TOUPPER svr2 0 0 0 0.000000 0.000000 RDY 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
다음은 명령어를 실행하면 조회되는 결과의 항목에 대한 설명이다.
항목 설명 PID
서버 프로세스의 PID이다.
fail_cnt
서버 프로세스/서비스의 FAIL COUNT이다.
err_cnt
서버 프로세스/서비스의 ERROR COUNT이다.
mintime
서비스를 처리한 최소 시간이다.
maxtime
서비스를 처리한 최대 시간이다.
utime
서버 프로세스에서 매번 서비스 처리시마다 소모한 user time 값이다.
umin_time
user time의 최소 소모시간입니다.
umax_time
user time의 최대 소모시간입니다.
stime
서버 프로세스에서 매번 서비스 처리시마다 소모한 system time 값이다.
smin_time
system time의 최소 소모시간입니다.
smax_time
system time의 최대 소모시간입니다.
-
조회 결과 sort(–o)
다음은 'st –p' 명령어에 [-o] 옵션을 사용한 예제이다.
$$1 tmax1 (tmadm): st –p –o ca CLH 0 : ------------------------------------------------------------------------ svr_name svgname spr_no status count avg svc ------------------------------------------------------------------------ svr2 svg1 37 RDY 10 0.000000 -1 svr1 svg1 36 RDY 6 0.000000 -1 svr3 svg1 38 RDY 2 0.000000 -1 TOTAL COUNT = 18 TOTAL AVG = 0.000 TOTAL RUNNING COUNT = 0
다음은 'st –s' 명령어에 [-o] 옵션을 사용한 예제이다.
$$1 tmax1 (tmadm): st –s –o ca CLH 0: ------------------------------------------------------------------------ svc_name svr_name count avg cq_count aq_count q_avg status ------------------------------------------------------------------------ TOUPPER svr2 10 0.000000 0 0 0.000000 RDY SDLTOUPPER svr1 5 0.000000 0 0 0.000000 RDY FDLTOUPPER svr3 2 0.000000 0 0 0.000000 RDY SDLTOLOWER svr1 1 0.000000 0 0 0.000000 RDY FDLTOLOWER svr3 0 0.000000 0 0 0.000000 RDY TOLOWER svr2 0 0.000000 0 0 0.000000 RDY
-
내림 차순으로 sort 할 조건
조건 설명 ca
처리한 건수(count)
aa
평균 처리 시간(avg)
cq
현재 큐잉 건수(cq_count)
aq
평균 큐잉 건수(aq_count)
qa
평균 큐잉 시간(q_avg)
ce
각 서버별 처리 건수를 기준으로 서버별로 sort
ae
각 서버별 평균 처리 시간을 기준으로 서버별로 sort
-
오름 차순으로 sort 할 조건
조건 설명 ca-
처리한 건수(count)
aa-
평균 처리 시간(avg)
cq-
현재 큐잉 건수(cq_count)
aq-
평균 큐잉 건수(aq_count)
qa-
평균 큐잉 시간(q_avg)
ce-
각 서버별 처리 건수를 기준으로 서버별로 sort
ae-
각 서버별 평균 처리 시간을 기준으로 서버별로 sort
-
-
출력 메시지의 라인 수 지정(-n)
다음은 출력 메시지의 라인 수를 2로 설정한 예제이다.
$$1 tmax1 (tmadm): st –p –o ca –n 2 CLH 0 : ------------------------------------------------------------------------ svr_name svgname spr_no status count avg svc ------------------------------------------------------------------------ svr2 svg1 37 RDY 10 0.000000 -1 svr1 svg1 36 RDY 6 0.000000 -1 TOTAL COUNT = 18 TOTAL AVG = 0.000 TOTAL RUNNING COUNT = 0
다음은 출력 메시지의 라인 수를 3으로 설정한 예제이다.
$$1 tmax1 (tmadm): st –s –o ca –n 3 CLH 0: --------------------------------------------------------------------- svc_name svr_name count avg cq_count aq_count q_avg status --------------------------------------------------------------------- TOUPPER svr2 10 0.000000 0 0 0.000000 RDY SDLTOUPPER svr1 5 0.000000 0 0 0.000000 RDY FDLTOUPPER svr3 2 0.000000 0 0 0.000000 RDY
-
HMS Destination 정보(-q)
다음은 HMS Destination 정보 조회하는 예제이다.
$$1 tmax1 (tmadm): st -q ------------------------------------------------------------------------------- G dest cqcount type apqcnt acqcnt f_dscrd t_dscrd cons_cnt prod_cnt ------------------------------------------------------------------------------- - queue01 58 QUEUE 169 111 0 0 30 5 - topic01 32 TOPIC 42 283 0 0 28 3
다음은 명령어를 실행하면 조회되는 결과의 항목에 대한 설명이다.
항목 설명 G
해당 Destination이 GLOBAL로 설정된 경우 'O’로 표시되고, GLOBAL이 아닌 경우 하이픈(-)으로 표시된다.
dest
Destination의 이름으로 환경설정 파일에서 HMS 절에 설정된 이름이 표시된다.
cqcount
해당 Destination에서 아직 처리되지 않은 메시지 건수이다.
type
해당 Destination의 타입을 표시한다. QUEUE와 TOPIC으로 표시된다.
apqcnt
현재까지 전송되어 누적된 총 메시지 건수이다.
acqcnt
소비자에 의해 처리된 메시지의 총 건수로 Topic 타입은 하나의 메시지에 대해서 모든 소비자가 수신받아야 처리가 완료되므로 apqcnt보다 acqcnt가 커질 수 있다.
f_dscrd
수신받은 메시지에 대해서 failed 처리를 하여 수신이 실패된 메시지 건수이다.
t_dscrd
메시지를 전송에 TTL이 설정된 경우 유효시간이 지나 실패된 메시지 건수이다.
cons_cnt
해당 Destination에 접속한 소비자(consumer)의 수이다.
prod_cnt
해당 Destination에 접속한 생산자(producer)의 수이다.
다음은 특정 Destination에 대한 클라이언트 상세 정보를 조회하는 예제이다.
$$1 tmax1 (tmadm): st -q queue01 -c ------------------------------------------------------------------------------ sesi clid cname clitype qcnt cnt f_dscrd t_dscrd listener ------------------------------------------------------------------------------ 0 0x39d prodasync ARCV 49 0 0 0 ASYNCSVC 0x1 0 prod41 SND 0 32 0 0 0x1 0 prod42 SND 0 11 0 0 0x1 0 cons51 RCV 3 0 0 0 0x1 0 cons52 RCV 9 0 0 0 $$2 tmax1 (tmadm): st -q topic01 -c ------------------------------------------------------------------------------ sesi clid cname clitype qcnt cnt f_dscrd t_dscrd listener ------------------------------------------------------------------------------ 0x1 0 prod11 PUB 0 2 0 0 0x1 0 prod12 PUB 0 1 0 0 0x1 0 cons11 SUB 30 0 0 0 0x2 0x2 prod21 PUB 0 16 0 0 0x2 0x2 prod22 PUB 0 8 0 0 0x2 0x2 cons21 SUB 23 0 0 0 0x3 0 prod31 PUB 0 3 0 0 0x4 0x4 cons41 ADSUB 32 0 0 0 ASYNCSVC2
다음은 명령어를 실행하면 조회되는 결과의 항목에 대한 설명이다.
항목 설명 sesi
해당 클라이언트를 생성한 세션의 번호이다.
clid
클라이언트 ID이다.
cname
클라이언트명이다.
clitype
해당 Destination에 연결된 클라이언트의 종류이다.
-
SND : 큐 타입의 송신자 (hms_create_sender()로 생성)
-
PUB : Topic 타입의 발행자 (hms_create_publisher()로 생성)
-
RCV : 큐 타입의 수신자 (hms_create_receiver()로 생성)
-
SUB : Topic 타입의 구독자 (hms_create_subscriber()로 생성)
-
DSUB : Topic 타입의 영속적 구독자 (hms_create_durable_subscriber()로 생성)
-
ARCV : Async 세션에서 생성된 큐 타입의 수신자
-
ASUB : Async 세션에서 생성된 Topic 타입의 구독자
-
ADSUB : Async 세션에서 생성된 Topic 타입의 영속적 구독자
qcnt
각 구독자들이 실제로 가지고 있는 메시지 건수이다.
cnt
각 클라이언트가 전송하거나 수신한 메시지 건수이다.
f_dscrd
수신 후 메시지를 failed로 처리하여 실패된 메시지 건수이다.
t_dscrd
전송할 때 설정한 TTL(유효시간)이 지나서 실패 처리된 메시지 건수이다.
listener
ASYNC 세션으로 생성한 소비자(consumer)의 경우 메시지를 수신할 서비스명이다.
다음은 TmaxGrid 상세 정보를 조회하는 예제이다.
$$1 tmax1 (tmadm): st -tg TG Info: Preferences: shmkey : 38852 (0x97c4) shmsize : 40960 Kbyte max data : 10000 max watcher : 10 id : 1 portno : 9999 (UDP) heartbeat : 1000 ms timeout : 5000 ms historycount : 100 standbycount : 10 gqmaxbuffersize : 1000 byte gqdownwaittime : 30 Status: status : INIT suspend status : NOT SUSPENDED created node count : 0 deleted node count : 0 set data count : 0 get data count : 0 current node count : 0 temporary node count : 0 watcher count : 0 current data count : 0 total data size : 0 byte current shm size : 4460544 byte (10.64%)
-
-
4.10. svrinfo(si)
현재 동작 중인 각 서버의 정보를 알려준다.
-
사용 방법
$$1 tmax1 (tmadm): si
-
예제
다음은 명령어 사용 예제이다.
$$5 tmaxs1 (tmadm): si ------------------------------------------------------------------ clh svrname (svri) status count qcount qpcount emcount ------------------------------------------------------------------ 0 scoresdl ( 0) NRDY 0 0 0 0 0 bank2 ( 1) RDY 0 0 0 0 0 svr1 ( 2) RDY 0 0 0 0 0 svr2 ( 2) RDY 0 0 0 0 0 svr3 ( 2) NRDY 0 0 0 0 0 api ( 2) RDY 0 0 0 0 0 syncrtn ( 2) RDY 0 0 0 0 0 ucs ( 2) NRDY 0 0 0 0 0 ucssvr ( 2) RDY 0 0 0 0 0 broad ( 2) NRDY 0 0 0 0 0 selins ( 2) NRDY 0 0 0 0
다음은 명령어를 실행하면 조회되는 결과에 대한 설명이다.
항목 설명 clh
CLH 번호이다.
svrname
서버명이다.
(svri)
서버 ID이다.
status
서버의 현재 상태로 자세한 설명은 "시스템 동작 상태"를 참고한다.
count
처리 건수이다.
qcount
서버의 큐잉 건수이다.
qpcount
큐에서 삭제된 건수이다.
emcount
최대 큐잉 건수(maxqcount)를 초과하여 반환된 건수이다.
boottime
서버의 마지막 기동 시각이다. -b 옵션을 사용했을 때 출력된다.
4.11. tmmsinfo(tmmsi)
tmmsinfo 명령어는 멀티 노드 환경에서 TMM 사이 연결 상태 정보를 확인할 수 있다.
-
사용 방법
$$1 tmax1 (tmadm): tmmsinfo
-
예제
다음은 명령어 사용 예제이다.
tmaxh4@starbj81:/EMC01/starbj81/tmax/config>tmadmin TMADMIN for rnode (tmaxh2): starting to connect to RAC --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxh4 (tmadm): tmmsinfo ------------------------------------------ no nodename livectime status ------------------------------------------ 1 tmaxh2 13:53:53 RDY Msg from rnode(tmaxh2): ------------------------------------------ no nodename livectime status ------------------------------------------ 0 tmaxh4 13:53:08 RDY
다음은 명령어를 실행하면 조회되는 결과에 대한 설명이다.
항목 설명 no
TMM 번호이다.
nodename
노드명이다.
livectime
최근 채널 사용 시간이다.
status
노드의 상태이다.
다음은 노드의 상태에 출력되는 값에 대한 설명이다.
-
NRDY(NOT_READY) : 연결이 되어 있지 않거나 연결이 끊어진 상태이다.
-
RDY(READY) : 정상적으로 연결되어 있는 상태이다.
-
REG(REGISTERED) : 노드 간 연결을 진행 중인 상태이다.
-
UNR(UNREGISTERED) : 해당 노드가 tmdown 요청으로 종료되는 상태이다.
-
NSTRT(NCLHSTARTED) : 노드 간 연결을 진행 중인 상태에서 대상 노드의 CLH가 시작된 상태이다.
-
CTNG(TRYINGTOCONNECT) : 노드 간 TCP/IP 소켓만 연결되어 있고 대상 노드로 연결 메시지를 보내지 않은 상태이다.
-
NPING(ALIVECHECK) : 해당 노드가 연결되어 있는 상태에서 alive check를 수행하고 있는 상태이다.
-
NPING2(ALIVECHECK2) : 해당 노드로부터 alive check에 대한 응답이 오지 않는 상태이다.
-
4.12. txquery(txq)
현재 처리 중인 트랜잭션 정보를 조회한다.
-
사용 방법
$$1 tmax1 (tmadm): txquery(txq) [-x] [-g svgname] [-w [-r] [-G gwname]] [<upper-global-xid><lower-global-xid>]
항목 설명 [-x]
트랜잭션 브랜치별 상세 정보를 조회한다.
[-g svgname]
svgname의 그룹에 대한 트랜잭션 브랜치를 조회한다.
[-w]
도메인 서브 트랜잭션 트리에 대해 조회한다.
[-r]
리모트 도메인의 XID로 검색한다.
[-G gwname]
gwname의 도메인 게이트웨이에 대해 조회한다.
[-t]
리모트로부터 시작된 트랜잭션 중 pending으로 인해 commit이나 rollback이 결정되지 않는 xid와 svgno를 조회한다.
upper-global-xid
검사할 xid의 gtid의 앞의 4Byte이다.
lower-global-xid
검사할 xid의 gtid의 뒤의 4Byte이다.
-
예제
-
트랜잭션 조회
다음은 트랜잭션 조회를 하는 예제이다.
$$14 tmax1 (tmadm): txq CLH0: ------------------------------------------------------------------ cli_id txstime txqcount txrcount XID txstate xastate ------------------------------------------------------------------ c0023 8:33:34 1 0 000:000:00022 TXBEGIN TX_OK c0024 18:33:34 1 0 000:000:00023 TXBEGIN TX_OK c0025 18:33:34 1 0 000:000:00024 TXBEGIN TX_OK c0026 18:33:34 1 0 000:000:00025 TXBEGIN TX_OK c0027 18:33:34 1 0 000:000:00026 TXBEGIN TX_OK c0028 18:33:34 1 0 000:000:00027 TXBEGIN TX_OK c0029 18:33:34 1 0 000:000:00028 TXBEGIN TX_OK c0030 18:33:34 1 0 000:000:00029 TXBEGIN TX_OK c0031 18:33:34 1 0 000:000:00030 TXBEGIN TX_OK
다음은 명령어를 실행하면 조회되는 결과에 대한 설명이다.
항목 설명 cli_id
현재 접속되어 처리 중인 클라이언트 식별 번호이다.
txstime
트랜잭션 처리 시작시간이다.
txqcount
현재 트랜잭션 큐에 쌓여 있는 트랜잭션 큐잉 건수이다.
txrcount
트랜잭션 처리 건수이다.
XID
트랜잭션 식별 번호이다.
txstate
트랜잭션의 처리 상태이다. (TXBEGIN, TXCOMMIT, TXROLLBACK)
xastate
XA 처리 상태이다.
-
트랜잭션 정보 조회(-x)
다음은 트랜잭션 정보를 조회하는 예제이다.
$$6 tmaxh4 (tmadm): txquery -x CLH 0: ---------------------------------------------------------------- cli_id clid txstime txqcount txrcount XID txstate xastate bqualno nodename svgname txbstate xabstate ---------------------------------------------------------------- c1526 0x000005f6 15:13:35 4 0 34800000:0008c087 TXBEGIN TX_OK (B)00000000 tmaxh4 svg12301X BEGIN XA_OK (B)00000001 tmaxh4 gw2301X BEGIN XA_OK (B)00000002 tmaxh4 gw2302X BEGIN XA_OK (B)00000003 tmaxh4 svg12302X BEGIN XA_OK c1527 0x000005f7 15:13:35 4 0 34800000:0008c089 TXBEGIN TX_OK (B)00000000 tmaxh4 svg12301X BEGIN XA_OK (B)00000001 tmaxh4 gw2301X BEGIN XA_OK (B)00000002 tmaxh4 gw2302X BEGIN XA_OK (B)00000003 tmaxh4 svg12302X BEGIN XA_OK
-
그룹의 트랜잭션 조회(-g)
다음은 그룹의 트랜잭션을 조회하는 예제이다.
$$7 tmaxh4 (tmadm): txq -g svg12301X CLH 1: ---------------------------------------------------------------- cli_id clid txstime txqcount txrcount XID txstate xastate bqualno nodename svgname txbstate xabstate ---------------------------------------------------------------- c1595 0x0000463b 15:14:10 1 0 34800001:0008e953 TXBEGIN TX_OK (B)00000000 tmaxh4 svg12301X BEGIN XA_OK c1596 0x0000463c 15:14:10 1 0 34800001:0008e956 TXBEGIN TX_OK (B)00000000 tmaxh4 svg12301X BEGIN XA_OK c1597 0x0000463d 15:14:10 1 0 34800001:0008e957 TXBEGIN TX_OK (B)00000000 tmaxh4 svg12301X BEGIN XA_OK
-
트랜잭션 트리 조회(-w)
다음은 트랜잭션 트리를 조회하는 예제이다.
$$9 tmaxh4 (tmadm): txquery -w CLH 0: ---------------------------------------------------------------------------- gw_no txstime txqcount txrcount XID RXID txstate xastate ---------------------------------------------------------------------------- g0004 17:00:00 2 0 34800000:0008c38e 39800000:0003bcf7 PHASE2 TX_OK g0004 17:00:00 2 0 34800000:0008c38f 39800000:0003bcf8 PHASE1 TX_OK g0004 17:00:00 2 0 34800000:0008c391 39800000:0003bcf9 PHASE2 TX_OK g0004 17:00:00 2 0 34800000:0008c39a 39800000:0003bd00 PHASE1 TX_OK g0004 17:00:00 2 0 34800000:0008c3a1 39800000:0003bd08 PHASE1 TX_OK g0004 17:00:00 1 0 34800000:0008c3a3 39800000:0003bd09 sTXBEGIN TX_OK g0005 17:00:00 2 0 34800000:0008c38b 3e800100:000177f6 PHASE2 TX_OK g0005 17:00:00 2 0 34800000:0008c38d 3e800101:00014ff7 PENDING TX_OK g0005 17:00:00 2 0 34800000:0008c390 3e800101:00014ff8 PENDING TX_OK g0005 17:00:00 2 0 34800000:0008c392 3e800000:0006e050 PHASE1 TX_OK g0005 17:00:00 2 0 34800000:0008c396 3e800000:0006e052 PHASE1 TX_OK g0005 17:00:00 2 0 34800000:0008c397 3e800100:000177f8 PHASE1 TX_OK g0005 17:00:00 2 0 34800000:0008c398 3e800000:0006e055 PHASE1 TX_OK g0005 17:00:00 2 0 34800000:0008c399 3e800101:00014ff9 sTXBEGIN TX_OK g0005 17:00:00 2 0 34800000:0008c39c 3e800100:000177f9 PENDING TX_OK g0005 17:00:00 2 0 34800000:0008c39d 3e800000:0006e05a sTXBEGIN TX_OK g0005 17:00:00 2 0 34800000:0008c39e 3e800101:00014ffa PHASE1 TX_OK g0005 17:00:00 1 0 34800000:0008c39f 3e800000:0006e05b sTXBEGIN TX_OK g0005 17:00:00 1 0 34800000:0008c3a2 3e800100:000177fa sTXBEGIN TX_OK g0004 17:00:00 2 0 34800000:0008eb51 39800001:0003e50d PHASE2 TX_OK g0004 17:00:00 2 0 34800000:0008eb53 39800001:0003e510 PHASE2 TX_OK g0004 17:00:00 2 0 34800000:0008eb58 39800001:0003e516 PHASE1 TX_OK g0004 17:00:00 2 0 34800000:0008eb5b 39800001:0003e519 sTXBEGIN TX_OK g0005 17:00:00 2 0 34800000:0008eb4d 3e800001:0007084f PHASE2 TX_OK g0005 17:00:00 2 0 34800000:0008eb50 3e800001:00070852 PHASE2 TX_OK g0005 17:00:00 2 0 34800000:0008eb52 3e800001:00070854 PHASE2 TX_OK g0005 17:00:00 1 0 34800000:0008eb56 3e800001:00070858 sTXBEGIN TX_OK g0005 17:00:00 1 0 34800000:0008eb5a 3e800101:00014ffb sTXBEGIN TX_OK g0005 17:00:00 1 0 34800000:0008eb5c 3e800001:0007085b sTXBEGIN TX_OK
다음은 [-w], [-r] 옵션을 사용한 예제이다.
### txquery -w -r ### $$11 tmaxh4 (tmadm): txquery -w -r CLH 1: ------------------------------------------------------------------------------- gw_no txstime txqcount txrcount XID RXID txstate xastate ------------------------------------------------------------------------------- g0004 17:00:00 2 0 34800001:0008ed0a 39800001:0003e6bc PENDING TX_OK g0004 17:00:00 2 0 34800001:0008ed0b 39800001:0003e6bd PENDING TX_OK g0004 17:00:00 2 0 34800001:0008ed0c 39800001:0003e6be PHASE1 TX_OK g0004 17:00:00 2 0 34800001:0008ed0f 39800001:0003e6c1 PHASE1 TX_OK g0005 17:00:00 2 0 34800001:0008ed00 3e800001:000709aa PHASE2 TX_OK g0005 17:00:00 2 0 34800001:0008ed03 3e800101:00015046 PHASE2 TX_OK g0005 17:00:00 2 0 34800001:0008ed04 3e800100:00017846 PHASE2 TX_OK g0005 17:00:00 2 0 34800001:0008ed05 3e800001:000709b1 PENDING TX_OK g0005 17:00:00 2 0 34800001:0008ed06 3e800100:00017847 PENDING TX_OK g0005 17:00:00 2 0 34800001:0008ed07 3e800001:000709b2 sTXBEGIN TX_OK g0005 17:00:00 2 0 34800001:0008ed08 3e800100:00017848 PENDING TX_OK g0005 17:00:00 2 0 34800001:0008ed09 3e800100:00017849 PHASE2 TX_OK g0004 17:00:00 2 0 34800001:0008c53f 39800000:0003bea9 PHASE2 TX_OK g0004 17:00:00 2 0 34800001:0008c540 39800000:0003beab PHASE2 TX_OK g0004 17:00:00 2 0 34800001:0008c545 39800000:0003beaf PHASE1 TX_OK g0004 17:00:00 2 0 34800001:0008c546 39800000:0003beb0 PHASE1 TX_OK g0004 17:00:00 2 0 34800001:0008c548 39800000:0003beb2 sTXBEGIN TX_OK g0005 17:00:00 2 0 34800001:0008c51c 3e800000:0006e192 PHASE2 TX_OK g0005 17:00:00 2 0 34800001:0008c536 3e800000:0006e1a5 PHASE2 TX_OK g0005 17:00:00 2 0 34800001:0008c537 3e800100:00017845 PHASE2 TX_OK g0005 17:00:00 2 0 34800001:0008c539 3e800000:0006e1a7 PHASE2 TX_OK g0005 17:00:00 2 0 34800001:0008c53e 3e800000:0006e1ad PENDING TX_OK g0005 17:00:00 2 0 34800001:0008c541 3e800101:00015047 PENDING TX_OK g0005 17:00:00 2 0 34800001:0008c542 3e800000:0006e1af PENDING TX_OK g0005 17:00:00 2 0 34800001:0008c543 3e800101:00015048 PENDING TX_OK g0005 17:00:00 2 0 34800001:0008c544 3e800101:00015049 PHASE1 TX_OK
-
4.13. wsgwinfo(wsi)
tmadmin에서 웹 서비스 게이트웨이의 상태를 확인할 수 있는 명령어이다.
-
사용 방법
$$1 tmax1 (tmadm): wsgwinfo [-i svrid[ svrid]]
항목 설명 [-i svrid [ svrid]]
확인할 svrid 리스트를 입력한다.
-
예제
다음은 명령어 사용 예제이다.
10/user2/starbj81>tmadmin --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxs1 (tmadm): wsgwinfo ------------------------------------------------------------------------ svrid load_time current_client max_attach_time ------------------------------------------------------------------------ 2 Wed Jan 13 12:43:39 2010 0 0.0sec ------------------------------------------------------------------------
다음은 명령어를 실행하면 조회되는 결과에 대한 설명이다.
항목 설명 svrid
게이트웨이의 svr index이다.
load_time
웹 서비스 게이트웨이가 부트된 시간이다.
current_client
현재 접속 중인 클라이언트 수이다.
max_attach_time
한 서비스를 처리하기까지 걸린 최장 시간이다.
5. 운용 관리
5.1. admnoti(an)
TCS, UCS, RDP 서버로 이벤트를 전송할 수 있는 기능이다. tmadmin에서 지정된 서버들에게 이벤트를 요청하면, 해당 서버들은 사용자가 지정한 콜백함수를 호출하여 이벤트를 처리한다. 콜백함수가 등록되지 않았다면 이벤트는 무시된다. 명령어는 tmadmin -m 옵션에서만 동작 가능하다.
TCS, UCS, RDP 에서는 tpregancb api 를 이용하여 이벤트 처리 코드를 작성할 수 있다.
-
사용 방법
$$1 tmax1 (tmadm): admnoti [-a | -g svgname | -p spri | -P pid] [notification message]
항목 설명 [-a]
모든 서버 프로레스에게 이벤트를 전송한다.
[-g svgname]
svgname에 속하는 모든 서버 프로세스에게 이벤트를 전송한다.
[-v svrname ]
svrname에 해당하는 모든 서버 프로세스에게 이벤트를 전송한다.(TD: 사용방법에 없는 항목임)
[-p spri ]
해당 spri의 서버 프로세스에게 이벤트를 전송한다.
[-P pid ]
해당 pid의 서버 프로세스에게 이벤트를 전송한다.
[notification message]
콜백함수에 전달할 메시지를 입력한다..
5.2. advertise(adv) / unadvertise(unadv)
tmadmin의 advertise/unadvertise 명령어를 통하여 특정 서비스명을 등록 및 등록 해제할 수 있다.
특정 서비스를 등록(advertise)할 경우 CLH가 관리하는 서버별 서비스의 이름 테이블에 해당 서비스의 이름을 등록할 수 있으며, unadvertise할 경우 서버별 서비스의 이름 테이블에서 삭제된다.
등록(advertise)은 서버 프로세스의 서버가 제공하는 새로운 서비스를 등록할 수 있도록 하며 등록 해제(unadvertise)는 그 서버가 제공하는 서비스를 등록 해제할 수 있도록 한다. 등록 해제된 서비스를 호출하고자 할 경우 TPENOENT 에러를 수신한다. 특정 서비스가 하나의 서버 프로세스에서 등록 해제(unadvertise)가 되었다 하더라도, 다른 서버 프로세스에서 제공되고 있으면 여전히 서비스 루틴을 수행할 수 있게 된다.
-
사용 방법
-
등록(advertise)
$$1 tmax1 (tmadm): advertise {-s svc_name [-p pid]}
항목 설명 -s svc_name
서비스명을 등록한다.
[-p pid ]
서버 프로세스 PID를 등록한다.
-
등록 해제(unadvertise)
$$1 tmax1 (tmadm): unadvertise {-s svc_name [-p pid]}
항목 설명 -s svc_name
서비스명을 등록 해제한다.
[-p pid]
서버 프로세스 PID를 등록 해제한다.
-
-
예제
-
특정 서비스 해제(unadvertise -s)
다음은 상태 정보를 확인한 서비스 중 이름이 TOUPPER이고 서버 프로세스 ID가 15287인 서비스를 unadvertise를 통해 등록 해제하는 예제이다. 서비스를 등록/해제(advertise / unadvertise)하기 전에 st 명령어를 사용해서 서비스 상태 정보를 확인한다.
$$1 tmax1 (tmadm): st -p -x CLH 0: -------------------------------------------------------------------------- svr_name svgname spr_no status count avg svc PID fail_cnt err_cnt min_time max_time utime umin_time umax_time stime smin_time smax_time -------------------------------------------------------------------------- svr2 svg1 36 RDY 0 0.000 -1 15285 0 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 svr2 svg1 37 RDY 0 0.000 -1 15286 0 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 svr2 svg1 38 RDY 0 0.000 -1 15287 0 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -------------------------------------------------------------------------- TOTAL COUNT = 0 TOTAL SVCFAIL COUNT = 0 TOTAL ERROR COUNT = 0 TOTAL RUNNING COUNT = 0 $$1 tmax1 (tmadm): unadvertise -s TOUPPER –p 15287 TOUPPER is unadvertise $$8 tmaxh4 (tmadm): st -s CLH 0: -------------------------------------------------------------------------- svc_name svr_name count cq_cnt aq_cnt q_avg avg status -------------------------------------------------------------------------- TOUPPER svr2 0 0 0 0.000 0.000 PUNADV
-
특정 서비스 등록 (advertise -s)
다음 등록 해제한 서비스를 advertise를 통해 등록하는 예제이다. 서비스를 등록/해제(advertise / unadvertise)하기 전에 st 명령어를 사용해서 서비스 상태 정보를 확인한다.
$$1 tmax1 (tmadm): st -p -x CLH 0: -------------------------------------------------------------------------- svr_name svgname spr_no status count avg svc PID fail_cnt err_cnt min_time max_time utime umin_time umax_time stime smin_time smax_time -------------------------------------------------------------------------- svr2 svg1 36 RDY 0 0.000 -1 15285 0 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 svr2 svg1 37 RDY 0 0.000 -1 15286 0 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 svr2 svg1 38 RDY 0 0.000 -1 15287 0 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -------------------------------------------------------------------------- TOTAL COUNT = 0 TOTAL SVCFAIL COUNT = 0 TOTAL ERROR COUNT = 0 TOTAL RUNNING COUNT = 0 $$1 tmax1 (tmadm): advertise -s TOUPPER –p 15287 TOUPPER is advertise $$11 tmaxh4 (tmadm): st -s CLH 0: -------------------------------------------------------------------------- svc_name svr_name count cq_cnt aq_cnt q_avg avg status -------------------------------------------------------------------------- TOUPPER svr2 0 0 0 0.000 0.000 RDY
-
5.3. cfgadd(ca)
cfgadd(ca)는 Tmax 운영 중 특정 서버 프로그램에 서비스가 추가될 때에 해당 서버만 다운시킨 후 이 명령을 사용하여 동적으로 서비스를 추가할 수 있다. 서비스 외에도 서버, 서버 그룹, 노드를 운영 중에 동적으로 추가할 수 있다.
Tmax 5부터는 cfl의 –a 옵션을 사용하지 않고 생성한 이진 환경 파일을 동적 추가할 수 없으므로 반드시 -a 옵션을 이용해서 환경 파일을 컴파일해야 한다.
cfgadd(ca)를 사용하여 서비스를 동적으로 추가할 때 제약사항은 cfgadd(ca) 사용하여 동적 추가할 때 제약사항을 참고한다.
-
사용 방법
$$1 tmax1 (tmadm) : cfgadd (ca) - i cfgfile
항목 설명 - i cfgfile
추가할 서비스의 환경 파일명을 지정한다.
서비스 동적 추가
다음은 서비스 동적 추가에 해당하는 cfgadd(ca) 수행 과정이다. Tmax 6부터 추가할 환경 파일을 생성하지 않고 기존 환경 파일을 수정하는 방식으로 변경되었다.
-
환경 파일을 수정한다.
$vi modify.m
-
수정한 환경 파일을 -a 로 컴파일하고, cfl로 –o 옵션을 사용하여 다른 이름의 바이너리 환경 파일을 생성한다.
$cfl -a modify.m -o tmchg
-
gst로 서비스 테이블을 생성한다.
$gst -f tmchg
-
"tmadmin –m"을 수행하고, cfgadd(ca)를 이용하여 서비스를 추가한다.
$cfgadd -i tmchg
-
해당 서버 프로그램을 컴파일한다.
$compile c svr1
-
해당 서버 프로세스를 기동한다.
$tmboot –S svr1
서버 동적 추가
다음은 서버 동적 추가에 해당하는 cfgadd(ca) 수행 과정이다.
-
새로운 서버 추가하여 환경 파일을 수정(추가)한다.
<modify.m>
*SERVER 기존 항목들 ........ hello SVGNAME = svg1 *SERVICE 기존 항목들 ........ HELLO SVRNAME = hello
-
환경 파일을 컴파일한다. modify.m은 기존의 환경 파일에서 추가된 항목을 입력해 수정한 파일을 의미한다.
cfl -a modify.m -o tmchg
-
서비스 테이블을 생성한다.
gst -f tmchg
-
cfgadd -i로 환경 파일을 추가한다.
tmaxi1@dhjang ./config > tmadmin -m $$3 tmaxi1 (tmadm): si ------------------------------------------------------------- clh svrname (svri) status count qcount qpcount emcount ------------------------------------------------------------- 0 tmaxgw ( 0) RDY 0 0 0 0 0 toupper ( 18) RDY 0 0 0 0 $$4 tmaxi1 (tmadm): cfgadd -i tmchg config is successfully added $$5 tmaxi1 (tmadm): si ------------------------------------------------------------- clh svrname (svri) status count qcount qpcount emcount ------------------------------------------------------------- 0 tmaxgw ( 0) RDY 0 0 0 0 0 toupper ( 18) RDY 0 0 0 0 0 hello ( 19) NRDY 0 0 0 0
아직 hello 서버는 NRDY 상태이다.
-
tmboot -S hello -f tmchg를 입력한다.
tmaxi1@dhjang ./config > tmboot -S hello -f tmchg TMBOOT for node(tmaxi1) is starting: Welcome to Tmax demo system: it will expire 2002/8/31 Today: 2002/8/19 TMBOOT: SVR(hello) is starting: Mon Aug 19 15:37:44 2002
-
tmadmin에서 hello 서버가 RDY 상태인지 확인한다.
$$6 tmaxi1 (tmadm): si ------------------------------------------------------------- clh svrname (svri) status count qcount qpcount emcount ------------------------------------------------------------- 0 tmaxgw ( 0) RDY 0 0 0 0 0 toupper ( 18) RDY 0 0 0 0 0 hello ( 19) RDY 0 0 0 0
서버 그룹 동적 추가
서버 그룹을 동적으로 추가하는 방법은 새로운 추가 환경 파일만 조금 다르고 나머지는 동일하다. 새로 등록되는 서버 그룹과 서버와 서비스를 추가 환경 파일로 만든다. 그외의 과정은 서버를 동적으로 추가하는 방법과 동일하다.
<tmchg.m>
*SVRGROUP svg2 NODENAME = "aix5l" *SERVER svr3 SVGNAME = svg2, MIN = 1, MAX = 10 *SERVICE FDLTOUPPER SVRNAME = svr3 FDLTOLOWER SVRNAME = svr3
노드 동적 추가
cfgadd를 이용하여 노드를 동적으로 추가할 수 있다. 또한 COUSIN 서버 그룹이 속한 노드도 동적으로 추가할 수 있다.
다음은 노드 동적 추가에 해당하는 cfgadd(ca) 수행 과정이다.
-
환경 파일을 수정한다.
<tmconfig_add.m>
*DOMAIN tmax1 SHMKEY = @SHMEMKY@, MINCLH = 1, MAXCLH = 3, TPORTNO = @TPORTNO@, BLOCKTIME = 300, MAXCPC = 100, RACPORT = @TRACPORT@ *NODE @HOSTNAME@ TMAXDIR = "@TMAXDIR@", APPDIR = "@TMAXDIR@/appbin", @RMTNAME@ TMAXDIR = "@RMTDIR@", APPDIR = "@RMTDIR@/appbin", *SVRGROUP #svg1 NODENAME = "@HOSTNAME@",COUSIN = "svg2",LOAD = 2 <- 기존 내용 svg1 NODENAME = "@HOSTNAME@",COUSIN = "svg2,svg3",LOAD = 2 # <- 수정한 내용 svg2 NODENAME = "@RMTNAME@",LOAD = 1 *SERVER svr2 SVGNAME = svg1 *SERVICE TOUPPER SVRNAME = svr2 TOLOWER SVRNAME = svr2 #추가한 내용 *NODE @RMTNAME2@ TMAXDIR = "@RMTDIR2@", APPDIR = "@RMTDIR2@/appbin", *SVRGROUP svg3 NODENAME = "@RMTNAME2@",LOAD = 1
-
추가된 새로운 노드에 racd를 기동한다.
Node3>$ racd -k
-
환경 파일을 컴파일한다. 새로운 노드가 추가된 환경 파일 tmconfig_add.m을 컴파일한다. 컴파일할 때 –o 옵션을 사용하여 다른 이름의 이진 환경 파일을 생성한다.
node1>$cfl -a tmconfig_add.m –o tmchg CFL is done successfully for node(node1) CFL: rcfl start for rnode (node2) CFL is done successfully for node(node2) CFL: rcfl start for rnode (node3) CFL is done successfully for node(node3)
-
서버를 컴파일한다. 새로 추가할 노드의 서버를 컴파일한다.
node3>$ gst -f tmchg node3>$ compile c svr2
-
동적 노드를 추가한다. tmadmin의 cfgadd 명령어를 통하여 동적으로 노드를 추가한다. 각각의 노드에서 tmadmin –l로 모두 해당 명령어를 실행해야 한다는 점에 주의한다.
다음은 node1, node2가 존재하는 상황에서 node3를 추가할 경우에 대한 예제이다.
# node1 $ node1>tmadmin –l -m --- Welcome to Tmax Admin (Type "quit" to leave) --- $$2 node1 (tmadm): cfgadd -i tmchg (I) TMM0211 General Infomation : CFGADD started [TMM0902] (I) TMM0211 General Infomation : CFGADD completed [TMM0907] config is successfully added # node2 $ node2>tmadmin –l -m --- Welcome to Tmax Admin (Type "quit" to leave) --- $$2 node2 (tmadm): cfgadd -i tmchg (I) TMM0211 General Infomation : CFGADD started [TMM0902] (I) TMM0211 General Infomation : CFGADD completed [TMM0907] config is successfully added
-
새로 추가된 노드(node3)를 기동한다.
Node3>tmboot -n tmaxh4 -f tmchg TMBOOT for node(tmaxh4) is starting: Welcome to Tmax demo system: it will expire 2008/11/23 Today: 2008/9/24 TMBOOT: TMM is starting: Wed Sep 24 11:11:59 2008 TMBOOT: CLL is starting: Wed Sep 24 11:11:59 2008 (I) TMM0211 General Infomation : node register (nodeno = 0(0)) success [TMM0404] (I) TMM0211 General Infomation : node register (nodeno = 1(1)) success [TMM0404] TMBOOT: CLH is starting: Wed Sep 24 11:11:59 2008 (I) CLH9991 Current Tmax Configuration: Number of client handler(MINCLH) = 1 Supported maximum user per node = 7966 Supported maximum user per handler = 7966 [CLH0125] TMBOOT: TLM(tlm) is starting: Wed Sep 24 11:11:59 2008 TMBOOT: SVR(svr2) is starting: Wed Sep 24 11:11:59 2008
-
새로 추가된 노드를 확인한다. 노드가 정상적으로 추가되었는지 확인한다.
node1>tmadmin TMADMIN for rnode (node2): starting to connect to RAC TMADMIN for rnode (node3): starting to connect to RAC --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 node1 (tmadm): ti Tmax System Info: DEMO version 4.0 SP #3 Fix #8: expiration date = 2008/11/22 maxuser = UNLIMITED, domaincount = 1, nodecount = 3, svgrpcount = 3, svrcount = 9, svccount = 6 rout_groupcount = 0, rout_elemcount = 0 cousin_groupcount = 1, cousin_elemcount = 3 backup_groupcount = 0, backup_elemcount = 0 Tmax All Node Info: nodecount = 3: ---------------------------------------------------------------- no name portno racport shmkey shmsize minclh maxclh ---------------------------------------------------------------- 0 node1 8350 3155 88350 225760 1 3 1 node2 8350 3155 88350 225760 1 3 2 node3 8350 3155 88350 225760 1 3 $$2 (tmadm): st -s CLH 0: -------------------------------------------------------------- svc_name svr_name count cq_cnt aq_cnt q_avg avg status -------------------------------------------------------------- TOLOWER svr2 0 0 0 0.000 0.000 RDY TOUPPER svr2 0 0 0 0.000 0.000 RDY Msg from rnode(node2): CLH 0: -------------------------------------------------------------- svc_name svr_name count cq_cnt aq_cnt q_avg avg status -------------------------------------------------------------- TOLOWER svr2 0 0 0 0.000 0.000 RDY TOUPPER svr2 0 0 0 0.000 0.000 RDY Msg from rnode(node3): CLH 0: -------------------------------------------------------------- svc_name svr_name count cq_cnt aq_cnt q_avg avg status -------------------------------------------------------------- TOLOWER svr2 0 0 0 0.000 0.000 RDY TOUPPER svr2 0 0 0 0.000 0.000 RDY
cfgadd(ca) 사용하여 동적 추가할 때 제약사항
cfgadd(ca)를 사용하여 서비스, 서버, 서버 그룹, 노드 등을 동적으로 추가할 때 아래와 같은 제약사항이 있다.
-
각 항목에 대해서 추가만 가능하며 제거는 할 수 없다. 제거를 위해서는 기존 환경 파일에서 항목을 제거하고 cfl을 실행한 다음에 Tmax를 재기동해야만 한다.
-
기존 환경설정 파일에 존재하는 이름의 항목이 새로 추가하는 환경설정 파일에 중복해서 존재하면 안된다.
-
새로 추가된 환경설정 파일의 내용을 기존 환경설정 파일에 적용하는 경우에는 반드시 각 절의 마지막에 추가되어야 한다. 추가된 항목을 기존 환경설정의 중간에 넣거나 순서를 변경하면 운영환경의 정보가 비정상적으로 변경될 수 있으므로 반드시 주의해야 한다.
-
MAXNODE, MAXSVG, MAXSVR, MAXSPR, MAXSVC, MAXTMS, MAXCPC 설정 이내에서 항목을 추가할 수 있음을 유의한다. 그리고 해당 항목의 값을 변경해서는 안된다.
-
서버 그룹을 추가할 때 XA 서버 그룹인 경우에는 TMS를 지정하고, 해당 프로그램이 생성되어 있는지 확인한다.
-
RQ는 동적 추가를 할 수 없다.
-
COUSIN/BACKUP이 있는 서버 그룹을 추가 및 제거할 수 없다.
-
COUSIN/BACKUP이 있는 게이트웨이를 추가 및 제거할 수 없다.
-
COUSIN/BACKUP이 있는 서버 그룹에 동적으로 추가된 서비스를 제거할 수 없다.
-
한번에 동적 추가 할 수 있는 갯수 제한은 메모리가 허용하는 범위 안이다.
-
서비스, 서버, 서버 그룹, 노드를 추가할 때 cfl을 이용해 동적추가를 위한 이진 환경 파일을 생성해야 한다.
cfl의 –a 옵션을 사용하지 않고 만든 이진 환경 파일을 동적 추가하면 다음과 같은 에러 메시지가 출력된다.
(E) TMAX00157 Engine type mismatch (0): 'a' option must be used [ADM0417]
5.4. chtrc
TMAX_TRACE는 Runtime tracing facility로 Tmax 애플리케이션의 실행에 대한 Runtime tracing이 이루어질 수 있도록 하는 기능이다. 이 기능은 환경변수 TMAX_TRACE를 설정하여 사용할 수 있으며, 시스템 운영 중에 동적으로 설정을 변경하고자 하는 경우에는 tmadmin의 chtrc 명령어를 사용할 수 있다.
-
사용 방법
chtrc [-g svgname | -v svrname | -g svgname -v svrname | -i spri | -g svgname -i spri | -e gqs] -s newspec
항목 설명 [-g svgname]
서버 그룹의 스펙을 변경하는 경우 설정한다.
[-v server]
서버의 스펙을 변경하는 경우 설정한다.
[-g svgname -v server]
서버 그룹의 해당 서버 스펙을 변경하는 경우 설정한다.
[-i spri]
서버 프로세스의 스펙을 변경하는 경우 설정한다.
[-g svgname -i spri]
서버 그룹의 해당 서버 프로세스의 스펙을 변경하는 경우 설정한다.
[-e gqs]
gqs의 스펙을 변경하는 경우 설정한다.
-s newspec
변경할 스펙을 지정한다.
-
사용예제
-
서버 스펙 변경(-s)
다음은 단일 노드에서 특정 노드에 속하는 모든 서버의 스펙을 변경하는 예제이다.
$$1 tmaxs1 (tmadm): chtrc -s newspec
다음은 멀티 노드 환경에서 특정 노드에만 새로운 TRACE 스펙을 적용하는 예제이다.
$$1 tmaxh3 (tmadm): nodeset $HOSTNAME node is set to $HOSTNAME $$2 tmaxh3 (tmadm): chtrc –s newspec
-
서버 그룹 스펙 변경(-g)
다음은 특정 서버 그룹에 속하는 모든 서버의 스펙을 변경하는 예제이다.
$$1 tmaxs1 (tmadm): chtrc -g svgname -s newspec
-
서버의 스펙 변경(-v)
다음은 특정 서버 그룹에 속한 서버들을의 스펙을 변경하는 예제이다.
$$1 tmaxs1 (tmadm): chtrc -g svgname -s newspec
다음은 특정 서버 그룹의 서버의 스펙을 변경하는 예제이다.
$$3 tmaxs1 (tmadm): chtrc -g svgname -v server -s newspec
-
서버 프로세스의 스펙 변경 (-i)
특정 서버 프로세스의 스펙을 변경하는 예제이다.
$$4 tmaxs1 (tmadm): chtrc -g svgname -i sprno -s newspec
-
5.5. chlog
특정 에러 상황에 보다 신속하게 대응하기 위하여 tmadmin의 chlog 명령어를 이용하여 런타임 도중에 로그 레벨을 동적으로 변경할 수 있다. 로그 레벨 변경 기능을 사용하여 로그를 확인하기 위해서는 반드시 해당 모듈을 디버그 모드로 사용해야 한다. tmadmin의 cfg 명령어를 통하여 로그 레벨이 실제로 변경되었는지 확인할 수 있다.
-
사용 방법
$$1 tmaxs1 (tmadm) : chlog [-t | -c | -v [server_name] | -g [servergroup_name]| -m] -l [loglvl]
항목 설명 [-t]
TMM의 로그 레벨을 설정한다.
[-c]
CLH의 로그 레벨을 설정한다.
[-v [server_name]]
지정된 서버에 대한 로그 레벨을 설정한다.
[-g [servergroup_name]]
지정된 서버 그룹에 대한 로그 레벨을 설정한다.
[-m]
TMS에 대한 로그 레벨을 설정한다.
-l [loglvl]
다음 중에 하나를 선택해서 실제 로그 레벨을 설정한다(순서대로 설정할수록 더 자세한 로그 확인이 가능하다).
-
COMPACT
-
BASIC
-
DETAIL
-
DEBUG1
-
DEBUG2
-
DEBUG3
-
DEBUG4
-
-
예제
-
TMM의 동적 로그 레벨 변경(-t)
다음은 TMM의 로그 레벨를 변경하는 예제이다.
tmaxh2:/data1/starbj81/tmax/config> tmadmin -l -m --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxh2 (tmadm): chlog -t -l DEBUG4 log level is updated $3 tmaxh2 (tmadm): cfg -n node_name = tmaxh2, hostname = tmaxh2, node_no = 1 ... tmmloglvl = DEBUG4, ...
-
CLH의 동적 로그 레벨 변경(-c)
다음은 CLH의 동적 로그 레벨를 변경하는 예제이다.
tmaxh2:/data1/starbj81/tmax/config> tmadmin -m -l --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxh2 (tmadm): chlog -c -l COMPACT log level is updated $$2 tmaxh2 (tmadm): cfg -n node_name = tmaxh2, hostname = tmaxh2, node_no = 1 tmmloglvl = DEBUG4, clhloglvl = COMPACT, ...
-
TMS의 동적 로그 레벨 변경(-m, -g)
다음은 TMS의 동적 로그 레벨를 변경하는 예제이다.
$$3 tmaxh4 (tmadm): chlog -m -g svg32306X -l debug3 log level is updated $$4 tmaxh4 (tmadm): cfg –g svg_name = svg32306X, svg_no = d tmsloglvl = DEBUG3, ...
-
특정 서버 그룹의 동적 로그 레벨 변경(-g)
다음은 특정 서버 그룹의 동적 로그 레벨를 변경하는 예제이다.
$$4 tmaxh2 (tmadm): chlog -g svg3 -l DETAIL log level is updated $$5 tmaxh2 (tmadm): cfg -g svg_name = svg3, svg_no = 10002 loglvl = DETAIL ...
-
5.6. chlog2
특정 에러 상황에 보다 신속하게 대응하기 위하여 tmadmin의 chlog2 명령어를 이용하여 런타임 도중에 로그 레벨을 동적으로 변경할 수 있다. 런타임 중 로그 레벨 변경할 수 있는 기능인 tmadmin의 chlog에서 누락된 구성요소인 TLM, CAS, CLL, RS, SQ, HMS, RQS, GATEWAY에 대해서도 런타임 중 로그 레벨을 변경하고 설정할 수 있는 기능이다(기존 chlog 기능을 모두 포함한다). tmadmin의 cfg 명령어를 통하여 로그 레벨이 실제로 변경되었는지 확인할 수 있다.
-
사용 방법
$$1 tmaxs1 (tmadm) : chlog2 -t [type_name] [-n name] -l [loglvl]
항목 설명 -t [type_name]
로그 레벨을 변경할 모듈을 설정한다.
-
TMM : TMM
-
CLH : CLH
-
TLM : TLM
-
CAS : CAS
-
RS : Real Server
-
SQ : Session Queue Server
-
TG : Tmax Grid Server
-
TMS : TMS
-
HMS : HMS
-
RQ : Reliable Queue Server
-
GW : GATEWAY
-
SVG : Server의 Server Group
-
SVR : Server
-
CLL : CLL
[-n name]
TMS, HMS, RQ는 설정한 서버 그룹 이름, GW는 Gateway 이름, SVG는 서버 그룹 이름, SVR은 서버 이름이다. 나머지는 이름이 필요 없다.
-
TMM : TMM
-
CLH : CLH
-
TLM : TLM
-
CAS : CAS
-
RS : Real Server
-
SQ : Session Queue Server
-
TG : Tmax Grid Server
-
TMS : TMS
-
HMS : HMS
-
RQ : Reliable Queue Server
-
GW : GATEWAY
-
SVG : Server의 Server Group
-
SVR : Server
-
CLL : CLL
-l [loglvl]
다음 중에 하나를 선택해서 실제 로그 레벨을 설정한다(순서대로 설정할수록 더 자세한 로그 확인이 가능하다).
-
COMPACT
-
BASIC
-
DETAIL
-
DEBUG1
-
DEBUG2
-
DEBUG3
-
DEBUG4
-
-
예제
-
TMM의 동적 로그 레벨 변경
다음은 TMM의 로그 레벨를 변경하는 예제이다.
tmaxh2:/data1/starbj81/tmax/config> tmadmin -l -m --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxh2 (tmadm): chlog2 -t TMM -l DEBUG4 log level is updated $3 tmaxh2 (tmadm): cfg -n node_name = tmaxh2, hostname = tmaxh2, node_no = 1 ... tmmloglvl = DEBUG4, ...
-
CLH의 동적 로그 레벨 변경
다음은 CLH의 동적 로그 레벨를 변경하는 예제이다.
tmaxh2:/data1/starbj81/tmax/config> tmadmin -m -l --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 tmaxh2 (tmadm): chlog2 -t CLH -l COMPACT log level is updated $$2 tmaxh2 (tmadm): cfg -n node_name = tmaxh2, hostname = tmaxh2, node_no = 1 tmmloglvl = DEBUG4, clhloglvl = COMPACT, ...
-
5.7. cleandynsvc(cleands)
mksvr로 빌드된 서버가 비정상 종료로 재기동되는 경우에는 동적 등록된 서비스를 삭제하지 않는다. 서버 비정상 종료로 재기동하려 했으나 실패하는 경우 서비스 삭제가 안되어 있는데, 추후 mksvr로 기동될 때 동적 등록하려는 서비스 목록이 변경된 경우 문제의 소지가 있으므로, 이 경우 tmadmin을 통해 서비스 목록을 정리할 수 있어야 한다. 서버 프로세스 개수가 0개인 서버에 속하는 동적 등록된 서비스들을 삭제하는 기능이다.
-
사용 방법
$$1 tmax1 (tmadm): cleands [-s [service_name]]
항목 설명 [-s [service_name]]
삭제할 서비스 명을 지정한다.
-
예제
다음은 사용한 예제이다.
$$2 tmaxc1 (tmadm): cleands $$2 tmaxc1 (tmadm): cleands -s TOUPPER
5.8. discon(ds)
현재 접속되어 있으나 아무 일도 수행하지 않는 클라이언트를 강제로 연결을 해제한다. 클라이언트 정보를 얻을 수 있는 ci 명령어로 확인한 후 사용한다. discon 명령어의 약어는 ds이며, 다음과 같은 옵션들이 제공된다.
-
사용 방법
$$1 tmax1 (tmadm): ds [-h clhno] [-f] {-a | -n | -i idle_time | -c clid | -A | -d clid}
항목 설명 [-h clhno]
해당 CLH에 연결된 클라이언트 접속을 해제한다.
[-f]
클라이언트와의 접속을 즉시 해제하는 옵션이다.
{-a}
해당 CLH에 접속되어 있는 모든 클라이언트의 접속을 해제한다.
[-h] 옵션이 적용되어 있지 않을 경우 기본값으로 0번 CLH에 접속되어 있는 클라이언트의 연결이 해제된다.
{-n}
정확한 정보가 없는 클라이언트와의 연결을 해제한다.
"tpalloc"로 할당된 버퍼는 사용하지 않는다.
{-i idle_time}
지정된 시간(초 단위)을 초과한 세션의 클라이언트와의 접속을 해제한다.
{-c clid}
클라이언트에게 부여한 ID 번호로 접속을 해제한다. ID 번호는 반드시 설정해야 한다.
{-A}
모든 CLH에 접속되어 있는 클라이언트와의 접속을 해제한다.
{-d clid}
해당 clid를 가진 클라이언트와의 연결을 해제한다.
5.9. logstart(logs) / logend(loge)
관리자는 tmadmin을 사용하여 여러 가지 실시간 정보를 조회할 수 있다. 주어진 상황에 맞는 즉각적이고 효과적인 조치를 취할 수 있다. tmadmin은 통계적 정보 분석을 위해 관리자 데이터를 로그로 남길 수 있다. 로깅 파일은 현재 디렉터리에 만들어진다. 로그 데이터를 통해 업무 폭주 시간, 불필요한 서버 프로세스, 큐잉 상태 등을 확인하여 전반적인 시스템 분석이 가능하다.
logstart 명령어를 통해서 로그 처리를 시작할 수 있으며 logend 명령어를 통해 종료한다.
-
사용 방법
-
로그 처리시작(logstart)
$$1 tmax1 (tmadm): logstart filename
항목 설명 filename
로그 파일명을 설정한다.
-
로그 처리 종료(logend)
$$1 tmax1 (tmadm): logend
-
5.10. notify_reconnect_clh(nrc)
Tmax를 운영중에 특정 서버 프로세스가 특정 CLH에 연결을 맺지 못하는 상황이 발생할 수 있다. 이 경우 자동으로 연결을 못 맺을 경우 수동으로 특정 서버 프로세스에 특정 CLH 연결을 맺도록 해주는 명령어이다.
-
사용 방법
$$1 tmax1 (tmadm): notify_reconnect_clh clh_index spr_index
항목 설명 clh_index
연결을 원하는 원하는 clh 번호를 입력한다.
spr_index
연결을 원하는 원하는 spr 번호를 입력한다.
tmadmin에서 st -p로 설정하는 경우 출력하는 spri 이다.
5.11. qpurge(qp)
업무의 폭주 현상이 발생하여 많은 업무가 쌓여 정상적으로 거래를 처리하지 못하는 경우 현재 큐에 누적되어 있는 서비스 요청을 삭제하는 기능이다. 하루에도 수십 만 건의 업무를 처리하는 은행이나 관공서에서 유용하게 사용될 수 있는 기능이다.
삭제된 업무는 클라이언트의 재요청을 통해 다시 처리될 수 있다. Tmax에서는 서버 프로세스별로 큐를 관리하여 관리자는 특정 서버별로 큐를 삭제할 수 있어 타 업무의 효과적인 수행에도 도움을 준다.
Queue Purge 명령어의 약어는 qp로 삭제된 서비스는 클라이언트에게 TPEQPURGE(tperrno = 27)를 반환한다. 따라서 클라이언트는 이에 맞게 적절한 대처를 할 수 있다. qp의 내역과 삭제된 클라이언트 ID는 slog에 함께 기록된다.
-
사용 방법
$$1 tmax1 (tmadm): qpurge {-v svr_name [-k number ] | -s svc_name}
항목 설명 {-v svr_name}
큐에 쌓여있는 특정 서버에 대한 요청을 삭제한다.
[-k number]
서버의 큐에 쌓인 요청 중 일부를 purge시킬 수 있는 기능이다. 반드시 [–v] 옵션과 함께 사용해야 한다.
number 값이 0보다 큰 수 N이면 처음 들어온 N개의 서비스 요청만 남기고 이후에 들어온 요청을 purge시킨다.
-
-1 : 현재 큐에 대기 중인 서비스 요청 중에서 MAXQCOUNT 개수만큼의 요청만 남기고 이후에 들어온 요청들을 purge시킨다.
-
0 : 현재 큐에 대기 중인 모든 서비스 요청들을 purge시킨다.
{-s svc_name}
큐에 쌓여있는 특정 서비스에 대한 요청을 삭제한다.
-
5.12. rebootsvr(rbs)
rbs(Reboot Server Process)는 현재 사용 중인 서버 프로세스를 새로운 프로세스로 변경한다.
TMAX_BKAPPDIR를 '.profile’의 환경변수에 지정하고 새로운 프로그램의 실행 파일로 지정한다. 예를 들어 $TMAXDIR/bk_appbin에 옮기고 다음의 명령어를 수행한다.
-
사용 방법
$$1 tmax1 (tmadm): rbs [-o] new_file old_file
항목 설명 [-o]
old_file에 해당하는 서버프로세스들을 전부 종료시킨 후 new_flie에 해당하는 서버 프로세스들로 모두 재기동시킨다.
new_file
새 파일명을 지정한다.
old_file
사용 중인 파일명을 지정한다.
rbs 수행 과정
다음은 rebootsvr(rbs) 수행 과정이다.
-
.profile에 아래와 같이 환경변수를 추가한다.
export TMAX_BKAPPDIR=/data2/starbj81/tmax64/bk_appbin
-
환경변수에 설정해준 것과 동일한 위치에 bk_appbin 디렉터리를 생성한다.
$mkdir bk_appbin
-
appbin 디렉터리에 있는 실행 파일을 bk_appbin 디렉터리로 복사한다.
$cp appbin/svr2 bk_appbin/
-
tmadmin -m을 실행한 후 rbs를 실행한다.
-
서버가 MIN=1 && MAX=1이거나 기동되어 있지 않을 경우 서버 교체 과정에서 suspend와 resume이 이루어진다.
현재 MIN=1, MAX=1인 svr2 서버 프로세스가 기동되는 예이다.
$$1 tmax1 (tmadm): rbs svr2 svr2 >> suspend ok >> down ok >> cp ok >> boot ok >> resume ok >> reboot svr /data2/starbj81/tmax64/appbin/svr2 finished
-
그 이외의 경우 서버 프로세스를 순차적으로 종료/기동시키며 교체를 시킨다.
현재 MIN=3인 svr2 서버 프로세서가 기동되는 예이다.
$$1 tmax1 (tmadm): rbs svr2 svr2 TMBOOT for node(tmaxh2) is starting: TMBOOT: SVR(svrname: svr2, execname: _rbs00_svr2) is starting: Fri Dec 19 11:21:06 2003 TMBOOT for node(tmaxh2) is starting: TMBOOT: SVR(svrname: svr2, execname: _rbs00_svr2) is starting: Fri Dec 19 11:21:06 2003 TMBOOT for node(tmaxh2) is starting: TMBOOT: SVR(svrname: svr2, execname: _rbs00_svr2) is starting: Fri Dec 19 11:21:06 2003 >> 3 servers booted using tmp execfile _rbs01_svr2 >> reboot svr /data2/starbj81/tmax64/appbin/svr2 finished
-
-
ps를 이용하여 서버 프로세스가 정상적으로 기동되었는지 확인한다.
-
현재 3개의 svr2 서버 프로세스가 기동된 경우
$ps –ef | grep svr2 starbj81 21710 1 0 11:46:32 pts/ts 0:00 _rbs00_svr2 -b -21709 -S svr2 -s svr2 -d -1 -v 21689 starbj81 21713 1 0 11:46:32 pts/ts 0:00 _rbs00_svr2 -b -21712 -S svr2 -s svr2 -d -1 -v 21689 starbj81 21716 1 0 11:46:32 pts/ts 0:00 _rbs00_svr2 -b -21715 -S svr2 -s svr2 -d -1 -v 21689
-
현재 1개의 svr2 서버 프로세스가 기동된 경우
$ps –ef | grep svr2 starbj81 21607 1 0 11:43:46 pts/ts 0:00 svr2 -s svr2 -g 2
-
해당 이름의 서버 프로세스가 2개 이상일 경우 해당 프로세스를 모두 종료시키고 새로운 프로세스를 기동시켜 처리를 하게 되면 업무의 공백상태가 발생하게 된다. 따라서 이 경우 서버 프로세스를 하나씩 종료시키면서 기동된다.
예를 들어 svr1 서버의 MIN=2인 상황에서 rbs를 실행시켰을 경우 다음과 같은 순서로 rbs가 수행된다.
-
svr1 1을 종료한다.
-
bk_appbin 디렉터리에 임시파일(_rbs00_svr1)을 복사한다.
-
_rbs00_svr1이 기동한다.
-
svr1 2를 종료한다 .
-
bk_appbin 디렉터리에 임시파일(_rbs00_svr1)을 복사한다.
-
_rbs00_svr1이 기동한다.
동시성 보장 서버 교체
동시성 보장은 서로 다른 버전의 프로세스가 동시에 서비스를 수행하지 않도록 제한하는 것을 의미한다. rbs 수행할 경우 동시성 보장 및 변경되지 않은 서비스에 대한 무중단 서버 프로세스 교체가 가능하다.
-
사용 방법
$$1 tmax1 (tmadm): rbs [-S | -s svc_name,...] newfile svr_name [svg_name]
항목 설명 [-S]
해당 서버의 전체 서비스를 suspend한다.
[-s svc_name,…]
해당 서버의 하나의 서비스를 suspend한다.
newfile
새 파일명을 지정한다.
svr_name
suspend 대상의 서버명이다.
[svg_name]
suspend 대상의 서버가 속한 서버 그룹이다.
-
예제
-
서버의 특정 서비스 변경(-s)
다음은 해당 서버의 특정 서비스만 변경하는 경우로 svr2 서버의 TOUPPER 서비스만 일시적으로 suspend되며 다른 서비스는 계속 서비스 수행이 가능하다.
$$1 tmax1 (tmadm): rbs -s TOUPPER svr2_new svr2
다음은 해당 서버의 특정 서비스 2개를 변경하는 경우로 svr2 서버의 TOUPPER 및 TOLOWER 서비스만 일시적으로 suspend되며 다른 서비스는 계속 서비스 수행이 가능하다. svc_name을 여러 개를 지정하는 경우 콤마(,)로 구분하며 공백이 포함되지 않아야 한다.
$$1 tmax1 (tmadm): rbs -s TOUPPER,TOLOWER svr2_new svr2
-
서버의 전체 서비스 변경 (-S)
다음은 해당 서버의 전체 서비스를 변경하는 경우로 svr2 서버의 모든 서비스가 일시적으로 중단될 수 있다.
$$1 tmax1 (tmadm): rbs -S svr2_new svr2
다음은 해당 서버 그룹에 속한 해당 서버의 전체 서비스를 변경하는 경우로 svg1에 속한 svr2 서버의 모든 서비스가 일시적으로 중단될 수 있다.
$$1 tmax1 (tmadm): rbs -S svr2_new svr2 svg1
-
rbs에 옵션(-s 또는 -S 옵션)을 미지정할 경우 동시성을 보장할 수 없다.
-
한 노드에 COUSIN 그룹으로 설정된 환경에서는 rbs에서 svgname별 rbs가 제한된다.
-
-
멀티 노드 동시성 보장 서버 교체
멀티 노드 동시성 보장은 멀티 노드에서 서로 다른 버전의 프로세스가 동시에 서비스를 수행하지 않도록 제한하는 것을 의미한다. 부하 분산이 설정된 멀티 노드에서 rbs를 수행할 때 동시성 보장 및 변경되지 않은 서비스에 대한 무중단 서버 프로세스 교체가 가능하다.
-
사용 방법
$$1 tmax1 (tmadm): mrebootsvr(mrbs) [-S | -s svc_name,...] newfile svr_name
항목 설명 [-S]
해당 서버의 전체 서비스를 suspend한다.
[-s svc_name ]
해당 서버의 하나의 서비스를 suspend한다.
newfile
새 파일명을 지정한다.
svr_name
suspend 대상의 서버명이다.
-
예제
-
서버의 특정 서비스 변경(-s)
다음은 해당 서버의 특정 서비스만 변경하는 경우로 svr2 서버의 TOUPPER 서비스만 일시적으로 suspend되며 다른 서비스는 계속 서비스 수행이 가능하다.
$$1 tmax1 (tmadm): mrbs -s TOUPPER svr2_new svr2
다음은 해당 서버의 특정 서비스 2개를 변경하는 경우로 svr2 서버의 TOUPPER 및 TOLOWER 서비스만 일시적으로 suspend되며 다른 서비스는 계속 서비스 수행이 가능하다. svc_name을 여러 개 지정하는 경우 콤마(,)로 구분하며 공백이 포함되지 않아야 한다.
$$1 tmax1 (tmadm): mrbs -s TOUPPER,TOLOWER svr2_new svr2
-
서버의 전체 서비스 변경(-S)
다음은 해당 서버의 전체 서비스를 변경하는 경우로 svr2 서버의 모든 서비스가 일시적으로 중단될 수 있다.
$$1 tmax1 (tmadm): mrbs -S svr2_new svr2
-
한 노드의 COUSIN 그룹에 속한 서버에 대한 rbs
한 노드에 2개 이상의 서버 그룹이 COUSIN으로 설정된 경우 COUSIN 서버 그룹에 속한 모든 서버에 대하여 rbs(서버 교체)가 가능하다.
5.13. reconnect_clh(rc)
CLH와 다른 노드의 재연결을 시도한다. 연결 상태에 따라 끊어진 연결만 시도하는 경우와 모든 연결을 재연결하는 방식 두 가지 모두 가능한다.
-
사용 방법
$$1 tmax1 (tmadm): rc nodename [-a]
항목 설명 nodename
다시 연결할 노드 이름을 설정한다.
[-a]
모든 연결을 다시 연결한다.
-
예제
다음은 사용한 예제이다.
$$2 tmaxc1 (tmadm): rc node2 $$2 tmaxc1 (tmadm): rc node3 -a
5.14. reopen_db
서버 그룹에 속한 모든 TMS 및 서버 프로세스들이 데이터베이스에 재연결한다.
-
사용 방법
$$1 tmax1 (tmadm): reopen_db svgname
항목 설명 svgname
데이터베이스에 재연결할 서버 그룹을 설정한다.
-
예제
$$1 tmax1 (tmadm): reopen_db svg_ora
해당 명령어를 사용하기 위해서는 tmadmin -m 옵션을 사용하여 마스터 모드로 동작하도록 해야 한다. |
5.15. restat
특정 서버 프로세스 또는 모든 서버 프로세스의 통계 정보를 초기화하는 명령어로 마스터 모드로 사용할 때만 가능하다.
-
사용 방법
$$1 tmax1 (tmadm): restat [[-v [server_process_name]] | [-a]] [-r]
항목 설명 [-v [server_process_name]]
지정된 서버 프로세스의 통계 정보를 초기화한다.
[-a]
모든 서버 프로세스의 통계 정보를 초기화한다.
[-r]
[-v], [-a]와 같이 사용되어 해당 서버 프로세스의 restart 횟수를 초기화한다.
5.16. restart(rst)
restart 명령어는 현재 기동되어 있는 서버 프로세스를 다운시킨 후 MIN 개수만큼 재기동시키는 명령어이다.
-
사용 방법
$$1 tmax1 (tmadm): restart [-v [server_name]] [-g [servergroup_name]]
항목 설명 [-v [server_name]]
적용한 서버를 재기동한다.
[-g [servergroup_name]]
적용한 서버그룹의 서버들을 재기동한다.
-
예제
-
다음은 사용한 예제이다.
$$2 tmaxc1 (tmadm): restart -v svr01021 >> suspend ok >> down ok >> boot ok >> resume ok >> reboot svr svr01021 finished $$2 tmaxc1 (tmadm): restart -g svg1 >> suspend ok >> down ok >> boot ok >> resume ok >> reboot svr svr01021 finished >> suspend ok >> down ok >> boot ok >> resume ok >> reboot svr svr01022 finished
-
5.17. resume(rs)
동작이 중지된 서버 프로세스의 활동을 재개한다. 활동이 재개된 서버 프로세스는 큐에 대기 중이던 서비스를 처리하기 시작하며 요청되는 서비스에 대해 처리 가능한 상태가 된다. resume 명령어의 약어는 rs이다.
-
사용 방법
$$1 tmax1 (tmadm): resume {-s svc_name [-p pid | -i spri] | -v svr_name [-k count]}
항목 설명 -s svc_name
서비스의 스케줄링을 재개하는 옵션이다.
[-p pid]
서비스를 서버 프로세스별로 재개한다. 서비스를 서버 프로세스별로 suspend/resume할 때 suspend를 수행할 경우 관련 서비스가 수행 중이면 수행이 완료된 후에 suspend가 진행되므로 시간이 오래 걸릴 수 있다. 이 경우 tmadmin을 강제 종료시키면 해당 서비스가 재개된다.
suspend 이후 해당 서비스에 대한 요청은 큐에 쌓이게 된다. [-s] 옵션과 함께 사용된다.
-
사용 방법
resume(rs) -s svc_name [-p pid]
[-i spri ]
서비스를 spri별로 재개한다. 서비스를 spri별로 suspend/resume할 때 suspend를 수행할 경우 관련 서비스가 수행 중이면 수행이 완료된 후에 suspend가 진행되므로 시간이 오래 걸릴 수 있다. 이 경우 tmadmin을 강제 종료시키면 해당 서비스가 재개된다.
suspend 이후 해당 서비스에 대한 요청은 큐에 쌓이게 된다. [-s] 옵션과 함께 사용된다.
-
사용 방법
resume(rs) -s svc_name [-i spri]
-v svr_name
서버 프로세스의 스케줄링을 재개하는 옵션이다.
[-k count]
대상 서버 중 일부 프로세스들을 resume하는 옵션이다.
[-v] 옵션과 함께 사용된다. 옵션으로 지정한 개수만큼 suspend된 서버 프로세스를 resume시키며, 이미 모든 서버 프로세스가 suspend 상태가 아니라면 명령은 취소된다. 옵션 설정값은 해당 서버의 MAX를 초과할 수 없다.
서버 프로세스별로 suspend 상태를 확인하려면 stat -p -X 명령을 실행한다.
-
사용 방법
resume(rs) -v svr_name [-k 5]
-k 옵션을 사용하여 서버 프로세스가 하나라도 resume되면 서버의 상태는 RDY로 바뀌게 된다. 만약 기동되어 있는 프로세스가 없다면 NRDY 상태가 된다.
-
다음은 resume과 관련된 설명이다.
-
한 노드의 COUSIN 그룹에 속한 서버에 대한 suspend/resume
한 노드에 2개 이상의 서버 그룹이 COUSIN으로 설정된 경우 COUSIN 서버 그룹에 속한 모든 서버에 대하여 suspend/resume이 적용된다.
ASQCOUNT은 SVRGROUP 절에서 설정을 하며, 서버 프로세스를 BLK으로 설정하기 위해선 [-v] 옵션을 사용해야 한다. |
5.18. set
현재 설정되어 있는 환경 파일의 설정값을 동적으로 변경할 수 있는 명령어이다.
변경 가능한 항목은 tmadmin에서 cfg 명령어를 통해서 확인할 수 있다. 각 항목 중에서 괄호로 약어가 표시된 항목이 동적으로 변경 가능한 항목이다.
-
사용 방법
$$1 tmax1(tmadm): set [-d [domain]| -g [server_group]| -v [service]| -s [server]] 항목 값
항목 설명 [-d [domain]]
DOMAIN 절을 변경하려는 경우 설정한다. 특정 도메인의 정보를 변경하는 경우 도메인명을 설정한다.
[-g [server_group]]
GATEWAY 절을 변경하려는 경우 설정한다. 특정 서버 그룹의 정보를 변경하는 경우 서버 그룹명을 설정한다.
[-v [service]]
SERVICE 절을 변경하려는 경우 설정한다. 특정 서비스의 정보를 변경하는 경우 서비스명을 설정한다.
[-s [server]]
SERVER 절을 변경하려는 경우 설정한다. 특정 서버의 정보를 변경하는 경우 서버명을 설정한다.
항목
변경할 항목을 설정한다.
값
변경할 값을 설정한다.
-
예제
다음은 명령어 사용 예제이다.
$$1 tmax1 (tmadm): set -d res1 bt 100 $$1 tmax1 (tmadm): set -g svg1 ld 5 $$1 tmax1 (tmadm): set -v kfdl1 mq 1000 $$1 tmax1 (tmadm): set -s SYNC pr 100 $$1 tmax1 (tmadm): set -n tmaxh4 cb n $$1 tmax1 (tmadm): set -s svc_name pr 99 $$1 tmax1 (tmadm): set -v svr2 maxsvr 10 (max(svr2)의 경우 기존 값 보다 작은 값만 변경 가능) $$1 tmax1 (tmadm): set -d dom1 portno 9999 $$1 tmax1 (tmadm): set -g svg2 maxrstart 10 $$1 tmax1 (tmadm): set -v svr140_A restart N $$1 tmax1 (tmadm): set -v gw1 schedule FA $$1 tmax1 (tmadm): set -d dom nclhchktime 10
5.19. setopt
TMMOPT 등의 환경설정에 정의된 옵션 중 동적 변경이 가능한 환경설정 값을 동적으로 변경할 수 있는 명령어이다. 변경 가능한 항목은 tmadmin에서 cfgopt 명령어를 통해서 확인할 수 있다. cfgopt에서 출력되는 항목이 동적으로 변경 가능한 항목이다.
-
사용 방법
$$1 tmax1 (tmadm): setopt [-tmm] [-gw] 항목 값
항목 설명 [-tmm]
TMMOPT 환경설정에 정의된 옵션의 값을 변경하려는 경우에 설정한다.
[-gw]
GATEWAY 절 CLOPT 환경설정에 정의된 옵션의 값을 변경하려는 경우에 설정한다.
항목
변경할 항목을 설정한다.
cfgopt에서 출력되는 항목의 옵션을 설정한다. (예: -F)
값
변경할 값을 설정한다.
-
예제
다음은 명령어 사용 예제이다.
$$1 tmax1 (tmadm): setopt -tmm -F 30 new value (30) is set for section = -tmm, name = N/A, fld = -F $$2 tmax1 (tmadm): setopt -tmm -t 15 new value (15) is set for section = -tmm, name = N/A, fld = -t $$3 tmax1 (tmadm): setopt -tmm -R 5 new value (5) is set for section = -tmm, name = N/A, fld = -R $$4 tmax1 (tmadm): setopt -tmm -D 1 new value (1) is set for section = -tmm, name = N/A, fld = -D
5.20. suspend(sp)
응용 서버 프로그램 에러 등으로 더 이상의 업무 처리가 불가능한 경우 이를 해결하기 위해 동작 중인 서버 프로세스를 중지시키는 경우 사용하는 기능이다. 명령어가 실행되면 중지된 서버 프로세스가 현재 처리 중인 서비스를 정상 완료한 후 동작을 중지하고, 큐에 있는 서비스는 대기 상태가 된다. 계속적으로 요청되는 서비스는 모두 큐에 쌓인다. suspend 명령어의 약어는 sp이다.
-
사용 방법
$$1 tmax1 (tmadm): Usage: suspend {-s svc_name [-p pid | -i spri] [-a] [-n T|P] [-N T|P] | -v svr_name [-k num] [-a] [-q] [-n T|P] [-N T|P]}
항목 설명 -s svc_name
서비스명이다. 블록된 서비스에 의해서는 asqcount가 증가하지 않는다.
또한 이 정보는 해당 서버가 종료된 후 재기동되어도 유지된다.
[-p pid]
서비스를 서버 프로세스별로 suspend하는 옵션으로 [-s] 옵션과 함께 사용된다.
[-i spri]
서비스를 spri별로 suspend하는 옵션으로 [-s] 옵션과 함께 사용된다.
[-n T|P]
정상 종료 후 재기동되었을 때 state를 결정한다.
-
T : RDY로 기동된다.
-
P : 비정상 종료 직전 상태로 기동된다.
[-N T|P]
비정상 종료 후 재기동되었을 때 state를 결정한다.
-
T : RDY로 기동된다.
-
P : 비정상 종료 직전 상태로 기동된다.
-v svr_name
서버 프로세스의 스케줄링을 막는 옵션이다.
요청된 서비스는 큐에 대기하며, resume될 때까지 대기하거나 MAXQCOUNT, CLHQTIMEOUT 설정에 의해 큐에서 제거될 수 있다.
[-k num]
대상 서버 중 일부 프로세스들을 suspend하는 옵션이다.
[-v] 옵션과 함께 사용된다. 옵션으로 지정한 개수만큼 suspend시키며, 이미 일부 서버 프로세스가 suspend된 경우에는 옵션 설정값만큼 추가로 suspend된다. 옵션 설정값은 해당 서버의 MAX를 초과할 수 없다.
서버 프로세스별로 suspend 상태를 확인하려면 [stat -p -X] 명령을 실행한다.
-
사용 방법
suspend(sp) -v svr_name [-k 5]
[-k] 옵션을 사용하여 서버 프로세스가 MAX개 모두 suspend되면 서버의 상태는 BLK로 바뀌게 된다. [-k] 옵션 없이 sp -v svr_name을 실행한 것과 동일하다.
[-a]
suspend를 요청했을 때 대상이 되는 서버가 서비스를 실행 중인 경우에는 서비스가 종료될 때까지 대기하게 된다. 이 옵션을 사용하면 대상 서버가 서비스를 실행 중이더라도 대기하지 않고 즉시 Suspend 상태로 변경한다. [-v] 옵션과 함께 사용된다.
[-q]
asqcount에 의해 서버가 추가 기동되도록 한다. [-v] 옵션과 함께 사용된다.
-
5.21. txcommit/txrollback
트랜잭션 처리 중 TMS 장애 또는 네트워크 장애로 인하여 일정 시간 트랜잭션이 처리되지 않을 경우 관리자가 commit/rollback을 재이슈하여 해당 트랜잭션을 종료하는 기능이다. txcommit의 경우는 PHASE 2단계에서 Decision이 commit일 경우에만 사용 가능하며 txrollback의 경우는 PHASE 1단계 또는 PHASE에서 Decision이 rollback일 경우에만 사용 가능하다.
-
사용 방법
$$1 tmax1 (tmadm): txrollback(txr) | txcommit(txc) [-w] [-y] [-t] <upper-global-xid><lower-global-xid>
항목 설명 [-w]
도메인 서브 트랜잭션일 경우 사용한다.
[-y]
txcommit/txrollback의 확인 과정을 거치지 않는다.
[-t]
리모트로부터 시작된 트랜잭션일 경우 사용한다.
upper-global-xid
처리할 xid의 gtid의 앞의 4Bytes이다.
lower-global-xid
처리할 xid의 gtid의 뒤의 4Bytes이다.
txcommit / txrollback은 txquery에서 조회된 트랜잭션에 대한 재처리 도구이며, 재이슈 후 처리 결과를 다시 txquery를 통해서 확인해야 한다. |
5.22. wsgwreload(wsrld)
Tmax를 운영 중에 서비스 정보 설정을 변경하거나 웹 서비스 게이트웨이 설정을 변경할 상황이 생길 수 있다. 이런 경우 Tmax 시스템은 tmadmin의 wsgwreload 명령어를 실행하여 적용한다. 명령어가 실행되면 웹 서비스 게이트웨이는 새롭게 요청되는 서비스에는 응답하지 않으며 이미 처리 중인 서비스만 처리한 후 설정을 적용하고 서비스를 처리하기 시작한다.
-
사용 방법
$$1 tmax1 (tmadm): wsgwreload [-i svrid [svrid]]
항목 설명 [-i svrid [ svrid]]
적용한 svrid 리스트를 입력한다.
6. 기타
6.1. history(hist)
셸에서와 같이 명령어를 기억하여 편리하게 사용할 수 있다.
-
사용 방법
$$1 tmax1 (tmadm): history
-
예제
다음은 명령어 사용 예제이다.
$$15 tmax1 (tmadm): history 5 : si 4 : txq 3 : ci 2 : st -p 1 : st -s 0 : ci
느낌표(!)를 사용하면 바로 앞에서 사용했던 명령어를 반복할 수 있으며 history에서 출력된 번호를 사용하여 명령을 재실행할 수도 있다.
$$1 tmax1 (tmadm): !5 si ---------------------------------------------------------------- clh svri status count qcount qpcount emcount ---------------------------------------------------------------- 0 0 RDY 2 0 0 0 0 1 RDY 0 0 0 0 0 2 RDY 0 0 0 0 0 3 RDY 45 0 0 0