제6장 WebtoB 관리

내용 목차

6.1. wsadmin 콘솔 관리자 프로그램
6.1.1. 환경정보
6.1.2. 동작 상태 정보
6.1.3. 서버 프로세스 중지 및 재개
6.1.4. 적체 해소
6.1.5. 설정값 동적 변경
6.1.6. 클라이언트 연결해제
6.1.7. 기타
6.2. wsmon 콘솔 모니터링 프로그램
6.3. WebAdmin
6.3.1. 시작 전 확인사항
6.3.2. 시작
6.3.3. 시스템 조회/제어
6.3.4. 환경 파일 설정
6.3.5. 모니터링
6.4. 명령어
6.4.1. wscfl
6.4.2. wsuncfl
6.4.3. wsgst
6.4.4. wsracd

WebtoB는 시스템 동작 중 각종 상태 정보 확인, 제어 등의 관리기능을 제공한다. 예를 들어, WebtoB 시스템의 종료 및 기동의 절차를 거치지 않고도 현재 환경설정에 대한 정보를 확인해 보고 이를 동적으로 변경할 수 있다. 또한 제공되는 서비스들 중 특정 서비스에 대하여 현재 처리 상태 즉, 몇 건의 서비스를 처리해 왔으며, 평균 처리시간이 얼마나 되며, 몇 건의 요청이 대기하고 있는지 등의 정보를 확인할 수 있다.

WebtoB는 이와 같은 기능들을 콘솔 관리자 프로그램 wsadmin과 브라우저를 위한 WebAdmin을 통해서 제공한다. 본 장에서는 WebtoB 관리를 위해 제공하는 프로그램과 명령어에 대해서 설명한다.

6.1. wsadmin 콘솔 관리자 프로그램

wsadmin은 텍스트 기반의 관리환경을 제공한다. 항상 프롬프트(prompt) 상태로 대기 중이다가 입력되는 명령어를 해석하여 이를 실행하게 된다.

wsadmin 프로그램은 다음과 같이 실행한다.

$ wsadmin

이후 아래와 같은 메시지와 함께 프롬프트(prompt)가 나타난다. 이것이 wsadmin 프로그램 실행 상태임을 나타낸다.

--- Welcome to WebtoB Admin (Type "quit" to leave) ---
$$1 webtob (wsadm) [2009/10/22:09:49:31]:

wsadmin 툴에서 사용할 수 있는 명령어들의 도움말을 조회할 때는 'help <명령어>'가 사용된다.

$$5 webtob (wsadm) [2009/10/22:11:57:23]: help ll
Summary: ll: dynamically set log levels
Usage: ll loggername -l level | -o options
            loggername : name of the logger (e.g. .hth)
            level : TRACE|DEBUG|INFO|WARN|FATAL
            options : [-]dcR,dcW,dsR,dsW
                      '-' turns off the specified options

wsadmin 툴을 종료하기 위해서는 quit (q) 명령을 사용한다.

$$1 webtob (wsadm) [2009/10/22:10:06:57]: quit

다음은 wsadmin가 제공하는 명령어들이다.

명령어약자설명
cacherefresh (cr)HTTP 응답 캐시에 저장된 응답을 삭제한다.
cachelist HTTP 응답 캐시에 저장된 응답들의 정보 출력한다.
cliinfo (ci)접속 웹 브라우저를 확인한다.
clilisten (cl)WebtoB의 클라이언트의 Listen Port를 제어한다.
config (cfg)환경설정 내용을 조회한다.
discon (ds)접속 중인 클라이언트 연결을 강제로 해제한다.
history (hist)최근 수행한 50개 명령을 조회한다.
help(h)도움말을 조회한다.
ll 로그 레벨을 동적으로 변경한다.
logend (loge)logging을 종료한다.
logstart (logs)logging을 시작한다.
qpurge (qp)큐에 적체된 요청을 삭제한다.
rebootsvr (rbs)서버 프로그램을 교체한다.
repeat (r)명령어를 반복한다.
resume (rs)중지된 서버 프로세스를 재개한다.
set  현재 설정된 환경값을 동적으로 변경한다.
stat (st)프로세스 및 서비스 상태에 대한 통계를 조회한다.
suspend (sp)동작 중인 서버 프로세스를 중지한다.
svrinfo (si)서버 정보를 확인한다.
webtobinfo (wi)WebtoB 시스템의 정보를 확인한다.
wsboot(boot)WebtoB를 시작한다. wsboot와 동일하다.
wsdown(down)WebtoB를 종료한다. wsdown과 동일하다.
quit(q)wsadmin을 종료한다.
!  직전 명령어를 반복한다.

6.1.1. 환경정보

6.1.1.1. webtobinfo (wi)

WebtoB 시스템의 환경정보를 조회한다. 버전, 최대 사용자수, 사용 만료기한 정보 등을 확인할 수 있다.

  • 사용법

    > wi
  • 예제

    $$1 webtob (wsadm(wsmon)) [2014/08/05:19:30:47]: wi
    
    License: REAL Enterprise edition
    Version=WebtoB 4.1 SP 8 Fix #0 Linux-K2.6_x86 FD8192 B284 epoll 2014/08/06
    
             maxuser = UNLIMITED, 
             node_count = 1, 
             svgrpcount = 5, 
             svr_count = 6, svc_alloc_count = 512
    
    WebtoB All Node Info: node_count = 1: 
    --------------------------------------------------------------------------
      no   name     nodeport  racport  shmkey  shmsize0 shmsize1 shmsize2 hth 
    --------------------------------------------------------------------------
       0   webtob     7777     3333    196608    673336   202852  1052100   1

6.1.1.2. config (cfg)

현재 동작 중인 시스템의 환경정보를 조회한다. 즉, 환경 파일에서 정의된 도메인, 노드, 서버 그룹, 서버, 서비스별로 기본값까지 포함한 모든 환경정보를 확인할 수 있다.

  • 사용법

    > config [-d][-n][-vh VHOST 이름][-g SVRGROUP 이름][-v SERVER 이름]
           [-s SERVICE 이름][-dir DIRECTORY 이름][-u URI 이름][-a ALIAS 이름]
           [-l LOGGING 이름][-e EXT 이름][-ssl SSL 이름][-pssl PROXY_SSL 이름]
           [-tcpgw TCPGW 이름][-rproxy REVERSE_PROXY 이름]
           [-rpg REVERSE_PROXY_GROUP 이름][-ll LOGLEVEL 이름][-headers HEADERS 이름]
           [-access ACCESS 이름][-pc PRECEDING_COMMAND 이름]
    옵션설명
    [-d]DOMAIN 절을 설정한다.
    [-n]NODE 절을 설정한다.
    [-vh VHOST 이름]VHOST 절 전체 혹은 지정한 이름의 VHOST를 설정한다.
    [-g SVRGROUP 이름]SVRGROUP 절 전체 혹은 지정한 이름의 서버 그룹을 설정한다.
    [-v SERVER 이름]SERVER 절 전체 혹은 지정한 이름의 서버를 설정한다.
    [-s SERVICE 이름]SERVICE 절 전체 혹은 지정한 이름의 서비스를 설정한다.
    [-dir DIRECTORY 이름]DIRECTORY 절 전체 혹은 지정한 이름의 디렉터리를 설정한다.
    [-u URI 이름]URI 절 전체 혹은 지정한 이름의 URI를 설정한다.
    [-a ALIAS 이름]ALIAS 절 전체 혹은 지정한 이름의 ALIAS를 설정한다.
    [-l LOGGING 이름]LOGGING 절 전체 혹은 지정한 이름의 LOGGING을 설정한다.
    [-e EXT 이름]EXT 절 전체 혹은 지정한 이름의 EXT를 설정한다.
    [-ssl SSL 이름]SSL 절 전체 혹은 지정한 이름의 SSL을 설정한다.
    [-pssl PROXY_SSL 이름]PROXY_SSL 절 전체 혹은 지정한 이름의 PROXY_SSL을 설정한다.
    [-tcpgw TCPGW 이름]TCPGW 절 전체 혹은 지정한 이름의 TCP 게이트웨이를 설정한다.
    [-rproxy REVERSE_PROXY 이름]REVERSE_PROXY 절 전체 혹은 지정한 이름의 REVERSE_PROXY를 설정한다.
    [-rpgREVERSE_PROXY_GROUP 이름]REVERSE_PROXY_GROUP 절 전체 혹은 지정한 이름의 REVERSE_PROXY_GROUP을 설정한다.
    [-ll LOGLEVEL 이름]LOGLEVEL 절 전체 혹은 지정한 이름의 LOGLEVEL을 설정한다.
    [-headers HEADERS 이름]HEADERS 절 전체 혹은 지정한 이름의 HEADERS를 설정한다.
    [-access HEADERS 이름]ACCESS 절 전체 혹은 지정한 이름의 ACCESS를 설정한다.
    [-pc PRECEDING_COMMAND 이름]PRECEDING_COMMAND 절 전체 혹은 지정한 이름의 PRECEDING_COMMAND를 설정한다.
  • 예제

    다음은 NODE 절 환경설정을 출력한 예제이다. NODE 절의 설정 항목에 대한 자세한 설명은 “3.3.1. 설정 항목”을 참고한다.

    $$9 webtob (wsadm(wsmon)) [2009/10/22:11:30:21]: cfg -n
        NODE(0): Name = webtob,
             HostName = "webtob",
             DocRoot = "/root/webtob_docroot/",
             SvrRoot = "/root/wb-413-clean/",
             Method = "GET, POST, HEAD, OPTIONS",
             ShmKey = 54000,
             Hth = 1,
             HthQTimeout(hqt) = 0,
             NodePort = 7777,
             Port = "8080",
             JsvPort = 9090,
             ...
             Logging = "log1",
             ErrorLog = "log2",
             SysLog = "syslog",
             ...
             CheckURL = Y,
             CheckURLTo = "euc-kr",
             CheckURLFrom = "utf-8",
             SSIMaxDepth = 16

6.1.1.3. history (hist)

사용된 명령어를 보여준다.

  • 사용법

    > history
  • 예제

    $$5 webtob (wsadm(wsmon)) [2009/10/22:10:34:37]: history
            5: history
            4: ci -s 
            3: ci 
            2: ci -s
            1: ci

6.1.1.4. !

직전 명령어를 반복한다. !n과 같이사용하면 history에 나타난 과거 명령어 중 특정 명령어를 (n) 반복 수행한다.

  • 사용법

    > !
  • 예제

    $$6 webtob (wsadm(wsmon)) [2009/10/22:11:26:54]: !4 ci -s
           Clients  Unique IPs  Dropped
           -------  ----------  -------
    HTH 0        0           0        0
      All        0           0        0

6.1.2. 동작 상태 정보

6.1.2.1. cliinfo (ci)

현재 접속된 클라이언트(주로 웹 브라우저)의 환경정보를 조회한다. 현재 상태(status), 접속 IP 주소, 처리 건수(count)와 같은 정보를 확인할 수 있다.

  • 사용법

    > ci [-s][-S][-vh Virtual Host 이름][-h HTH 번호]

    옵션설명
    [-s]전체 연결된 클라이언트들의 간단한 통계값을 출력한다.
    [-S]연결된 각각의 클라이언트 정보를 출력한다.
    [-vh Virtual Host 이름]지정한 Virtual Host에 연결된 클라이언트들의 정보를 출력한다.
    [-h HTH 번호]지정한 HTH에 연결된 클라이언트들의 정보를 출력한다.
  • 예제

    • 옵션 없이 사용하는 경우

      ci를 옵션 없이 사용하면 다음 같은 결과를 출력한다. 하나의 항목이 1개의 클라이언트를 의미한다.

      $$1 webtob (wsadm(wsmon)) [2014/08/06:10:09:22]: ci
      
      HTH   0:   RDY
      ------------------------------------------------------------------------------------
       no   status count idle    local_ipaddr:port    remote_ipaddr:port  spri   user ssl
      ------------------------------------------------------------------------------------
          0    RDY     0    2    172.16.1.107:8080     172.16.1.100:1951    -1         N
          0    RUN     4    0    172.16.1.107:8080     172.16.1.202:60572   24         N 
          1    QED     1    0    172.16.1.107:8080     172.16.1.202:60600   -1         N
          2    RUN     4    0    172.16.1.107:8080     172.16.1.202:60575   26         N
          3    RUN     0    0    172.16.1.107:8080     172.16.1.202:60601   28         N
          4    RUN     4    0    172.16.1.107:8080     172.16.1.202:60577   22         N
          5    RUN     0    0    172.16.1.107:8080     172.16.1.202:60594   23         N
          6    QED     1    0    172.16.1.107:8080     172.16.1.202:60598   -1         N
          7    RUN     0    0    172.16.1.107:8080     172.16.1.202:60596   25         N
          8    QED     1    0    172.16.1.107:8080     172.16.1.202:60597   -1         N
          9    QED     2    0    172.16.1.107:8080     172.16.1.202:60595   -1         N
         10    RUN     4    0    172.16.1.107:8080     172.16.1.202:60584   21         N
         11    QED     2    0    172.16.1.107:8080     172.16.1.202:60592   -1         N
         12    RUN     3    0    172.16.1.107:8080     172.16.1.202:60587   29         N
         13    RUN     4    0    172.16.1.107:8080     172.16.1.202:60588   30         N
         14    QED     1    0    172.16.1.107:8080     172.16.1.202:60599   -1         N
         15    RUN     1    0    172.16.1.107:8080     172.16.1.202:60593   27         N
      -------------------------------------------------------------------------------
       HTH     RDY   QED   RUN   ETC total
         0       0     6    10     0    16
      -------------------------------------------------------------------------------
      
      -------------------------------------------------------------------------------
       HTH     RDY   QED   RUN   ETC total
      -------------------------------------------------------------------------------
         0       0     6    10     0    16
      -------------------------------------------------------------------------------
       Total     0     6    10     0    16
      -------------------------------------------------------------------------------

      다음은 출력 항목에 대한 설명이다.

      출력항목설명
      status

      서버 내부의 클라이언트 상태이다.

      • RDY : 클라이언트로부터 요청을 받는 중이다.

      • RUN : 클라이언트의 요청이 서버에서 처리 중이다.

      • QED : 클라이언트로부터 요청을 받고 처리해야 하는 서버는 확인되었지만 해당 서버가 모두 요청을 처리 중인 상태여서 서버 내 큐에 잠시 대기 중인 상태이다.

      count해당 클라이언트가 전송한 요청 수이다.
      idle해당 클라이언트가 어떠한 데이터도 주고받지 않고 있는 상태로 지속된 시간이다.

      local_ipaddr:port,

      remote_ipaddr:port

      서버와 클라이언트 IP:PORT이다.

      spri

      서버와 클라이언트 IP 주소이다.

      user

      해당 클라이언트가 일반적인 HTTP 클라이언트가 아닌 경우 어떠한 종류로 사용되고 있는지 알려주는 정보이다.

      • tcpgw-c : TCPGW 처리 중인 클라이언트이다.

      • tpcgw-s : TCPGW 처리 중인 서버이다.

      • conn-c : CONNECT 메소드 요청 처리 중인 클라이언트이다.

      • conn-s : CONNECT 메소드 요청 처리 중인 서버이다.

      • rproxy-s : Reverse Proxy에 연결된 서버이다.

      • rproxy-ws-c : Reverse Proxy에서 WebSocket 사용 중인 클라이언트이다.

      • rproxy-ws-s : Reverse Proxy에서 WebSocket 사용 중인 서버이다.

      • internal-c : 내부 redirect 등에 사용 중인 클라이언트이다.

      ssl

      해당 클라이언트가 SSL로 연결되어 있는지 여부이다.
    • -s 옵션 사용한 경우

      다음과 같이 -s를 사용하면 전체 클라이언트 수와 고유 IP(unique IP) 수, HTH에 등록되지 못하고 연결 종료된 클라이언트 수가 출력된다.

      $$1 webtob (wsadm(wsmon)) [2014/08/06:10:11:58]: ci -s
             Clients  Unique IPs  Dropped
             -------  ----------  -------
      HTH 0       16           0        0
        All       16           0        0

6.1.2.2. svrinfo (si)

현재 동작 중인 각 서버의 정보를 조회한다.

  • 사용법

    > si [서버 이름, 서버 이름,..]
    옵션설명
    [서버 이름,서버 이름,.. ]모든 서버나 지정된 서버의 정보를 출력한다.
  • 예제

    다음은 명령어를 실행하는 경우 출력되는 정보이다.

    $$1 webtob (wsadm(wsmon)) [2014/08/06:10:52:10]: si
    
    ------------------------------------------------------------------------------------------
     hth   svrname (svri)   status      reqs     count cqcnt    aqcnt qpcnt emcnt rscnt rbcnt
    ------------------------------------------------------------------------------------------
       0  html       (  0)   RDY          97        97     0        0     0     0     0     0 
       0  MyGroup    (  1)   NRDY         12        12     0        0     0     0     0     0
       0  cgi        (  2)   RDY           0         0     0        0     0     0     0     0
       0  php        (  3)   RDY         352       352     0        0     0     0     0     0

    다음은 출력 항목에 대한 설명이다.

    출력항목설명
    svrname환경설정의 서버 이름이다.
    (svri)내부적으로 관리되는 서버별 인덱스 번호이다
    status

    서버 내부의 클라이언트 상태이다.

    • RDY : 서버가 요청을 처리할 수 있다. WebtoB와 연결된 서버 프로세스들이 존재한다.

    • NRDY : 요청을 처리할 수 없다. WebtoB와 연결된 서버 프로세스가 없다.

    • BLK : 서버가 관리자 명령에 따라 suspend된 상태이다. 서버는 요청을 처리할 수 없다.

    reqs해당 서버에 보내진 요청 수이다.
    count요청처리 수이다.
    cqcnt현재 큐에서 대기 중인 요청 수이다.
    aqcnt현재까지 큐에 대기했던 요청 수(cqcnt의 cumulative 값이다)이다.
    qpcnt큐에 대기 중이던 요청이 timeout 또는 qp 명령 등으로 인해 큐에서 제거된 요청 수이다.
    emcnt큐에 대기 중인 요청 수가 MaxQCount를 넘어간 횟수이다.
    rscnt해당 서버의 비정상 종료로 인한 restart 횟수이다.
    rbcnt해당 서버의 rbs 명령을 통한 reboot 횟수이다.

6.1.2.3. stat (st)

실질적인 시스템 동작 상태를 나타내며, 동작 중인 서버 프로세스와 서비스에 대한 정보를 알 수 있다.

서버 프로세스의 현재 상태, 처리 중인 서비스 이름, 처리한 서비스 개수, 서비스에 대한 상태, 서비스 큐에 존재하는 서비스 요청 개수등과 같은 동적인 정보를 확인할 수 있다.

  • 사용법

    > st [-v 서버 이름,서버 이름,..][-j JSV 서버 이름,JSV 서버 이름,..]
         [-p 서버 프로세스 이름,서버 프로세스 이름,..]
         [-rpg Reverse Proxy Group 이름,Reverse Proxy Group 이름,..]
         [-rproxy Reverse Proxy 이름,Reverse Proxy 이름,..]
         [-s 서비스 이름,서비스 이름,..][-h HTH 번호]
    옵션설명
    [-v 서버 이름, 서버 이름,..]서버들의 상태를 출력한다. svrinfo와 동일하다.
    [-j JSV서버 이름, JSV서버 이름,..]JSV 서버들의 통계정보를 출력한다.
    [-p 서버 프로세스 이름, 서버 프로세스 이름,..]개별 서버 프로세스들의 상태를 출력한다.
    [-rpg Reverse Proxy Group 이름, Reverse Proxy Group 이름,..]Reverse Proxy Group의 통계정보를 출력한다.
    [-rp Reverse Proxy 이름, Reverse Proxy 이름,..]Reverse Proxy의 각 connection별 상태를 출력한다.
    [-s 서비스 이름, 서비스 이름,..]서비스 상태를 출력한다.
    [-h HTH 번호]HTH 프로세스들의 내부 통계자료를 출력한다.
  • 예제

    • -p 옵션 사용

      다음은 -p 를 사용해서 서버 프로세스들의 정보를 출력한 예제이다.

      $$1 webtob (wsadm(wsmon)) [2014/08/06:13:38:08]: st -p
      
      HTH 0(23786): RDY
       --------------------------------------------------------------------------------------------- 
       svr_name   svgname     spr_no(pid)  status      reqs     count    avg(rt)  clid svc v contime
       --------------------------------------------------------------------------------------------- 
       html       htmlg         0(  23787)   RDY         1         1   0.0075( 0)   -1   - 0   14187
       php        phpg        220(  23789)   RDY         0         0   0.0000( 0)   -1   - 0   14187
       ...
       MyGroup1   jsvg        120(      0)   RDY         0         0   0.0000( 0)   -1   - 1   14160
                    0 jengineid(ZG9tYWluMS9hZG1pblNlcnZlcg==)(domain1/adminServer)
       MyGroup1   jsvg        121(      1)   RDY         0         0   0.0000( 0)   -1   - 1   14153
                    0 jengineid(ZG9tYWluMS9hZG1pblNlcnZlcg==)(domain1/adminServer)
       ...

      다음은 출력 항목에 대한 설명이다.

      출력항목설명
      svr_name환경설정 SERVER 절의 서버 이름이다.
      svgnameSVRGROUP 절의 서버 그룹 이름이다.
      spr_noWebtoB 내부에서 할당한 번호이다.
      pid프로세스의 ID이다. (JSV 서버인 경우 각 connection별 worker thread가 보내준 ID)
      status

      현재상태를 나타낸다.

      • RDY : 프로세스가 새로운 요청을 기다리고 있다.

      • NRDY : 요청을 처리할 수 없다. WebtoB와 연결된 서버 프로세스가 없다.

      • RUN : 프로세스가 요청을 처리하고 있다.

      • BRUN : 프로세스가 요청에 대한 응답을 전송하는 중이다. 하지만 Flow Control로 인해 잠시 대기 중인 상태이다.

      reqs해당 프로세스로 보내진 요청 수이다.
      count해당 프로세스가 처리한 요청 수이다.
      avg평균 처리시간 (초)이다.
      (rt)현재 처리 중인 요청이 사용한 시간이다.
      clid해당 프로세스가 처리 중인 client ID이다.
      svc요청이 속하는 EXT나 URI 절의 서비스 이름이다.
      vJEUS 연결인 경우 WJP(WebtoB-JEUS Protocol) version 정보를 표시한다. 내부 서버 프로세스인 경우 0으로 표시한다.
      contime해당 프로세스가 HTH에 연결을 맺은 후 지난 시간(HTH에 접속된 시간)이다.
    • 상태 정보를 여러 번 주기적으로 출력

      반복적인 명령어 수행은 상태 정보를 모니터링할 뿐 아니라 업무수행에 대한 디버깅에도 많은 도움을 줄 수 있다.

      다음은 5초간의 간격을 두고 ‘st –s’를 30번 수행하라는 의미이다.

      $$10 webtob (wsadm(wsmon)) [2009/10/22:12:37:56]: r -i 5 -k 30 st -s 

      다음은 5초간의 간격을 두고 ‘st –p’를 30초간 수행하는 의미이다.

      $$10 webtob (wsadm(wsmon)) [2009/10/22:12:37:56]: r -i 5 -f 30 st -p

6.1.3. 서버 프로세스 중지 및 재개

6.1.3.1. suspend (sp)

동작 중인 서버 프로세스의 활동을 중지시킨다. 중지된 서버 프로세스는 현재 처리 중인 서비스를 정상 완료한 후 더 이상의 동작은 중지하고, 큐에 있는 서비스들은 대기상태가 된다.

응용 서버 프로그램 오류 등으로 더 이상의 업무 처리가 불가능하여 이를 해결하기 위해 동작 중인 서버 프로세스를 중지시킬 필요가 발생할 수 있다. 이와 같이 원인을 알 수 없는 문제로 인하여 요청 처리를 중지시키고 추가적인 작업을 필요로 하는 경우에 유용하게 사용할 수 있는 기능이다.

  • 사용법

    > suspend [-v 서버 이름]
    옵션설명
    [-v 서버 이름]지정된 서버를 중지한다.
  • 예제

    다음은 PHP 서버를 중지하는 예제이다. "st -v"를 사용해서 서버 상태를 확인하면 BLK으로 변경되었음을 확인한다.

    $$1 webtob (wsadm) [2014/08/06:19:07:20]: suspend -v php
    Server(php) is supended
    $$2 webtob (wsadm) [2014/08/06:19:07:22]: st -v
    
    ------------------------------------------------------------------------------------------
     hth   svrname (svri)   status      reqs     count cqcnt    aqcnt qpcnt emcnt rscnt rbcnt
    ------------------------------------------------------------------------------------------
       ...
       0  php        (  3)   BLK         539       539     0      403     0     0     0     0
       ...

6.1.3.2. resume (rs)

suspend로 의해 동작 중지된 서버 프로세스의 활동을 재개시킨다. 활동이 재개된 서버 프로세스는 큐에 대기 중이던 서비스를 처리하기 시작하며 요청되는 서비스에 대해 처리 가능 상태가 된다.

  • 사용법

    > resume [-v 서버 이름]
    옵션설명
    [-v 서버 이름]지정된 서버를 처리 가능 상태로 변경한다.
  • 예제

    다음은 중지된 PHP 서버를 재개하는 예제이다. "st -v"를 사용해서 서버 상태를 확인하면 RDY로 변경된다.

    $$3 webtob (wsadm) [2014/08/06:19:07:26]: st -v resume -v php
    Server(php) is resumed
    $$4 webtob (wsadm) [2014/08/06:19:07:28]: st -v
    ------------------------------------------------------------------------------------------
     hth   svrname (svri)   status      reqs     count cqcnt    aqcnt qpcnt emcnt rscnt rbcnt
    ------------------------------------------------------------------------------------------
       ...
       0  php        (  3)   RDY         539       539     0      403     0     0     0     0
       ...

6.1.4. 적체 해소

6.1.4.1. qpurge (qp)

업무의 폭주 현상이 발생하여 많은 업무가 적체되어 정상적으로 거래를 처리하지 못하는 경우 현재 큐에 적체되어 있는 서비스 요청을 삭제해서 원활한 업무수행을 유도하는 기능이다. 하루에도 수십만 건의 업무를 처리하는 은행이나 관공서에서 유용하게 사용될 수 있는 기능으로서 삭제된 업무는 클라이언트의 재요청을 통하여 다시 처리될 수 있다. WebtoB에서는 서버 프로세스별로 큐를 관리함으로써 관리자는 특정 서버별로 큐를 삭제할 수 있다. 따라서 특정 업무별로 처리가 가능하며 이는 타 업무의 효과적인 수행에도 도움을 줄 수 있다.

qp를 통해 삭제된 서비스는 클라이언트에게 다음의 에러를 전송한다.

503 Service Temporarily Unavailable.

  • 사용법

    > qpurge [-v 서버 이름]
    옵션설명
    [-v 서버 이름]지정된 서버의 큐에 남아있는 요청들을 제거한다.
  • 예제

    다음은 PHP 서버의 큐에 대기하고 있는 요청들을 제거하는 예제이다. purged_count는 6개의 요청이 제거되었다는 결과를 출력한다.

    $$11 webtob (wsadm) [2009/10/22:15:32:30]: qpurge -v php
    q for svr php is purged: purged_count = 6

6.1.5. 설정값 동적 변경

6.1.5.1. set

현재 설정되어 있는 환경 파일의 설정값을 동적으로 변경할 수 있는 명령어로 사용법은 다음과 같다. 변경 가능 항목은 wsadmin의 cfg 명령어를 통해서 확인할 수 있다.

  • 사용법

    > set [-n 노드 이름][-vh VHOST 이름][-g SVRGROUP 이름][-v 서버 이름][-s 서비스 이름]
    옵션설명
    [-n 노드 이름]NODE 절을 설정한다.
    [-vh VHOST 이름]지정한 이름의 VHOST를 설정한다.
    [-g SVRGROUP 이름]지정한 이름의 서버 그룹을 설정한다.
    [-v 서버 이름]지정한 이름의 서버를 설정한다.
    [-s 서비스 이름]지정한 이름의 서비스를 설정한다.
  • 예제

    다음은 "cfg -v php"를 사용해서 MaxQCount 값을 확인한 후 set을 사용해서 값을 변경하는 예제이다. set 명령 수행 후 값이 100으로 변경된 것을 확인할 수 있다.

    $$10 webtob (wsadm) [2009/10/22:17:28:37]: cfg -v php
        SERVER(3): Name = php,
             SvgName = phpg,
             MinProc = 10,
             MaxProc = 10,
             MaxQCount(mq) = 0,
             ...
    $$11 webtob (wsadm) [2009/10/22:17:28:42]: set -v php mq 100
    new value (100) is set for section = SERVER, name = php, fld = mq
    $$12 webtob (wsadm) [2009/10/22:17:28:52]: cfg -v php
        SERVER(3): Name = php,
             SvgName = phpg,
             MinProc = 10,
             MaxProc = 10,
             MaxQCount(mq) = 100,
             ...

6.1.6. 클라이언트 연결해제

6.1.6.1. discon (ds)

현재 접속되어 있거나 아무 일도 수행하지 않는 클라이언트를 강제로 연결을 해제할 수 있다. 클라이언트 정보를 얻을 수 있는 ci 명령어로 확인 후 사용한다.

  • 사용법

    > discon [-h HTH 번호] -a | -i idle time | -c Client ID [-f]
    옵션설명
    [-h HTH 번호]지정된 HTH에 연결된 클라이언트 연결을 끊는다.
    -a모든 HTH에 연결된 클라이언트 연결을 끊는다.
    -i idle time지정된 시간(초) 이상 경과된 클라이언트 연결을 끊는다.
    -c Client ID지정된 클라이언트(ci가 출력한 클라이언트 ID)를 끊는다.
    [-f]즉시 연결을 해제한다.
  • 예제

    다음은 ci 명령어로 클라이언트 ID를 확인한 후 discon 명령어를 사용해서 15번 클라이언트의 연결을 강제로 끊는 예제이다.

    $$16 webtob (wsadm) [2009/10/22:16:33:58]: ci
    HTH   0:   RDY
    --------------------------------------------------------------------------------
     no   status count idle    local_ipaddr:port    remote_ipaddr:port  spri   user
    --------------------------------------------------------------------------------
       15    RDY     0    2    172.16.1.107:8080     172.16.1.202:36505   -1
       ... 
    
    $$17 webtob (wsadm) [2009/10/22:16:34:04]: discon -c 15
    client (hth0: 15) is disconnected

6.1.7. 기타

6.1.7.1. clilisten (cl)

WebtoB가 클라이언트 연결을 받기 위해서 사용하는 Listen Port들을 제거, 생성할 수 있다.

  • 사용법

    > clilisten {on | off}
    옵션설명
    onListen Port들을 생성한다.
    offListen Port들을 제거한다. 제거되면 새로운 클라이언트가 WebtoB로 접속할 수 없다.
  • 예제

    다음은 Listen Port들을 제거하는 예제이다.

    $$18 webtob (wsadm) [2009/10/22:17:37:22]: clilisten off
    client listen blocked

    다음은 Linux 콘솔에서 Listen Port들을 확인한 결과이다. Listen Port는 8080으로 가정한다.

    [root@webtob ~]# netstat -ant
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State      
    tcp        0      0 0.0.0.0:9090                0.0.0.0:*                   LISTEN
    tcp        0      0 0.0.0.0:681                 0.0.0.0:*                   LISTEN
    tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN
    tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN
    tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN
    ...

    clilisten off를 실행한 후 다시 포트를 확인한다. 8080 포트가 제거된 것을 확인한다.

    [root@webtob ~]# netstat -ant 
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State      
    tcp        0      0 0.0.0.0:9090                0.0.0.0:*                   LISTEN
    tcp        0      0 0.0.0.0:681                 0.0.0.0:*                   LISTEN
    tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN
    tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN
    ...

6.1.7.2. rebootsvr (rbs)

현재 사용 중인 서버 프로세스를 새로운 프로세스로 변경하는 경우에 사용한다.

WEBTOB_BKAPPDIR을 환경변수에 지정하고 새로운 프로그램을 지정된 디렉터리에 옮기고 다음의 명령어를 수행한다.

  • 사용법

    > rebootsvr new_file old_file
    옵션설명
    new_file변경된 파일(object file)을 설정한다.
    old_file현재 실행 중인 파일(object file)을 설정한다.

6.1.7.3. logstart (logs), logend (loge)

실행한 명령들과 출력물을 로그 파일에 기록한다. 로그 파일은 현재 디렉터리에 생성된다.

로그 데이터를 통해 업무 폭주 시간, 불필요한 서버 프로세스, 큐잉 상태 등을 확인하여 전반적인 시스템 분석이 가능하다. logstart가 logging을 시작하고, logend가 logging을 중단한다.

  • 사용법

    > logstart (logs)
    > logend (loge)
  • 예제

    다음 "log.txt" 파일에 st -p의 결과값이 저장된다.

    $$1 webtob (wsadm(wsmon)) [2009/10/22:12:52:06]: logstart log.txt
    logging start ok
    $$2 webtob (wsadm(wsmon)) [2009/10/22:12:52:12]: st -p
    ...
    $$3 webtob (wsadm(wsmon)) [2009/10/22:12:52:18]: logend
    logging end ok
    $$4 webtob (wsadm(wsmon)) [2009/10/22:12:52:19]: 

6.1.7.4. ll

LOGLEVEL 설정을 동적으로 변경할 수 있다. 로거 이름, 레벨, 옵션은 “3.23.1. 설정 항목”을 참고한다.

  • 사용법

    > ll [로거 이름][-l level | -o option]
    옵션설명
    [로거이름]WebtoB가 지원하는 로거를 설정한다.
    [-l level]로그 레벨을 지정된 level로 변경한다.
    [-o option]로거의 옵션을 option으로 변경한다.
  • 예제

    다음 명령은 ".hth" 로거의 레벨을 DEBUG로 변경한다. 변경된 값은 cfg -ll로 확인할 수 있다.

    $$6 webtob (wsadm) [2009/10/22:12:58:14]: ll .hth -l DEBUG
    Log level is successfully updated. logger=.hth, level=DEBUG, options=

6.1.7.5. repeat (r)

현재 정보를 일정한 시간 간격을 두고 계속 모니터링하는 경우에 사용한다.

  • 사용법

    > repeat [-i ] [-k 횟수| -f ] 명령어

    옵션설명
    [-i ]명령어 반복 주기(초)를 설정한다.
    [-k 횟수]지정한 횟수만큼 반복하고 중지한다.
    [-f ]지정한 시간(초)이 경과되면 반복을 중지한다.
    명령어반복 수행할 명령어를 설정한다.
  • 예제

    다음은 5초간의 간격을 두고 st –s를 30번 수행하도록 하는 예제이다.

    $$9 webtob (wsadm(wsmon)) [2009/10/22:14:28:47]: r -i 5 -k 30 st -p

6.1.7.6. cacherefresh (cr)

WebtoB의 HTTP 응답 캐시에 저장된 응답들을 제거한다.

  • 사용법

    > cacherefresh {-a | -h | -i | -j | -r | -u URL}

    옵션설명
    [-a]캐시된 모든 응답을 제거한다.
    [-h]SVRTYPE이 HTMLS로 처리된 후 캐시된 HTML과 유사 텍스트 응답만 제거한다.
    [-i]SVRTYPE이 HTMLS로 처리된 후 캐시된 IMAGE 타입 응답만 제거한다.
    [-j]SVRTYPE이 JSV으로 처리된 후 캐시된 응답만 제거한다.
    [-r]Reverse Proxy로 처리된 후 캐시된 응답만 제거한다.
    [-u URL]캐시된 응답 중 URL을 지정하여 (fnmatch 방식으로) 매칭된 응답만 제거한다.
  • 예제

    다음은 캐시에 저장된 모든 응답을 제거하는 예제이다.

    $$1 webtob (wsadm) [2014/08/06:14:12:16]:  cacherefresh -a

    다음은 캐시에 저장된 응답 중 "test.domain.com/test.html"을 제거하는 예제이다.

    $$2 webtob (wsadm) [2014/08/06:14:12:26]:  cacherefresh -u test.domain.com/test.html

6.1.7.7. cachelist

현재 WebtoB의 HTTP 응답 캐시에 저장된 응답들에 대한 정보를 출력한다. 정보량이 크기 때문에 결과물은 별도 파일에 저장된다.

  • 사용법

    > cachelist
  • 예제

    다음은 요청 "/index.html"에 대한 응답이 캐시에 저장된 것을 보여주는 예제이다. 요청 경로 외 부분은 서버 내부 디버그 용도로만 사용된다.

    $$1 webtob (wsadm(wsmon)) [2009/10/22:14:59:48]: cachelist
    Cache contents files are created in /root/wb-413-clean/log/cachelist/. Please check the directory.
    
    생성된 파일 예제:
    0 webtob:8080/index.html 5 0 2009/10/22:14:59:45 10 0 327043 5 2009/09/16:15:48:56 (1253083736)
    Total cached response=1
    Total content length=5

6.2. wsmon 콘솔 모니터링 프로그램

wsmon은 텍스트 기반의 모니터링 환경을 제공한다. 항상 프롬프트(prompt) 상태로 대기 중이다가 입력되는 명령어를 해석하여 이를 실행하게 된다.

wsmon 프로그램은 다음과 같이 실행한다.

$ wsmon

이후 아래와 같은 메시지와 함께 프롬프트(prompt)가 나타난다. 이것이 wsmon 프로그램 실행 상태임을 나타낸다.

--- Welcome to WebtoB Mon (Type "quit" to leave) ---
$$1 webtob (wsmon) [2014/01/27:15:44:15]:

wsmon 툴에서 사용할 수 있는 명령어들의 도움말을 조회할 때는 'help <명령어>'가 사용된다.

$$5 webtob (wsmon) [2014/01/27:15:44:16]: help ci
Summary: cliinfo, ci: show client properties
Usage: cliinfo (ci) [-s | -S] [-vh vhostname] [-h hthno]
            -s : summury of the client info
            -S : detail summury of the client info
            -vh vhostname : specify VHOST
            -h hthno : specify a HTH number to view

wsmon 툴을 종료하기 위해서는 quit (q) 명령을 사용한다.

$$1 webtob (wsmon) [2014/01/27:15:44:17]: quit

다음은 wsmon이 제공하는 명령어들이다.

명령어약자설명
cachelist HTTP 응답 캐시에 저장된 응답들의 정보 출력한다. 자세한 설명은 “6.1.7.7. cachelist”를 참고한다.
cliinfo (ci)접속 웹 브라우저를 확인한다. 자세한 설명은 “6.1.2.1. cliinfo (ci)”를 참고한다.
config (cfg)환경설정 내용을 조회한다. 자세한 설명은 “6.1.1.2. config (cfg)”를 참고한다.
history (hist)최근 수행한 50개 명령을 조회한다. 자세한 설명은 “6.1.1.3. history (hist)”를 참고한다.
help(h)도움말을 조회한다.
logend (loge)logging을 종료한다. 자세한 설명은 “6.1.7.3. logstart (logs), logend (loge)”를 참고한다.
logstart (logs)logging을 시작한다. 자세한 설명은 “6.1.7.3. logstart (logs), logend (loge)”를 참고한다.
repeat (r)명령어를 반복한다. 자세한 설명은 “6.1.7.5. repeat (r)”를 참고한다.
stat (st)프로세스 및 서비스 상태에 대한 통계를 조회한다. 자세한 설명은 “6.1.2.3. stat (st)”를 참고한다.
svrinfo (si)서버 정보를 확인한다. 자세한 설명은 “6.1.2.2. svrinfo (si)”를 참고한다.
webtobinfo (wi)WebtoB 시스템의 정보를 확인한다. 자세한 설명은 “6.1.1.1. webtobinfo (wi)”를 참고한다.
quit(q)wsmon을 종료한다.
!  직전 명령어를 반복한다. 자세한 설명은 “6.1.1.4. !”를 참고한다.

참고

wsmon 명령어의 기본 사용법은 wsadmin 콘솔 관리자 프로그램과 동일하고 일부 출력되는 정보에만 차이가 있다. 따라서 각 명령어의 사용법에 대한 자세한 설명은 “6.1. wsadmin 콘솔 관리자 프로그램”을 참고한다.

6.3. WebAdmin

WebAdmin은 웹 브라우저를 통해 WebtoB를 관리할 수 있는 사용자 인터페이스를 제공한다. 콘솔 관리자 프로그램 wsadmin과 유사한 기능을 제공한다.

참고

WebAdmin은 Internet Explorer 버전 7, 8과 Firefox 3.0 브라우저를 지원한다.

6.3.1. 시작 전 확인사항

WebAdmin은 내장 JEUS와 WebtoB의 wsracd를 사용한다. 또한, 내장 JEUS에 WebAdmin에 해당되는 애플리케이션이 있어야 한다. 따라서 WebAdmin 사용 전 다음 사항들을 확인한다.

  1. "${WEBTOBDIR}/jeus/webhome/wtbadmin_home"이 있는지 확인한다.

  2. "${WEBTOBDIR}/jeus/bin/jeus"(Windows 장비는 jeus.cmd)에 다음과 같이 "-Djeus.webtob.admin.enable=true"이 있는지 확인한다.

    "%JAVA_HOME%/bin/java" %JAVA_ARGS%
              -Xbootclasspath/p:${JEUS_HOME}/lib/system/extension.jar
              ...
              -Djeus.home=${JEUS_HOME}
              ...
              -Djeus.webtob.admin.enable=true
              ${JAVA_ARGS} ...
  3. wsracd를 실행한다.

6.3.2. 시작

WebAdmin은 다음의 순서로 시작한다.

  1. 웹 브라우저의 주소 창에 다음과 같이 입력한다.

    http://<IP 주소>:9744/wsadmin

    포트 번호는 JEUS가 HTTP 요청을 받는 포트 번호이다. JEUS_BASEPORT의 기본값은 '9736'으로 예제에서 사용한 '9744'는 JEUS_BASEPORT에 8을 더한 값이다.

  2. 접속을 하면 로그인 화면이 나타난다.

    [그림 6.1] WebAdmin 로그인

    WebAdmin 로그인

  3. 로그인 페이지에서 관리자 ID와 비밀번호를 입력한 후 [LOGIN] 버튼을 클릭한다.

  4. 로그인후 wsracd가 작동 중이지 않거나, 기본 포트 '3333' 외 값을 사용하면 wsracd의 포트 번호를 입력 화면이 표시된다. 해당 화면에서 wsarcd를 시작하거나, 사용 중인 포트 번호를 입력하고 [확인] 버튼을 클릭한다.

    [그림 6.2] WebAdmin wsracd 포트 번호 입력

    WebAdmin wsracd 포트 번호 입력

  5. 로그인과 wsracd 접속이 정상 수행되면, WebAdmin의 전체 화면이 나타난다.

    [그림 6.3] WebAdmin 화면 구성

    WebAdmin 화면 구성


    WebAdmin은 3개의 영역으로 나누어진다.

    • 헤더 영역

      • 메인 메뉴, [도움말] 버튼 등을 포함한다.

      • [도움말] 버튼을 클릭하면 새로운 창에 관리자 도움말이 나타난다.

      • 메인 메뉴를 사용해서 원하는 작업을 수행할 수 있다.

    • 구성 영역

      메인 메뉴에서 선택한 기능이 적용되는 항목들이 표시된다.

    • 메인 영역

      현재 메인 메뉴에서 선택된 기능의 결과물이 출력된다.

6.3.3. 시스템 조회/제어

본 절에서는 시스템 조회/제어 화면의 사용법에 대해 설명한다.

시스템 조회/제어

시스템 조회/제어 화면에서 관리자가 현재 WebtoB가 사용하고 있는 설정값, 접속된 클라이언트 정보 등을 확인할 수 있다. 설정 확인은 wsadminconfig 명령과 유사하다. 특정 설정들은 동적으로 변경할 수 있다. 동적으로 변경 가능한 설정들은 WebtoB 재기동이 필요없다. 동적 설정 변경은 wsadminset 명령과 동일한 역할을 한다.

다음은 [시스템 개체별 보기] 메뉴에서 노드를 선택하면 조회되는 화면이다.

[그림 6.4] WebAdmin 시스템 조회 노드 선택

WebAdmin 시스템 조회 노드 선택

메인 영역에 WebtoB 노드의 간단한 정보가 출력된다.

[그림 6.5] WebAdmin 시스템 조회 노드 정보

WebAdmin 시스템 조회 노드 정보

노드 이름(Name)을 클릭하면 노드의 자세한 설정정보가 출력된다. 설정값 중 특정 항목들은 동적으로 변경할 수 있다. 각 항목에 대한 설명은 “3.3.1. 설정 항목”을 참고한다.

다음은 [동적 제어 정보] 버튼을 클릭하면 조회되는 화면이다. 변경할 항목들에 새로운 값을 입력하고, [확인] 버튼을 클릭하면 설정이 변경된다.

[그림 6.6] WebAdmin 시스템 동적 설정 제어

WebAdmin 시스템 동적 설정 제어

위의 노드 예제처럼 시스템 개채별 보기에 있는 모든 항목들이 같은 방식으로 동작한다. 개별 설정들은 “제3장 환경설정”을 참고한다.

클라이언트 조회/제어

클라이언트 조회/제어 화면에 연결된 클라이언트 정보가 출력된다. 출력되는 정보는 모니터링 핸들러와 동일하다. [연결 해제] 버튼을 사용하면 관리자가 특정 혹은 모든 연결을 강제 해제할 수 있다.

[그림 6.7] WebAdmin 클라이언트 조회/제어

WebAdmin 클라이언트 조회/제어


큐 조회/제어

큐 구성 화면에서 특정 서버를 선택하면 해당 서버의 현재 큐를 포함한 기타 정보가 조회된다. 이 정보는 모니터링 서버가 출력하는 정보와 동일하다. [큐 제거] 버튼을 클릭하면, 현재 서버 큐에 남아있는 요청들이 강제로 제거된다.

[그림 6.8] WebAdmin 큐 조회/제어

WebAdmin 큐 조회/제어

6.3.4. 환경 파일 설정

환경 파일 설정 화면은 현재 WebtoB 설정 파일에 기록된 설정을 항목별로 출력한다.

다음은 [시스템 개체별 보기] 메뉴에서 노드를 선택하면 조회되는 화면이다.

[그림 6.9] WebAdmin 환경설정 노드 선택

WebAdmin 환경설정 노드 선택

노드의 이름을 클릭하면 다음과 같이 환경 파일의 노드 설정 정보가 조회된다. 개별 항목에 대한 자세한 설명은 “제3장 환경설정”을 참고한다. 설정 파일에 저장된 모든 절에 대한 설정 정보를 확인할 수 있다.

[그림 6.10] WebAdmin 환경설정 노드

WebAdmin 환경설정 노드

6.3.5. 모니터링

모니터링 기능을 사용해서 현재 WebtoB가 처리한 요청 수, 개별 서버들의 상태 등을 확인할 수 있다.

모니터링

다음은 메인 메뉴의 [모니터링]을 클릭하면 나타나는 화면으로 도메인과 노드에 대한 정보가 출력된다.

[그림 6.11] WebAdmin 모니터링

WebAdmin 모니터링

  • 노드 정보

    항목설명
    Shared Memory Segment KeyNODE 절의 SHMKEY 값이다.
    Shm Size실제 사용하는 Shared Memory의 크기이다.

모니터링 결과

다음은 [모니터링 구성] 메뉴에서 서버를 선택하면 조회되는 화면이다. 모니터링 결과를 주기적으로 갱신하려면 '자동갱신'에 원하는 주기를 입력하고, [ON] 버튼을 클릭한다.

[그림 6.12] WebAdmin 모니터링 서버

WebAdmin 모니터링 서버

항목설명
SERVER Name서버의 이름이다.
Count해당 서버가 처리한 요청 수이다.
Status

서버의 상태를 보여준다. 항목 값들은 wsadmin의 svrinfo 명령어와 동일하다.

  • READY : 서버가 요청을 처리할 수 있다. WebtoB와 연결된 서버 프로세스들이 존재한다.

  • NOT_READY : 요청을 처리할 수 없다. WebtoB와 연결된 서버 프로세스가 없다.

  • BLOCK : 서버가 관리자 명령에 따라 suspend된 상태 서버는 요청을 처리할 수 없다.

모니터링 서비스

다음은 [모니터링 구성] 메뉴에서 서비스를 하면 조회되는 화면으로, wsadmin의 stat -s 명령어와 동일한 정보를 출력한다.

[그림 6.13] WebAdmin 모니터링 서비스

WebAdmin 모니터링 서비스

항목설명
CountWebtoB가 처리한 요청 중 해당 서비스에 속하는 요청 수이다.
avg해당 서버가 처리한 요청 수이다.

모니터링 프로세스

다음은 [모니터링 구성] 메뉴에서 프로세스를 선택하면 조회되는 화면이다. wsadmin의 stat -p 명령어와 동일한 정보를 출력한다.

[그림 6.14] WebAdmin 모니터링 프로세스

WebAdmin 모니터링 프로세스

항목설명
Status

현재 상태를 나타낸다.

  • READY : 프로세스가 새로운 요청을 기다리고 있다.

  • NOT_READY : 프로세스가 요청을 처리할 수 없다.

  • RUN : 프로세스가 요청을 처리하고 있다.

  • BRUN : 프로세스가 요청에 대한 응답을 전송하는 중이다. 하지만 Flow Control로 인해 잠시 대기 중인 상태이다.

Count해당 프로세스가 처리한 요청 수이다.
avg평균 처리시간(초)이다.
rt현재 처리 중인 요청이 사용한 시간이다.
svc요청이 속하는 EXT나 URI 절의 서비스 이름이다.

모니터링 핸들러

다음은 [모니터링 구성] 메뉴에서 핸들러를 선택하면 조회되는 화면으로 WebtoB 핸들러(HTH) 프로세스에 연결된 클라이언트들의 정보가 출력된다.

[그림 6.15] WebAdmin 모니터링 핸들러

WebAdmin 모니터링 핸들러

항목설명
Status연결 상태를 나타내며, wsadmin의 cliinfo 명령어가 출력하는 status 값과 동일한 의미이다.
Count클라이언트가 현재까지 보낸 요청 수이다.
Idle요청/응답 데이터 전송없이 소요된 시간(idle time, 초)이다.
Local IP Address:Port연결된 WebtoB 서버 주소이다.
Remote IP Address:Port연결된 클라이언트 주소이다.
SPRI요청을 처리하고 있는 서버 프로세스이다. (-1은 프로세스가 할당되지 않았다는 것을 의미한다)
USER요청에 포함된 사용자 이름을 표시한다.

모니터링 핸들러 통계

다음은 [모니터링 구성] 메뉴에서 핸들러 통계를 선택하면 조회되는 화면으로 화면의 정보는 각 상태에 속한 클라이언트 수로 wsadmin의 cliinfo -s 명령어와 동일한 통계값을 출력한다.

[그림 6.16] WebAdmin 모니터링 핸들러 통계

WebAdmin 모니터링 핸들러 통계

6.4. 명령어

다음은 WebtoB에서 제공되는 명령어이다.

옵션설 명
wscfl텍스트 형태의 WebtoB 환경 파일을 컴파일하여 wsconfig(이진 WebtoB 환경 파일)을 생성하는 명령어이다.
wsuncfl컴파일된 wsconfig(이진 WebtoB 환경 파일)을 다시 역으로 분석하여 텍스트 형태의 환경 파일을 생성하는 명령어이다.
wsgst이진 WebtoB 환경 파일을 참조하여 서비스 테이블을 생성하는 명령어이다.
wsracdWebAdmin을 지원하기 위한 명령어이다.
wsboot

WebtoB 시스템의 전체나 또는 일부분을 실행시키는 명령어이다.

자세한 내용은 “5.1.2. wsboot”를 참고한다.

wsdown

WebtoB 시스템 전체나 또는 일부분을 종료시키는 명령어이다.

자세한 내용은 “5.2.1. wsdown”을 참고한다.

6.4.1. wscfl

wscfl은 텍스트 형태의 WebtoB 환경 파일을 컴파일하여 wsconfig(이진 WebtoB 환경 파일)을 생성하는 명령어로 WebtoB 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다.

입력 파일을 컴파일하는 중에 에러가 발견되면, 이진 WebtoB 환경 파일을 생성하지 않고 컴파일을 중단하게 된다. 에러가 발견되지 않으면 이진 파일로 변환된 WebtoB 환경 파일이 생성된다. 이 명령어로 생성된 WebtoB 환경 파일은 wsboot, wsdown 등에서 사용한다.

  • 사용법

    wscfl -i 텍스트 WebtoB 환경 파일 이름 [ -o 이진 WebtoB 환경 파일 이름 ][ -b ][ -v ]
    옵션설 명
    -i 텍스트 WebtoB 환경 파일 이름

    컴파일 대상이 되는 환경 파일(텍스트 형태의 WebtoB 환경 파일 이름)을 명시하는 데 사용되며, 반드시 필요한 옵션이다.

    경로와 함께 지정될 수 있으며 지정한 환경 파일을 찾지 못한 경우에는 경고 메시지를 출력한다.

    [ -o 이진 WebtoB 환경 파일 이름 ]

    컴파일 결과물인 이진 WebtoB 환경 파일 이름을 명시하는 데 사용된다.

    선택 옵션으로 경로와 함께 지정할 수 있으며 경로가 지정되지 않은 경우 현재 wscfl 명령을 실행 중인 디렉터리에 명시된 이름으로 컴파일된 결과물이 생성된다.

    옵션이 생략되면 기본값으로 wsconfig라는 이름의 파일로 생성된다.

    [ -b ]WebtoB의 환경설정 파일을 백업한다.
    [ -v ]WebtoB의 버전을 확인하는 데 사용된다.
  • 예제

    • [-i] 옵션 사용

      다음은 디렉터리의 http.m이란 텍스트 형태의 WebtoB 환경 파일을 컴파일하여 현재 디렉터리에 기본으로 wsconfig라는 이진 WebtoB 환경 파일을 생성하는 예제이다.

      $ wscfl -i http.m

      다음은 디렉터리의 http.m라는 텍스트 형태의 WebtoB 환경 파일을 컴파일하여 현재 디렉터리에 wsconfig2라는 이름으로 이진 WebtoB 환경 파일을 생성하는 예제이다.

      $wscfl -i http.m -o wsconfig2
    • [-v] 옵션 사용

      다음은 WebtoB의 버전을 확인하는 예제이다.

      $wscfl -v

6.4.2. wsuncfl

wsuncfl는 컴파일된 wsconfig(이진 WebtoB 환경 파일)을 다시 역으로 분석하여 텍스트 형태의 환경 파일을 만드는 명령어로 WebtoB 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다.

wscfl로 컴파일되어 이진 파일로 변한 환경설정 파일을 알아볼 수 있는 텍스트 형태로 변환한다. 환경 파일의 원본을 잃어버리고 이진 파일만 가지고 있는 경우 wsuncfl을 사용해서 원래의 텍스트 형태의 환경 파일을 복구할 수 있다.

  • 사용법

    $ wsuncfl [-i 이진 WebtoB 환경 파일 이름] [-o 텍스트 WebtoB 환경 파일 이름] [ -v ] 
    옵션설 명
    [ -i 이진 WebtoB 환경 파일 이름 ]

    디컴파일 대상이 되는 바이너리 형태의 환경 파일의 이름을 명시하는 데 사용된다. 선택 옵션으로 경로와 함께 지정할 수 있으며, 지정한 환경 파일을 찾지 못한 경우에는 경고 메시지를 출력한다.

    옵션이 생략되면 기본으로 wsconfig라는 이름이 사용된다.

    [ -o 텍스트 WebtoB 환경 파일 이름 ]

    디컴파일 결과물인 텍스트 WebtoB 환경 파일 이름을 명시하는 데 사용된다.

    반드시 필요한 옵션으로 경로와 함께 지정할 수 있으며, 경로가 지정되지 않은 경우 현재 wsuncfl 명령을 실행 중인 디렉터리에 명시된 이름으로 디컴파일된 결과물이 생성된다.

    [ -v ]WebtoB의 버전을 확인하는 데 사용된다.
  • 예제

    다음은 디렉터리의 wsconfig라는 이름의 이진 WebtoB 환경 파일을 현재 디렉터리에 sample_r.m이라는 텍스트 형태의 WebtoB 환경 파일로 디컴파일하는 예제이다.

    $ wsuncfl –o sample_r.m 

6.4.3. wsgst

wsgst는 이진 WebtoB 환경 파일을 참조하여 서비스 테이블을 생성하는 명령어로 WebtoB 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다.

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

wsgst 명령의 결과는 WEBTOBDIR로 지정된 디렉터리 하위의 'svct' 디렉터리에 '서버 이름_svctab.c'의 이름으로 생성된다. 서버 이름은 SERVER 절에 등록된 서버 이름이며, 각 파일의 내용은 SERVICE 절에 등록된 해당 서버가 제공하는 서비스 이름들이다.

WebtoB 환경 파일에 등록된 서비스는 반드시 해당 서버의 서비스 테이블에도 등록이 되어야 한다. 즉, WebtoB 환경 파일의 SERVER 절이나 SERVICE 절에 서버 이름, 서비스 이름, 서비스의 SVRNAME 등이 변경된 경우 wsgst 명령을 실행한 후 그 결과물인 서비스 테이블과 함께 서버 프로그램을 다시 컴파일해야 한다.

  • 사용법

    $ wsgst [ -f 이진 WebtoB 환경 파일 이름 ]
    옵션설 명
    [ -f 이진 WebtoB 환경 파일 이름 ]

    참조할 이진 WebtoB 환경 파일 이름을 명시하는 데 사용된다.

    wscfl의 결과물로써 wsboot와 wsdown에서도 참조되는 파일이다.

    경로와 함께 지정될 수 있으며, 이 옵션이 생략되면 기본으로 wsconfig라는 이름이 사용된다.

  • 예제

    다음은 WEBTOBDIR로 지정된 디렉터리 하위의 config 디렉터리에서 wsconfig을 참조하여 서비스 테이블을 생성하는 예제이다.

    $ wsgst

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

    $ wsgst -f /user1/park/webtob/config/wsconfig2

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

    ...
    *SERVER
    webaps         SVGNAME=webapsg
    
    *SERVICE
    svc1           SVRNAME=webaps
    svc2           SVRNAME=webaps
                           ...

6.4.4. wsracd

wsracd는 WebAdmin 및 SysMaster를 지원하기위한 명령어로 WebAdmin 또는 SysMaster를 실행하기 전에 반드시 wsracd를 실행시켜야 한다. WebAdmin 사용법은 “6.3. WebAdmin”을 참고한다. wsracd는 WebtoB 시스템이 설치된 운영 시스템 환경에서 사용할 수 있다.

  • 사용법

    $ wsracd [ -k ] [ -f 이진 WebtoB 환경 파일 이름 ] [ -a ] [ -d ]
    옵션설 명
    [ -k ]

    이진 WebtoB 환경 파일을 참조할 것인지 여부를 지정하는 옵션이다. 옵션을 지정하면 이진 WebtoB 환경 파일을 참조하지 않고 기본 포트로 설정되어 있는 포트를 사용한다.

    환경변수로 WEBTOB_RAC_PORT를 설정하였다면 환경변수로 설정된 포트를 사용한다. 보통 wsracd는 이 옵션을 이용하여 실행한다.

    [ -f 이진 WebtoB 환경 파일 이름 ]사용자가 지정한 이진 WebtoB 환경 파일을 참조하여 실행한다. 사용자가 지정한 이진 WebtoB 환경 파일에 설정된 포트를 사용한다.
    [ -a ]

    anonymous(no authentication) mode로 실행한다.

    해당 옵션을 사용하지 않는 경우 OS의 계정을 통해 wsracd에 connect할때 인증절절차를 거쳐야 한다. OS의 계정을 사용하여 인증하기 때문에 ${WEBTOBDIR}/bin/wsracd를 root 계정으로 변경하고, sticky bit을 설정해야 한다.

    [ -d ]

    debug mode로 실행한다.

  • 예제

    이진 WebtoB 환경 파일을 참조하여 실행한다. 옵션을 사용하지 않으면 기본으로 ${WEBTOBDIR}/config/wsconfig를 참조한다. wsconfig 파일이 존재하지 않으면 에러 메시지를 출력한다.

    $ wsracd -a

    다음은 환경 파일을 참조하지 않고 다른 명령어(wsboot)에서 사용한 정보만 이용하는 예제이다.

    $ wsracd –k 

    다음은 사용자가 지정한 /user1/park/webtob/config/wsconfig2라는 이진 WebtoB 환경 파일을 참조하여 실행하는 예제이다.

    $ wsracd –f /user1/park/webtob/config/wsconfig2