제17장 WebtoB 4.1 SP3 Fix#0

내용 목차

17.1. 신규 기능
17.1.1. 내장 HTMLS 및 SendFile 기능
17.1.2. UTF-8 Filter 내장 기능
17.2. 추가 기능
17.2.1. Configuration
17.2.2. Management
17.2.3. Utility
17.2.4. Service-CGI
17.2.5. Service-SSI
17.3. 변경 기능
17.3.1. Configuration
17.3.2. General
17.3.3. Management
17.3.4. Utility
17.3.5. Service-JSV
17.4. 버그 패치
17.4.1. Configuration
17.4.2. General
17.4.3. Management
17.4.4. Service-CGI
17.4.5. Service-JSV
17.4.6. Service-Filter
17.4.7. Utility
17.5. Packaging 변경
17.5.1. Configuration
17.5.2. General
17.5.3. Servlet
17.5.4. Manual

17.1. 신규 기능

17.1.1. 내장 HTMLS 및 SendFile 기능

17.1.1.1. Internal HTMLS

  • UseInternalHtmls=Y로 설정하게 되면 HTH에서 내장 HTMLS thread를 생성하여 정적 Html 페이지를 처리하게 된다. 내부 Socket 통신을 사용하는 시간이 줄어들어 기존 방식보다 처리속도가 빠르다.

    내장 HTMLS는 HTMLS 서버가 제공하는 기능 중 가장 많이 사용되는 정적 파일, conditional GET 등을 처리한다.

    [예 17.1] Internal HTMLS 설정 방법

    NODE 절에 내장 HTMLS 설정을 한다.

    *NODE
    webmain    WEBTOBDIR = "/usr/local/webtob",
               ...
               UseInternalHtmls = Y,
               InternalHtmlsReadSize = 16384, #default
               InternalHtmlsMaxCacheSize = 8192, #default
               InternalHtmlsAsyncReadThreads = 16 #default
               InternalHtmlsAsyncReadThreshold = 32768, #default 
               InternalHtmlsSendFileThreshold = 0

    참고

    Windows에서는 이 설정을 사용할 수 없다. 설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.3. NODE 절”을 참고한다.


17.1.1.2. SendFile

  • SendFile 기능을 추가하였다. SendFile은 커널 레벨에서 처리되기 때문에 파일 전송에 불필요한 오버헤드를 줄여 빠른 처리를 하게 된다.

    [예 17.2] SendFile 설정 방법

    NODE 절에 내장 HTMLS 설정을 한 경우에 SendFile 기능이 사용 가능하다.

    *NODE
    webmain    WEBTOBDIR = "/usr/local/webtob",
               ...
               UseInternalHtmls = Y,
               InternalHtmlsReadSize = 16384,
               InternalHtmlsMaxCacheSize = 8192,
               InternalHtmlsAsyncReadThreshold = 32768,
               InternalHtmlsSendFileThreshold = 0 #default

    참고

    Windows에서는 이 설정을 사용할 수 없다. Solaris 8 초기 버전의 경우 SendFile을 사용하기 위해 OS 패치가 필요하다. 설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.3. NODE 절”을 참고한다.


17.1.2. UTF-8 Filter 내장 기능

17.1.2.1. CheckURL

  • 한글 URL 처리를 하는 경우 UTF-8 요청에 대한 처리를 TechNet에서 제공하고있는 UTF-8 Filter를 설정하여 해결하고 있었다.

    그러나 UTF-8 Filter의 Makefile이 cc만 지원하는 문제와 시스템마다 locale값이 다른 문제등의 시스템 환경 문제로 인하여 설정에 어려움이 있었다.

    CheckURL의 기능은 UTF-8 Filter를 제품에 포함하고 설정값을 동일하게 하여 UTF-8 Filter설정을 간편하게 하였다. UTF-8과 EUC-KR만 지원한다.

    [예 17.3] CheckURL 설정 방법

    UTF-8과 EUC-KR만 지원하므로 CheckURL을 사용할 경우에는 다음과 같이 설정해야 한다.(추가 charset은 추후 지원예정)

    *NODE
    webmain    WEBTOBDIR = "/usr/local/webtob",
               ...
               CheckURL = Y,
               CheckURLTo = "euc-kr",
               CheckURLFrom = "utf-8" #default

    참고

    설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.3. NODE 절”을 참고한다.

17.2. 추가 기능

17.2.1. Configuration

17.2.1.1. CONNECT Method

  • WebtoB가 지원하는 Method는 GET, POST, HEAD, OPTIONS이였으며 CONNECT Method를 추가하였다.

    CONNECT Method는 TLS/SSL 통신을 위해 proxy tunneling(rfc: draft-luotonen-web-proxy-tunneling)을 하기 위해 사용된다.

    [예 17.4] CONNECT Method 설정 방법

    기본 설정에는 CONNECT Method가 설정되어 있지 않으며 +CONNECT 를 통해 설정을 한다.

    *NODE
    webmain    WEBTOBDIR = "/usr/local/webtob",
               ...
               METHOD="+CONNECT" #default GET, POST, HEAD, OPTIONS

    참고

    설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.3. NODE 절”을 참고한다.

  • 관련이슈 : IMS-48555

17.2.1.2. ValidHours 기능

  • 액세스 로그를 서버의 시간 단위마다 새롭게 파일을 생성하는 기능을 추가하였다.

    RotateBySeconds와 동일한 기능이지만 시간 단위가 다르다.

    RotateBySeconds는 이전 생성된 로그 파일 시간이 기준이 된다. 즉, RotateBySeconds=3600일 경우 먼저 생성된 Log의 생성시간이 1시13분이면 새로 생성되는 시간은 2시14분이 된다.(Clinet 요청이 없으면 요청이 올 때까지 로그는 생성하지 않는다.)

    ValidHours의 경우 서버의 시간을 기준으로 한다. ValidHours=1(단위 : 시간)일 경우 먼저 생성된 로그의 생성시간이 1시 13분이면 새로 생성되는 시간은 2시 정각이 된다.

    [예 17.5] ValidHours 설정 방법

    *LOGGING
    log1       Format = "DEFAULT", FileName = "log/access_%Y%%M%%D%_%h%.log",
               Option = "sync",
               ValidHours = 1

    참고

    설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.12. LOGGING 절”을 참고한다.

  • 관련이슈 : IMS-46204

17.2.1.3. LogPerm 기능

  • 로그 파일의 접근 권한 설정 기능을 추가하였다.

    이전에는 IPCPerm 설정이 로그 파일의 접근 권한에 영향을 주었다.

    IPCPerm에 영향을 받지 않도록 하고, 로그 파일의 접근 권한 설정을 편리하게 설정하기 위해 LogPerm 설정을 추가하였다.

    [예 17.6] LogPerm 설정 방법

    NODE 절에 다음과 같이 설정한다. 기본값은 0600 이다.

    *NODE
    webmain    WEBTOBDIR = "/usr/local/webtob",
               ...
               LogPerm = 0600

    설정 후 결과는 아래와 같다.

    drwxrwxr-x  3 webtob1 webtob     4096 2009-12-03 10:30 .
    drwxrwxr-x 23 webtob1 webtob     4096 2009-12-02 20:55 ..
    -rw-------  1 webtob1 webtob     3068 2009-12-02 21:07 access_20091202.log
    -rw-------  1 webtob1 webtob       79 2009-12-02 21:07 error_20091202.log
    -rw-------  1 webtob1 webtob     2841 2009-12-02 21:07 system_20091202.log

    참고

    Windows에서는 사용되지 않는다. 설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.3. NODE 절”을 참고한다.

  • 관련이슈 : IMS-44966

17.2.1.4. Cache에서 처리된 요청을 액세스 로그에 표현하는 기능

  • 액세스 로그의 내용 중 Cache 처리된 요청을 구별할 수 있는 액세스 로그 Format을 추가하였다.

    %c를 설정하면 Cache로 처리된 요청의 경우 "hth cache"로 기록된다.

    [예 17.7] 액세스 로그 Format %c 설정 방법

    설정을 위해선 Log Format을 사용자가 직접 설정해야 한다.

    *LOGGING
    log1       Format = "%c %h %l %u %r %s %b", 
               FileName = "log/access_%Y%%M%%D%.log",
               Option = "sync"

    설정 후 Access Log의 결과는 다음과 같다.

    hth cache 127.0.0.1 - - GET /test.html HTTP/1.1 200 45

    참고

    설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.12. LOGGING 절”을 참고한다.

  • 관련이슈 : IMS-46665

17.2.1.5. Queuing 발생 시점을 System Log에 기록하는 기능

  • 큐잉이 발생하게 되면 System Log에 기록하는 기능을 추가하였다. LogLevel은 WARN이어서 추가 설정을 하지 않아도 System Log에 기록된다.

    [예 17.8] Syslog 확인 결과

    큐잉이 발생한 경우 System Log는 다음과 같이 기록된다.

    [2009/12/03:14:14:36] HTH-24107 W HTH0357: Request is queued 
    because all eligible server processes are in use.
     client ip=127.0.0.1, request=GET /test.html, server=HTML(html)

  • 관련이슈 : IMS-49109

17.2.1.6. System Log 파일 이름을 사용자가 설정하는 기능

  • SysLog 설정을 통해 파일 이름을 사용자가 직접 설정하는 기능을 추가하였다.

    SysLog 설정을 하지 않으면 ${WEBTOBDIR}/log/system.log의 이름으로 생성된다.

    [예 17.9] System Log 파일 이름 설정 방법

    LOGGING 절에 설정된 name을 NODE 절 SysLog에 설정한다.

    *NODE
    webmain    WEBTOBDIR = "/usr/local/webtob",
               ...
               SysLog = "syslog"
    *LOGGING
    syslog     Format = "SYSLOG", FileName = "log/system_%Y%%M%%D%.log",
               Option = "sync"

    참고

    설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.3. NODE 절”을 참고한다.

17.2.1.7. 응답이 Error Status Code인 경우 KeepAlive 사용 설정 기능

  • HTTP Status Code 3XX 이상 응답을 클라이언트로 보내는 경우, 연결을 유지할 수 있는 기능을 추가하였다.

    [예 17.10] KeepAliveErrorStatusCode 설정 방법

    *NODE
    webmain    WEBTOBDIR = "/usr/local/webtob",
               ...
               KeepAliveErrorStatusCode = "301, 302"

    참고

    설정에 대한 설명은WebtoB 관리자 안내서”의 “3.3. NODE 절”을 참고한다.

17.2.1.8. URLRewrite 기능에 -f, -d 규칙

  • URLRewrite의 조건식 설정인 RewriteCond 규칙에 -f, -d를 추가하였다.

    -f 는 File을 의미하며 -d는 Directory를 의미한다.

    [예 17.11] RewriteCond -f/-d 설정 방법

    NODE 절의 URLRewrite 설정은 다음과 같다.

    *NODE
    webmain    WEBTOBDIR = "/usr/local/webtob",
               ...
               URLRewrite = Y,
               URLRewriteConf = "mod_rewrite.cfg"

    mod_rewrite.cfg 는 사용자가 파일을 생성해야 한다.

    !-f 는 File이 아닌 경우를 의미하고, !-d는 Directory가 아닌 경우를 의미한다.

    # mod_rewrite.cfg
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ http://webtob.example.com/$1

  • 관련이슈 : IMS-46998

17.2.1.9. HTH 프로세스가 직접 Access Log를 기록하는 기능

  • AccessLogThroughWSM=N을 설정 시 WSM을 거치지 않고 WebtoB 프로세스가 Access Log를 직접 기록한다.

    해당 설정을 사용할 경우 WebtoB 프로세스가 Access Log 메시지들을 직접 로그 파일에 기록하게 되어 WSM을 거치는 시간이 줄어들어 처리속도가 향상된다.

    [예 17.12] AccessLogThroughWSM 설정 방법

    NODE 절에 설정하며 AccessLogThroughWSM을 설정하지 않을 경우 기존 방식인 WSM이 Access Log를 기록하게 된다.

    *NODE
    webmain    WEBTOBDIR = "/usr/local/webtob",
               ...
               AccessLogThroughWSM = Y #default

    참고

    Windows 버전은 이 설정을 사용할 수 없다. 설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.3. NODE 절”을 참고한다.

17.2.1.10. HTH와 HTL 사이의 버퍼 크기 설정

  • HTL과 HTH가 통신할 때 사용되는 소켓 버퍼 크기(SendBuffer와 ReceiveBuffer)를 설정할 수 있는 기능을 추가하였다. 설정하지 않을 경우 OS의 기본값을 사용한다.

    [예 17.13] HtlHthSendSocketBufferSize, HtlHthRecvSocketBufferSize 설정 방법

    *NODE
    webmain    WEBTOBDIR = "/usr/local/webtob",
               ...
               HtlHthSendSocketBufferSize = 0
               HtlHthRecvSocketBufferSize = 0

    참고

    설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.3. NODE 절”을 참고한다.

  • 관련이슈 : IMS-42176

17.2.1.11. WEB-INF를 Access Deny로 인식하는 기능

  • 정적 파일의 요청을 처리하는 경우 /WEB-INF/로 접근을 제한하는 설정을 추가하였다.

    HtmlsForbidsWEBINF=Y 설정을 하거나 설정을 하지 않을 경우, Request URL에 /WEB-INF/ 경로가 포함되어 있으면 403 Forbidden 응답을 보내게 된다.

    [예 17.14] HtmlsForbidsWEBINF 설정 방법

    NODE 절에 설정을 하며 기본값은 Y이다.

    *NODE
    webmain    WEBTOBDIR = "/usr/local/webtob",
               ...
               HtmlsForbidsWEBINF = Y #default

    참고

    설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.3. NODE 절”을 참고한다.

  • 관련이슈 : IMS-44969

17.2.1.12. TraceAccessLog 설정

  • 클라이언트의 요청이 있는 경우 WebtoB에서 처리하는 과정을 기록하는 기능을 추가하였다.

    요청에 대한 로그 확인 내용은 Access log 내용 중 마지막에 기록된다.

    TraceAccessLog 설정에 의해 기록되는 시점은 다음과 같다.

    1. Client 요청이 WebtoB의 HTH에 도착한 시점

      ARRIVED로 기록

    2. HTH가 처리하는 서버로 전달하는 시점

      SENT-TO-SERVER <SvrType> <확장자> 로 기록

    3. Queuing이 되는 시점

      QUEUED <SvrType> <확장자> 로 기록

    기존 Access Log에 기록되는 내용 이외에 TraceAccessLog 설정을 통해 기록되는 Log는 LogFormat이 Default로 정해져 있다.

    해당 옵션은 디버깅 용도로만 사용하도록 권장한다.

    [예 17.15] TraceAccessLog 설정 방법

    *NODE
    webmain    WEBTOBDIR = "/usr/local/webtob",
               ...
               TraceAccessLog = Y

    TraceAccessLog 설정 시 Access Log의 내용은 다음과 같다. 7de70002 내용은 Request 고유 번호이다.

    127.0.0.1 [03/Dec/2009:15:10:47 +0900] "GET /test.html HTTP/1.1"
     7de70002 ARRIVED
    127.0.0.1 [03/Dec/2009:15:10:47 +0900] "GET /test.html HTTP/1.1"
     7de70002 SENT-TO-SERVER HTML html
    127.0.0.1 [03/Dec/2009:15:10:47 +0900] "GET /test.html HTTP/1.1"
     7de80002 ARRIVED
    127.0.0.1 [03/Dec/2009:15:10:47 +0900] "GET /test.html HTTP/1.1"
     7de80002 QUEUED HTML html
    127.0.0.1 - - GET /test.html HTTP/1.1 200 68 7de80002
    127.0.0.1 - - GET /test.html HTTP/1.1 200 68 7de70002

    참고

    설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.12. LOGGING 절”을 참고한다.

  • 관련이슈 : IMS-44753

17.2.1.13. 무단 링크 차단 기능(mod_setenvif)

  • 클라이언트의 요청 헤더에 설정값이 없는 경우 접근을 차단하는 기능을 추가하였다.

    Reqeust Header에 AllowIf, DenyIf에 설정한 Header와 내용이 없다면 ACCESS 설정을 적용하게 된다.

    기존 Allow, Deny의 경우 IP만 설정이 가능하였다.

    해당 설정을 사용하면 무단링크를 방지할 수 있다.

    [예 17.16] AllowIf 설정 방법

    AllowIf에 대한 설정이 Request Header에 있으면 요청을 허용하는 설정이다.

    *ACCESS
    access1    Order="deny,allow", Deny="all",
               AllowIf = "Referer http://www.tmax.co.kr/",
               AllowIf = "Referer http://www.webtob.co.kr/"

    [예 17.17] DenyIf 설정 방법

    DenyIf에 대한 설정이 Request Header에 있으면 요청을 거부(403 Forbidden)하는 설정이다.

    *ACCESS
    access1    Order="allow,deny", Allow="all",
               DenyIf = "Referer http://www.tmax.co.kr/",
               DenyIf = "Referer http://www.webtob.co.kr/"

    참고

    설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.13. ACCESS 절”을 참고한다.

  • 관련이슈 : IMS-46677

17.2.1.14. Flow Control 기능 개선

  • 기존 Flow Control 방식을 개선하였다. 예전 Flow Control의 경우 Delay Time이 길어 요청 처리가 느려지는 현상이 있었다.

    기본값 사용 시 개선된 Flow Control이 설정된다.

    [예 17.18] UseOldServerFlowControl 설정 방법

    *NODE
    webmain    WEBTOBDIR = "/usr/local/webtob",
               ...
               UseOldServerFlowControl = N #default 

    참고

    설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.3. NODE 절”을 참고한다.

  • 관련이슈 : IMS-52287

17.2.1.15. URI 절과 EXT 절에 Priority 설정

  • URI 절과 EXT 절에 Priority 항목 설정을 추가하였다.

    Priority 설정은 특정 Server의 Queue에서 대기하고 있는 Request 중 다음에 서비스될 Request를 결정할 때 적용된다.

    Priority의 처리하는 과정은 다음과 같다.

    1. Queue에 대기하고있는 요청 중 Priority 설정이 높은 서비스를 최대 10개까지 처리

    2. 그 다음 Priority 설정이 높은 서비스를 1개 처리

    3. 1번과 2번의 과정이 반복되어 2번에 처리되는 서비스가 10개가 되면 1번과 2번의 다음 순서의 Priority 설정된 서비스가 1개 처리된다.

    [예 17.19] URI 절 Priority 설정 방법

    *URI 
    pri10      Uri = "/pri10/",  SvrType=JSV, SvrName=MyGroup,
               Priority=10
    pri90      Uri = "/pri90/",  SvrType=JSV, SvrName=MyGroup,
               Priority=90

    [예 17.20] EXT 절 Priority 설정 방법

    *EXT
    jsp10      MimeType = "application/jsp", SvrType = JSV,
               Priority=10
    jsp90      MimeType = "application/jsp", SvrType = JSV,
               Priority=90

  • 관련이슈 : IMS-36520

17.2.1.16. URI 절과 EXT 절에 Regular Expression 기능

  • URI 절과 EXT 절에 정규 표현식으로 설정할 수 있는MATCH 패턴 설정을 추가하였다. URI 절에는 prefix, exact, fn, regexp의 패턴이 있으며, EXT 절에는 prefix, exact, regexp이 있다.

    [예 17.21] URI 절 MATCH 설정 방법

    *URI
    uricgi     Uri = "/cgi-bin/", SvrType = CGI
    uriexact   URI = "/", MATCH = "exact", SVRTYPE = HTML
    uriregexp  URI = "/reg[a-zA-Z]{3}/reg.+", MATCH = "regexp", SVRTYPE = HTML
    uripre     URI = "/", MATCH = "prefix", SVRTYPE = JSV
    urifn      URI = "/uri/*/*/" , MATCH = "fn", SVRTYPE = CGI

    [예 17.22] EXT 절 MATCH 설정 방법

    *EXT
    jsp        MimeType = "application/jsp", SvrType = JSV
    exact      MimeType = "text/html", SvrType = HTML, MATCH="exact"
    regexp     MimeType = "text/html", SvrType = HTML,
               MATCH="regexp", REGEXP="regexp.*"
    prefix     MimeType = "application/jsp", SvrType = JSV, MATCH="prefix"

  • 관련이슈 : IMS-44960, IMS-44957, IMS-44963

17.2.1.17. MimetypesConfig 설정 추가

  • 확장자와 MimeTypes을 매핑을 파일을 통해서 설정하는 기능을 추가하였다.

    환경 설정 파일에 MimetypesConfig 설정을 하지 않을 경우 mime.types 파일을 기본으로 찾는다.

    • 아래와 같이 EXT 절 Match="regexp" 기능과 같이 사용할 경우, HTML서버가 처리하는 확장자에 대한 MIME-Type을 설정할 때 유용하게 사용할 수 있다.

      jsp 이외의 확장자는 HTML서버가 처리하면서 Response Header의 Content-Type 필드에 MIME-Type을 ${WEBTOBDIR}/config/mime.types에 기록된 내용으로 보낸다.

      만약 gif의 주석을 풀게 된다면 gif에 대해서는 EXT 절에 설정된 MIME-Type을 사용하게 된다.

    [예 17.23] MimetypesConfig 설정 방법

    *NODE
    webmain    WEBTOBDIR = "/usr/local/webtob",
               ...
               MimetypesConfig = "config/mime.types",
               ...
    
    *EXT
    #htm       MimeType = "text/html", SvrType = HTML
    #gif       MimeType = "image/gif", SvrType = HTML
    jsp       MimeType = "application/jsp", SvrType = JSV
    other_ext MATCH="regexp", REGEXP=".*", SvrType = HTML


    참고

    설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.3. NODE 절”을 참고한다.

  • 관련이슈 : IMS-52637

17.2.2. Management

17.2.2.1. 접속 IP의 통계 출력

  • WebtoB에 연결하고 있는 클라이언트 IP의 통계값을 출력하는 기능을 추가하였다. ci -s를 실행하면 전체 클라이언트 수와 고유 IP(Unique IP)수가 출력된다.

    아래의 결과는 하나의 Client가 20번의 요청을 보냈을 때의 결과이다. 아래 결과 중 Clients는 connection을 맺고있는 수이며, Unique IPs는 connection을 맺고 있는 IP의 수이다.

    [예 17.24] ci -s 실행화면

    $$1 tmaxs4 (wsadm) [2009/12/03:17:46:14]: ci -s
           Clients  Unique IPs
           -------  ----------
    HTH 0       10           1
    HTH 1       10           1
      All       20           1
    $$2 tmaxs4 (wsadm) [2009/12/03:17:46:14]:

  • 관련이슈 : IMS-44456

17.2.2.2. wsadmin 명령 실행시간 출력

  • wsadmin을 실행했을 때 다음 명령을 기다리는 커서 위치에 마지막 명령 실행시간을 출력하도록 하였다. wsadmin을 실행하면 기본적으로 시간을 출력하게 되어 있어 별도의 설정은 없다.

    다음은 wsadmin의 실행 초기 화면 및 그 다음 명령을 실행했을 때의 시간 출력 화면이다.

    [예 17.25] wsadmin 실행화면

    $$1 tmaxs4 (wsadm) [2009/12/03:17:57:58]: st -s
    
    HTH 0: RDY
       ---------------------------------------------------------------------- 
       svc_name        count    avg   cq_count  aq_count  q_avg   status 
       ---------------------------------------------------------------------- 
       htm                 0   0.0000        0         0  0.0000   RDY 
       html                0   0.0000        0         0  0.0000   RDY 
    
    $$2 tmaxs4 (wsadm) [2009/12/03:17:57:59]: 

  • 관련이슈 : IMS-44862

17.2.2.3. Cache Entry 목록 파일 출력 기능

  • Cache에 저장된 요청을 파일 리스트로 출력하는 기능을 추가하였다.

    wsadmin을 접속 후 "cachelist"를 입력하면 파일이 생성되며 경로는 다음과 같다.

    ${WEBTOBDIR}/log/cachelist/

    Cache Entry 파일 내용의 예이다. HTH가 다수일 경우 HTH마다 cachelist 파일이 생성된다. 아래의 예의 경우 HTH가 2개이다.

    [예 17.26] Cache Entry 파일내용 화면

    $$1 tmaxs4 (wsadm) [2009/12/03:06:29:51]: cachelist
    Cache contents files are created in /home/webtob2/wb4130_64/log/cachelist/.
     Please check the directory.
    $$2 tmaxs4 (wsadm) [2009/12/03:06:29:53]: quit
    
    $>ls -al
    total 16
    drwx------ 2 webtob2 users 4096 ./
    drwxrwxr-x 6 webtob2 users 4096 ../
    -rw------- 1 webtob2 users  461 cachelist-hth-0-20091203-062728.txt
    -rw------- 1 webtob2 users  461 cachelist-hth-1-20091203-062728.txt

  • 관련이슈 : IMS-46663

17.2.3. Utility

17.2.3.1. wscfl 실행 시 설정 경고 메시지 출력

  • wscfl를 실행하는 경우 오류는 발생하지 않지만 시스템 운영에 문제가 될 수 있는 경우 경고 메시지를 출력하도록 하였다.

    아래의 경고 메시지는 "Log 파일이 날짜형식이 아닐경우", "Port 설정이 1023 이하 번호를 설정한 경우", "MaxUser가 500 이하일 경우"의 예이다. 경고 메시지는 나타나지만 컴파일은 된다.

    [예 17.27] wscfl 경고 메시지 화면

    $/home/webtob1>wscfl -i config.m
    CFL0356: Log FileName does not contain format strings.
     All log messages will be stored in the single log file.
     If this is not what you want, please use format strings.
     For example, FileName="log/access_%Y%%M%%D%.log". Log=log1,
     filename=/home/webtob1/wb4130_32/log/access.log, line=27 
    CFL0368: Configuration uses privileged listen ports (those below 1024).
     These ports generally require root privilege.
     The user may run WebtoB as a superuser,
     or change the owner of htl to root and enable the setuid (sticky) bit on htl. 
    CFL0369: The node can support only 400 users (connections)
     using the current configuration.
     To increase the limit, consider the following.
    1. Increase the limit on file descriptors (for example, "ulimit -n")
     if it is smaller than 1024.
    2. Reduce the number of unnecessary servers.
    3. Increase the number of HTHs.
    
    Current configuration:
            Number of client handler(HTH) = 1
            Supported maximum user per node = 400
            Supported maximum user per handler = 400
    
    Successfully created the configuration file
     (/home/webtob1/wb4130_32/config/wsconfig) for node qpsx3.
    The host name of the running machine is qpsx3.

  • 관련이슈 : IMS-44974

17.2.3.2. Syslog에 기록되는 Critical 에러를 콘솔에 함께 출력

  • wsboot를 실행할 때 Syslog에 기록되는 오류일 경우 동시에 콘솔에도 출력하도록 하였다.

  • 관련이슈 : IMS-44964

17.2.3.3. 자동 컴파일 후 부팅되는 옵션 추가

  • wsboot를 실행할 때 자동으로 컴파일하는 wsboot -i와 wsboot -c <m file> 기능을 추가하였다.

    1. wsboot -i : http.m 파일을 컴파일 후 boot 한다.

    2. wsboot -c <환경설정 파일> : <환경설정 파일>을 컴파일 후 boot한다.

  • 관련이슈 : IMS-44971

17.2.4. Service-CGI

17.2.4.1. SCGI 기능 추가(GET, POST 지원)

  • GET, POST 요청을 지원하는 SCGI 기능을 추가하였다. 설정은 URI 절과 EXT 절에 한다.

    WebtoB 4.1 SP1 Fix#2에 추가되었던 SCGI의 경우 GET 요청만 지원하였다.

    [예 17.28] SCGI 설정 방법

    *URI
    scgiget    Uri = "/scgi-get/", SvrType = CGI,
               SCGI = Y , ScgiServer="127.0.0.1:4000", SvrName = "scgi"
    scgipost   Uri = "/scgi-post/", SvrType = CGI,
               SCGI = Y , ScgiServer="127.0.0.1:4000", SvrName = "scgi"
    
    *EXT
    get        MimeType="text/html", SvrType=CGI,
               SCGI=Y, ScgiServer="127.0.0.1:4000", SvrName = "scgi"
    post       MimeType="text/html", SvrType=CGI,
               SCGI=Y, ScgiServer="127.0.0.1:4000", SvrName = "scgi"

  • 관련이슈 : IMS-25766

17.2.4.2. FastCGI 기능

  • FastCGI 애플리케이션을 실행할 수 있는 기능을 추가하였다. SvrType이 CGI일 경우만 동작한다. SERVER 절에는 FastCGI 엔진 설정을 하며, URI 절과 EXT 절에는 사용여부를 설정한다.

    [예 17.29] SERVER 절 FastCGI 설정 방법

    *SERVER
    fcgi       SVGNAME = cgig, MinProc = 1, MaxProc = 10, ASQCount = 1,
               FcgiKillMaxRequest=10,
               FcgiKillTimeOut=10,
               FcgiInitEnv="VERBOSITY=10"

    [예 17.30] URI 절과 EXT 절에 FastCGI 설정 방법

    *URI
    fcgiuri    Uri = "/fcgi-bin/", SvrType = CGI,
               FCGI = Y , SvrName = "fcgi"
    
    *EXT
    fcgi       MimeType="text/html", SvrType=CGI,
               FCGI=Y, SvrName = "fcgi"

  • 관련이슈 : IMS-39617, IMS-44181

17.2.5. Service-SSI

17.2.5.1. SSI 개선

  • SSI Include가 포함되어 있는 페이지를 Include하여도 정상동작하는 SSIMaxDepth 기능을 추가하였다.

    WebtoB 4.1 SP2 Fix#0 이하 버전과 내부 처리방식이 변경되었다.

    [예 17.31] SSIMaxDepth 설정 방법

    *NODE
    webmain    WEBTOBDIR = "/usr/local/webtob",
               ...
               SSIMaxDepth = 16 #default

    참고

    설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.3. NODE 절”을 참고한다.

  • 관련이슈 : IMS-33974, IMS-49538

17.3. 변경 기능

17.3.1. Configuration

17.3.1.1. 디버그 로그 기능 변경 및 로그 레벨 도입

  • ${WEBTOBDIR}/bin 디렉터리에 dbg 바이너리를 모두 삭제하였으며, LOGLEVEL 절을 추가하여 환경설정과 동적설정을 통해 trace 파일 생성(TRACE Level 설정된 경우)이 되도록 변경하였다.

    LOGLEVEL은 TRACE, DEBUG, INFO(default), WARN, FATAL이 있으며 TRACE가 가장 낮은 레벨이다.

    [예 17.32] 환경설정 파일에 LOGLEVEL 설정 방법

    # .               : Root를 의미한다.  모든 구성요소를 포함한다.
    # .hth            : HTH
    # .htl            : HTL
    # .wsm            : WSM
    # .server         : 모든 서버들을 포함한다. 
    # .server.htmls   : HTMLS
    # .server.cgis    : CGIS 
    # .server.phps    : PHPS
    # .server.ssis    : SSIS
    # .server.filters : FILTERS
    *LOGLEVEL
    .hth       Level = "trace"
    .server    Level = "info"

    [예 17.33] LOGLEVEL 동적 설정 방법

    hostname@webtob:/home/webtob>wsadmin
    --- Welcome to WebtoB Admin (Type "quit" to leave) ---
    
    $$1 hostname (wsadm) [2009/11/26:17:15:36]: ll -h
    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
    $$2 hostname (wsadm) [2009/11/26:17:15:38]: ll .hth -l trace
    Log level is successfully updated. logger=.hth, level=TRACE, options=
    
    hostname@webtob:/home/webtob/wb4130_64/log/trace>ls
    HTH-1394-20091126.trace

    참고

    설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.23. LOGLEVEL 절”을 참고한다.

  • 관련이슈 : IMS-52098

17.3.1.2. RotateByEntries 설정 제거

  • WebtoB 4.1 SP2 Fix#0에 추가된 기능이지만 요구사항과 다른 기능으로 판단되어 삭제되었다 .

  • 관련이슈 : IMS-51063

17.3.1.3. SysLogDir 설정 제거

  • NODE 절에 SysLog 설정이 추가되면서 SysLogDir 설정은 삭제 되었다.

  • 관련이슈 : IMS-51063

17.3.1.4. SERVER 절에 VhostName 설정

  • WebtoB 설정을 쉽게 하기 위해 SERVER 절에도 VhostName이 설정 가능하도록 변경하였다.

    [예 17.34] SERVER 절 VhostName 설정 방법

    *SERVER 
    app1       SVGNAME = jsvg, MinProc = 1, MaxProc = 10, ASQCount = 1,
               VHOSTNAME = vhost1 
    app2       SVGNAME = jsvg, MinProc = 1, MaxProc = 10, ASQCount = 1,
               VHOSTNAME = vhost2 
    

    참고

    설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.6. SERVER 절”을 참고한다.


  • 관련이슈 : IMS-44861

17.3.1.5. URI 절, EXT 절에 VhostName 기능 변경

  • WebtoB 설정을 쉽게 하기 위해 URI 절과 EXT 절에 VhostName을 Multi 설정이 가능하도록 변경하였다.

    [예 17.35] URI 절 VhoatName 설정 방법

    *URI
    uri1       Uri = "/jsvtest/",   Svrtype = JSV,
               VHOSTNAME="vhost1, vhost2",
               VHOSTNAME="vhost3"
    uri2       Uri = "/test/",   Svrtype = HTML,
               VHOSTNAME="vhost1",
               VHOSTNAME="vhost3"
    uri3       Uri = "/test/",   Svrtype = JSV, VHOSTNAME="vhost2"
    uri4       Uri = "/uri/", Svrtype = HTML, VHOSTNAME="vhost2,vhost3"
    uri5       Uri = "/uri/", Svrtype = JSV, VHOSTNAME="vhost1"

  • 관련이슈 : IMS-44860

17.3.1.6. ServerToken 항목 기본값을 OFF로 변경

  • 보안을 이유로 ServerToken 항목의 기본값을 OFF로 변경하였다.

    기존 ServerToken의 기본값은 Manual이었으며, Respose Header에 WebtoB 서버 정보가 나타났다.

    ServerToken의 설정이 OFF일 경우에는 Response Header에 Server 정보가 나타나지 않는다.

    참고

    설정에 대한 설명은 WebtoB 관리자 안내서”의 “3.3. NODE 절”을 참고한다.

  • 관련이슈 : IMS-44970

17.3.2. General

17.3.2.1. 개발자 라이선스의 User Check 방식 변경

  • Developer License(개발자 라이선스)의 User Check 방식을 Connection 수에서 IP 수로 변경하였다.

    Connection Check 방식의 문제는 하나의 요청 페이지에 다수의 이미지가 포함되어 있으면 Connection Full이 발생하게 되었다.

    User Check 방식의 경우는 Unique IP로 Check하여 Connection에 영향을 받지 않도록 변경되었다.

    개발자 라이선스를 사용할 경우 WebtoB를 boot한 시점부터 접속하기 시작한 IP를 저장하게 되며 5개가 넘으면 reboot을 하기 전까지 6번째 IP는 접속이 불가능하다.

  • 관련이슈 : IMS-35172

17.3.2.2. HTH와 HTHS를 하나의 HTH로 변경

  • ${WEBTOBDIR}/docs에 있는 WebtoB 실행 파일 중 HTH와 HTHS를 하나의 HTH로 변경하였다.

    이전에는 SSL을 설정 시 실행되는 프로세스는 hths 이름으로 확인되었다.

    변경 후 SSL을 설정하여도 hth 이름으로 실행되게 변경되었다.

    [예 17.36] SSL 실행 후 프로세스 확인 결과

    32528  1  0 09:57 pts/10 wsm -l 0x2 -I webtob1_32527 -b 32527
    32529  1  0 09:57 pts/10 htl -l 0x2 -I webtob1_32527 -b 32527
    32530  1  0 09:57 pts/10 hth -l 0x2 -I webtob1_32527 -b 32527
    32532  1  0 09:57 pts/10 htmls -l 0x2 -I webtob1_32527 -b 32527 -s html

17.3.3. Management

17.3.3.1. cfg 정보 추가(URLRewrite, URLRewriteConfig)

  • WebtoB 4.1 SP2 Fix#0 버전에 추가된 URLRewrite 항목을 설정하는 경우 wsadmin의 cfg 정보에 출력이되도록 하였다.

  • 관련이슈 : IMS-35950

17.3.4. Utility

17.3.4.1. Engine Version Mismatch 메시지를 상세히 출력

  • wscfl를 실행하는 경우 Engine Version Mismatch 오류 메시지를 상세히 출력하여 오류 원인을 찾기 쉽도록 하였다.

    [예 17.37] Engine Version Mismatch 메시지 결과

    COM0005: Incompatible version found in the compiled configuration file.
    Compiled configuration file=/home/webtob1/wb4130/config/wsconfig_316,
     WEBTOBDIR=/home/webtob1/wb4130, configuration version=8.9.21,
     expected version=51.0.0.
    Likely cause: the WebtoB version that compiled the configuration
     file is not the currently executing WebtoB version.
    Please check the following.
    1. WEBTOBDIR is set to the correct version of WebtoB.
    2. PATH includes the correct WebtoB bin directory.
    3. Re-run wscfl if WebtoB has been upgraded recently.

  • 관련이슈 : IMS-44968

17.3.4.2. Windows에서 SERVICE 절의 SvcTime 항목 설정 시 오류 출력

  • Windows에서는 동작하지 않는 SERVICE 절의 SvcTime 항목을 설정하는 경우 컴파일 오류가 발생하고 에러 메시지는 콘솔에 출력하도록 하였다.

  • 관련이슈 : IMS-43272

17.3.5. Service-JSV

17.3.5.1. JEUS의 Server-Side-Queuing을 지원하지 않도록 변경

  • Server-Side-Queuing(request-prefetch) 기능을 무시하도록 변경하였다. JEUS의 Server-Side-Queuing 기능을 설정하여도 WebtoB와 연동하는 경우 동작하지 않는다.

    참고

    Server-Side-queuing(request-prefetch) 에 대한 자세한 설명은 JEUS 6.0의 "JEUS Web Container 안내서" "6.3.4 WebtoB 리스너 설정"을 참고한다.

  • 관련이슈 : IMS-36612

17.3.5.2. SERVER 절의 Timeout 설정 삭제

  • SERVER 절의 Timeout 설정을 삭제하였다.

    WebtoB와 JEUS의 연결을 끊기 위해 추가된 기능으로 NotifyClientClose 설정으로 대체가 가능하다.

  • 관련이슈 : IMS-44247

17.4. 버그 패치

17.4.1. Configuration

17.4.1.1. UNC 디렉터리 설정 관련 버그

  • Windows에서 WebtoB DocRoot를 UNC(Universal Naming convention) 방식으로 설정할 경우 Path 인식 오류 현상을 수정하였다.

    Windows의 UNC 경로를 WebtoB DocRoot에 설정 시에는 아래의 4가지 설정을 모두 만족하도록 수정하였다.

    • network-server에 공유 폴더 이름이 shared 이며 공유폴더 안에 dir이라는 디렉터리가 존재할 경우

      network-server
      |---- shared
            |---- dir
      1. DocRoot = "\\network-server\shared\

      2. DocRoot = "\\network-server\shared

      3. DocRoot = "\\network-server\shared\dir\

      4. DocRoot = "\\network-server\shared\dir

      참고

      WebtoB 4.1 SP2 Fix#0 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-42035

17.4.1.2. Expires 설정이 적용되지 않는 버그

  • Status Code 304의 경우 Expires 설정을 하여도 응답 헤더에 Expires와 Cache_Control이 적용되지 않는 오류를 수정하였다.

    Status Code 200의 경우에만 Expires 설정이 적용됬었으며, Status Code 304의 경우에도 적용되도록 수정하였다.

    ▨ Expires 동작 Http Response Header
    
    HTTP/1.1 304 Not Modified
    Date: Thu, 26 Nov 2009 10:20:45 GMT
    Connection: Keep-Alive
    Keep-Alive: timeout=60
    ETag: "0-2a-4b0e55e1"
    Cache-Control: max-age=100
    Expires: Thu, 26 Nov 2009 10:22:25 GMT

    참고

    WebtoB 4.1 SP2 Fix#0 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-39797

17.4.1.3. SSL 설정된 경우 JEUS 요청 처리 중 400 BadRequest 발생 버그

  • JEUS가 처리하는 요청 페이지에서 sendRedirect()를 동작 후 페이지 처리가 완료되지 않으면 WebtoB에서 SSL 내부 동작 오류가 발생하여 400 BadRequest 응답을 하는 현상을 수정하였다.

    • 오류 발생 시나리오

      1. WebtoB가 SSL을 사용하며 Request가 HTTPS요청을 보낸다.

      2. 요청 jsp 페이지 내부에 sendRedirect() 함수가 처리되어 302 Redirect를 하게 된다.

      3. 요청 jsp 페이지 처리과정이 sendRedirect() 함수완료 후 추가 처리과정이 진행되고 있다.

      4. 302 Redirect 된 요청을 Client가 보내게 되면 오류가 발생한다.

    참고

    WebtoB 4.1 SP2 Fix#0 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-38602

17.4.1.4. Vhost 요청 시 Timeout 버그

  • Vhost의 Port로 1초에 2개 이상의 요청을 보내면 WebtoB에 연결 중인 모든 클라이언트의 Timeout이 설정값과 다르게 동작하는 오류를 수정하였다.

    Vhost에 부하 상황이 발생하면 KeepAliveTimeout 및 Timeout 설정값을 초과하는 현상이 발생한다.

    참고

    WebtoB 4.1 SP2 Fix#0 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-38877

17.4.1.5. Vhost에 설정한 ErrorDocument가 적용되지 않는 버그

  • Vhost에 ErrorDocument에 Http Status Code 403, 413, 414, 500, 503을 설정한 경우 NODE 절의 설정이 적용되는 오류를 수정하였다.

    참고

    WebtoB 4.1 SP2 Fix#0 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-36626

17.4.2. General

17.4.2.1. PipeLined HTTP Request 버그

  • PipeLined HTTP Request를 요청하는 경우 처음 요청만 처리하는 오류를 수정하였다.

    참고

    Pipelining은 rfc-2616을 참고한다.

    WebtoB 4.1 SP2 Fix#0 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-49103

17.4.2.2. DIRINDEX 절의 DirIndex 페이지와 Description 항목 버그

  • DirIndex 페이지의 내용 중 ADDRESS HTML tag 오류를 수정하였다.

    Description에 설정한 파일에 작성된 내용 중 1줄의 길이가 256자 이상인 경우 이후 내용이 적용되지 않는 오류를 수정하였다.

    참고

    WebtoB 4.1 SP2 Fix#0 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-48612

17.4.2.3. ExcludeByExt 설정 사용 시 HTH 비정상 종료 버그

  • ExcludeByExt 설정을 엑세스 로그에 설정 후 클라이언트 요청이 2000Byte 이상일 경우 HTH가 비정상 종료가 발생한다.

    URL이 512 이상일 경우 WebtoB는 414 Request URI too large를 기록하고 요청을 거절한다.

    오류 현상은 엑세스 로그에 기록하는 과정에서 HTH가 비정상 종료하게 된다.

    • 오류 발생 시나리오

      1. WebtoB의 LOGGING 절 엑세스 로그에 ExcludeByExt를 설정한다.

      2. 요청 URL의 길이를 2000 byte 이상을 WebtoB로 전달한다.

      3. 클라이언트에 414 오류를 전달하고 엑세스 로그에 기록하는 과정에서 오류가 발생한다.

    참고

    WebtoB 4.1 SP2 Fix#0 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-54467

17.4.3. Management

17.4.3.1. cl(ClientListen) 메시지 출력 버그

  • 특정 플랫폼에서 cl(ClientListen) 옵션의 실행 메시지가 동작과 다르게 출력되는 오류를 수정하였다.

    다음은 수정 후 wsadmin에서 cl(ClientListen) 실행 시 결과이다.

    * cl : 포트 상태 확인
    on 일 경우 : current status is READY 
    off 일 경우 : current status is BLOCK_LISTEN 
    
    * cl on : port listen 허용 
    on 일 경우 : client listen is already resumed 
    off 일 경우 : client listen resumed 
    
    * cl off : port brock
    on 일 경우 : client listen blocked 
    off 일 경우 : client listen is already blocked

    참고

    WebtoB 4.1 SP2 Fix#0 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-42962

17.4.3.2. ds -a 동작 버그

  • HTH가 2개 이상인 경우 ds -a를 실행하면 hth 0에만 명령이 처리되는 오류를 수정하였다.

    참고

    WebtoB 4.1 SP2 Fix#0 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-40790

17.4.4. Service-CGI

17.4.4.1. nph-cgi 요청 시 출력 압축 Response가 오는 버그

  • Windows 플랫폼에서 nph-cgi 요청을 처리하는 내부 동작 중 출력 압축을 결정하는 과정에서 오류가 발생하여 출력 압축 Response를 보내는 오류를 수정하였다.

    WebtoB는 nph-cgi를 처리하게 되면 출력 압축을 하지 않도록 변경하였다.

    참고

    WebtoB 4.1 SP2 Fix#0 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-44447

17.4.5. Service-JSV

17.4.5.1. Suspend(BLK) 상태인 JSV 서버에 Request가 할당되는 버그

  • JEUS 6.0의 WebtoB Listener Suspend 명령을 실행하는 경우 WebtoB가 Suspend된 JSV 서버에 Request를 할당하는 오류를 수정하였다.

    참고

    JEUS 6.0 연동 시 WebtoB 4.1 SP2 Fix#0 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-36799

17.4.5.2. JSV에 Priority 설정이 적용되지 않는 버그

  • SvrType이 JSV인 경우 URI 절 또는 EXT 절에 설정한 Priority가 적용되지 않는 오류를 수정하였다.

    참고

    WebtoB 4.1 SP2 Fix#0 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-36520

17.4.5.3. SvrChkTime 주기로 Ping을 보내지 않는 버그

  • SvrChkTime과 JEUS의 <read-timeout> 이 설정되어 있고 JEUS 처리 요청시간이 <read-timeout> 보다 길어질 경우 WebtoB에서 나머지 connection에 SvrChkTime 주기로 ping을 보내지 않는 오류를 수정하였다.

    ▨ 오류 로그
    2008.12.09 00:02:27][1][0_481] [container1-260]
     [WEB-3338] worker(webtob_seobu2-hth1(210.105.40.202:9901)
    -w13:Socket[210.105.40.202:9901]) : read request error  
    <<__Exception__>>  
    java.net.SocketTimeoutException: Read timed out 
    ....

    참고

    WebtoB 4.1 SP2 Fix#0 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-36927

17.4.5.4. JEUS Response 헤더 추가 시 HTH가 비정상 종료되는 버그

  • ISAPI Filter를 이용하여 JEUS에서 보내는 Response에 헤더를 추가할 경우 HTH가 비정상 종료되는 오류를 수정하였다.

    참고

    WebtoB 4.1 SP2 Fix#0 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-42403

17.4.5.5. JEUS 처리 요청이 Timeout인 경우 HTH가 비정상 종료되는 버그

  • JEUS가 처리하는 10kbyte 이상의 POST 요청을 WebtoB로 전달 중 Timeout이 발생하면 HTH가 비정상 종료되는 오류를 수정하였다.

    • 오류 발생 시나리오

      1. JEUS로 전달되는 POST 요청을 전달

      2. 클라이언트의 POST 요청 전달 지연 발생

      3. WebtoB에서 Timeout 발생

      4. 엑세스 로그 처리 중 segfault 발생

    참고

    WebtoB 4.1 SP2 Fix#0 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-48951, IMS-48929

17.4.6. Service-Filter

17.4.6.1. ISAPI Filter의 GetHeader 처리 중 HTH가 비정상 종료되는 버그

  • Reqeust에 같은 헤더가 여러 개인 경우 ISAPI Filter의 GetHeader 처리 중 HTH가 비정상 종료되는 오류를 수정하였다.

    참고

    WebtoB 4.1 SP2 Fix#0 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-37302

17.4.7. Utility

17.4.7.1. SHMKEY 충돌하는 경우 WebtoB가 부트되는 비정상 동작 버그

  • SHMKEY가 충돌하여도 WebtoB가 실행이 되는 오류를 수정하였다. SHMKEY가 중복되는 경우 WebtoB가 실행이 안되고 오류 메시지는 콘솔에 출력하고 프로세스는 종료하도록 수정되었다 .

    ▨ 로그내용
    
    Booting WebtoB on node (linuxfc6)
    Welcome to WebtoB demo system. It will expire on 2009/12/13
    Today is 2009/10/15
    Starting WSM at Thu Oct 15 02:27:20 2009
    [2009/10/15:02:27:20] WSM-29173 F WSM0056:
     Failed to create shared memory (shmget).
     SHMKEY=53423, shmsize=71612, type=1
    Compiled configuration file=/home/webtob/wb4130/config/wsconfig,
     WEBTOBDIR=/home/webtob/wb4130/
    Please make sure that SHMEMKEY, WEBTOBDIR and PATH are set appropriately.
    1. WEBTOBDIR is set to the correct version of WebtoB.
    2. PATH includes the correct WebtoB bin directory.
    3. Re-run wscfl if WebtoB has been upgraded recently.
    4. SHMKEY shared memory segment is not used by another WebtoB instance.
     errno=17(File exists)
    BOOT0010: Failed to start process (/home/webtob/wb4130/bin/wsm).
     exec failed. status=1 errno=10(No child processes)

    참고

    WebtoB 4.1 SP2 Fix#0 이하 버전에서 발생하는 오류 현상이다.

  • 관련이슈 : IMS-52183

17.5. Packaging 변경

17.5.1. Configuration

17.5.1.1. sample.m의 파일명을 http.m으로 변경

  • Installer에 포함되는 sample.m 환경설정 파일 이름을 http.m으로 변경하였다.

  • 관련이슈 : IMS-44971

17.5.1.2. http.m에 ErrorDocument 설정 포함

  • WebtoB 설정을 쉽게 하기 위해 http.m에 HTTP Status 503에 대한 ErrorDocument 설정을 포함하였다.

    • 기본제공하는 환경설정 파일 http.m에 ErrorDocument 설정이 아래와 같이 적용되었다.

      *NODE
      webmain    WEBTOBDIR = "/usr/local/webtob",
                 ...
                 ERRORDOCUMENT = "503",
                 ...
      
      *ERRORDOCUMENT
      503                     status = 503,
                              url = "/503.html"
  • 관련이슈 : IMS-44973

17.5.1.3. http.m에 JSVPORT 설정 추가

  • Installer 설치 시 WebtoB+Servlet 설치 시에만 추가되는 NODE 절에 JSVPORT 설정을 WebtoB만 설치 시에도 추가되도록 하였다.

    • 기본제공하는 환경설정 파일 http.m에 JSVPORT 설정이 아래와 같이 적용되었다.

      *NODE
      webmain    WEBTOBDIR = "/usr/local/webtob",
                 ...
                 JSVPORT = 9090,
                 ...
  • 관련이슈 : IMS-44965

17.5.1.4. mime.types 설정 파일 추가

  • WebtoB에 MimetypesConfig 설정이 추가되어 Installer에 기본으로 제공하는 mime.types 파일을 추가하였다.

  • 관련이슈 : IMS-52637

17.5.2. General

17.5.2.1. Oss Licenses 포함

  • WebtoB에서 사용하는 Open Source Licenses를 ${WEBTOBDIR}/license/oss_licenses에 포함하였다.

    • oss_licenses 폴더에 포함된 파일 리스트

      $ /wb4130_32/license/oss_licenses>ls -l
      total 44
      -rwxrwxr-x 1 webtob1 webtob 11358 2009-12-03 16:06 Apache-LICENSE-2.0.txt
      -rwxrwxr-x 1 webtob1 webtob  1995 2009-12-03 16:06 BSD-LICENSE.txt
      -rwxrwxr-x 1 webtob1 webtob  6033 2009-12-03 16:06 OpenSSL-LICENSE.txt
      -rwxrwxr-x 1 webtob1 webtob  2633 2009-12-03 16:06 PCRE-LICENSE.txt
      -rwxrwxr-x 1 webtob1 webtob  3288 2009-12-03 16:06 PHP-LICENSE-3.01.txt
      -rwxrwxr-x 1 webtob1 webtob  1057 2009-12-03 16:06 RSA-LICENSE.txt
      -rwxrwxr-x 1 webtob1 webtob  1858 2009-12-03 16:06 ZLIB-LICENSE.txt
      -rwxrwxr-x 1 webtob1 webtob   958 2009-12-03 16:06 oss_licenses.txt
  • 관련이슈 : IMS-53824

17.5.2.2. Install 후 OS별 MAX FD 변경 방법 출력

  • WebtoB Installer 설치 후 OS별로 Max FD 변경 방법을 출력하도록 하였다.

    • OS별 Max FD 변경 방법 출력 문구

      [공통]
      
      The administrator can set the maximum number
       of file descriptors as follows.
      The machine needs a reboot in order for
       the configuration change to take effect.
      
      SUN Solaris
      -----------
      To check the current maximum number of file descriptors:
      - Run "ulimit -Hn" on the command line.
        This shows the hard limit.
      
      To permanently change the maximum number of file descriptors:
      - Open "/etc/system" with a text editor.
      - Add a new line "set rlim_fd_max=8192".
        8192 is the new maximum.  Change it as necessary.
      
      IBM AIX
      -------
      To check the current maximum number of file descriptors:
      - Run "ulimit -Hn" on the command line.
        This shows the hard limit.
      
      To permanently change the maximum number of file descriptors:
      - Open "/etc/security/limits" with a text editor.
      - Add a new line "nofiles_hard = 8192".
        8192 is the new maximum.  Change it as necessary.
      
      HP HP-UX
      --------
      To check the current maximum number of file descriptors:
      - Run "/usr/bin/ulimit -Hn" on the command line.
        This shows the hard limit.
      
      To permanently change the maximum number of file descriptors:
      - Run the "sam" tool.
      - Select "Kernel Configuration".
      - Set "maxfiles_lim = 8192".
        8192 is the new maximum.  Change it as necessary.
      
      Linux 2.4 and later
      -------------------
      To check the current maximum number of file descriptors:
      - Run "ulimit -Hn" on the command line.
        This shows the hard liit.
      
      To permanently change the maximum number of file descriptors:
      - Open "/etc/security/limits.conf" with a text editor.
      - Add a new line "*       hard      nofile     65536".
        65536 is the new maximum.  Change it as necessary.
  • 관련이슈 : IMS-44967

17.5.3. Servlet

17.5.3.1. 내장 Servlet 버전 변경

  • 내장 Servlet(내장 JEUS)의 버전이 JEUS 6.0 (Fix#4)에서 JEUS 6.0 (Fix #6)으로 변경하였다.

17.5.4. Manual

17.5.4.1. WebtoB 4.1 SP3 Fix#0 매뉴얼 작성

  • 기존 4.1 매뉴얼은 WebtoB 4.1 SP0 Fix#0 기준이며 현재까지 작성되지 않았다.

    이번 매뉴얼은 WebtoB 4.1 SP3 Fix#0 에 포함된 기능을 반영하였다.

17.5.4.2. WebAdmin에 온라인 매뉴얼 포함

  • WebAdmin에 온라인 매뉴얼을 포함하였다. 온라인 매뉴얼의 내용은 WebtoB 4.1 SP3 Fix#0 매뉴얼 내용과 동일하다.