WebtoB 5 Fix#1

This chapter describes the changes and additions in functionality and bug patches in WebtoB 5 Fix#1.

1. New Functions

1.1. RPAFHeader in the NODE Section

  • If *NODE.RPAFHeader is set to "X-Forwarded-For", a remote IP address that has been modified can be set to a host IP address, not an IP address of a proxy server. A remote IP address in an HTTP request that is sent to WebtoB can be modified after being processed by a proxy server.

    *NODE.RPAFHeader Configuration
    *NODE
    webtob      WEBTOBDIR = "/home/webtob_4191",
                SHMKEY = 54800,
                RPAFHeader = "X-Forwarded-For"
  • Related Issue: IMS-108918

1.2. USERLOGFORMAT Section

  • The USERLOGFORMAT section has been added so that a common log format can be set.

    A log format was set for each VHOST even through multiple VHOSTs use the same format. Now, a user can set a common log format in the USERLOGFORMAT. The log format can be used in the LOGGING section.

    *USERLOGFORMAT Configuration
    *LOGGING
    log1        Format = "format1", FileName = "C:/TmaxSoft/WebtoB4.1.9.1/log/access.log",
                Option = "sync"
                ...
    *USERLOGFORMAT
    format1     Format = "%h %l %u %t \"%r\" %s %b"
  • Related Issue: IMS-108609

1.3. TimeoutStatus in the NODE Section

  • *NODE.TimeoutStatus has been added to modify the HTTP status code if a timeout occurs. The 500 error occurred when a timeout occurred. Now, the HTTP status code will be modified to a code set in *NODE.TimeoutStatus.

    *NODE.TimeoutStatus Configuration
    *NODE
    webtob      WEBTOBDIR = "/home/webtob_4191",
                SHMKEY = 54800,
                Timeout = 300,
                TimeoutStatus = 512              # 500 (511-599)
  • Related Issue: IMS-110816

1.4. CacheMaxCompressSize in the NODE Section

  • *NODE.CacheMaxCompressSize has been added to cache a compressed reply in memory.

    *NODE.CacheMaxCompressSize Configuration
    *NODE
    webtob      WEBTOBDIR = "/home/webtob_4191",
                SHMKEY = 54800,
                CacheMaxCompressSize = 8192              # 0 (0-)
  • Related Issue: IMS-111775

1.5. Disk Caching

  • Static files can be cached in a local disk. When service resources such as NAS are used as network devices, static files are stored in memory, but memory is insufficient.

    *DISK_CACHE Configuration
    *NODE
    webtob      WEBTOBDIR = "/home/webtob_4191",
                SHMKEY = 54800,
                DiskCache = dc1
    
    *DISK_CACHE
    dc1
        CacheRoot = "cache/node",
        DirLevels = 5,
        MinFileSize = 8193,
        MaxFileSize = 100000000,
        RefreshTime = 3600
  • Related Issue: IMS-105985

1.6. Expiration Date for the Cloud License

  • The expiration date for the Cloud license is now checked.

2. Updated Functions

2.1. WebAdmin Enhancements

  • WebAdmin has been improved for user convenience.

    The following functionalities are now enabled: dynamic configuration and control, view for the differences between before and after a configuration modification, and automatic update for a set time interval. For more information, refer to WebtoB WebAdmin Guide.

2.2. "%S" in the Accesslog Format

  • The "%S" setting has been added to record HTTP or HTTPS according to a connection.

    "%S" Configuration in Accesslog Format
    *LOGGING
    log1        Format = "%h %S %l %u %t \"%r\" %s %b",
                FileName = "C:/TmaxSoft/WebtoB4.1.9.1/log/access.log",
                Option = "sync"
  • Related Issue: IMS-110768

2.3. Server Name in the URI Section

  • A server name that is set in *URI.SvrName can be modified dynamically with the set wsadmin command.

    Dynamically Modifying *URI.SvrName
    $>wsadmin
    --- Welcome to WebtoB Admin (Type "quit" to leave) ---
    
    $$1 tmaxs4 (wsadm) [2016/08/24:18:24:10]: set -u uri1 svrname MyGroup2       # set -u [uri name] svrname [ServerName]
    new value (MyGroup2) is set for section = URI, name = uri1, fld = svrname
    
    $$2 tmaxs4 (wsadm) [2016/08/24:18:24:23]: cfg -u
        URI(0): Name = uri1,
             URI = "/jsvtest/",
             SvrType = JSV,
             SvrName = MyGroup2,
             SCGI = N,
             FCGI = N,
             Match = prefix,
             Priority(pr) = 50,
             GotoEXT = N,
             StopIfNoEXT = Y,
             Ext = ""
    
        URI(1): Name = uri2,
             URI = "/jsvtest2/",
             SvrType = JSV,
             SvrName = MyGroup,
             SCGI = N,
             FCGI = N,
             Match = prefix,
             Priority(pr) = 50,
             GotoEXT = N,
             StopIfNoEXT = Y,
             Ext = ""
  • Related Issue: IMS-114135

2.4. AUTHENT and Other Sections in wswebadmin

  • The AUTHENT, ERRORDOCUMENT, EXPIRES, DIRINDEX, HEADERS, FILTER, and PRECEDING_COMMAND sections have been added in wswebadmin to support WebAdmin. For more information, refer to WebtoB Administrator’s Guide.

2.5. Memory Optimization in HTH Caching

  • The default maximum size of the URLs that are dynamically allocated to memory with malloc() is 2 KB. Memory usage increases as the number of URLs that are cached increases. To decrease memory usage for cached requests and replies, the memory optimization function has been added.

  • Related Issue: IMS-114546

3. Changed Functions

3.1. WBSSL Upgraded

  • WBSSL has been upgraded from "WBSSL 2.2.2" to "WBSSL 2.3.0_B0".

    $>wbssl version
    WBSSL 2.3.0 B0 20 May 2016
  • Related Issue: IMS-106426

3.2. Recorded Data When Using "%c" Accesslog Format

  • When the "%c" accesslog format is used, "hc" or "hm" was recorded. The recorded data has been updated as follows:

    • Before update

      "hth cache" -> "hc": A reply is sent from HTH cache.
      "hth htmls" -> "hm": A reply is sent from internal htmls.
    • After update

      "mem cache" -> "hc": A reply is sent from internal cache.
      "disk cache" -> "dc": A reply is sent from disk cache.
      "sendfile" -> "sf": A reply is sent from Sendfile
      "sendfile/disk cache" -> "sf/dc": A reply is Sendfile and sent from disk cache.
      "remote" -> "hm": A reply is sent remotely.

3.3. Expat Library Name

  • expat.lib(dll) under lib/(bin) was used as an XML parser library to support WebDAV. The library has been renamed to wbexpat because the library name can be in conflict if another middleware uses a library with the same name. (expat.lib is used and it is not renamed in Windows.)

  • Related Issue: IMS-113202

4. Bug Patches

4.1. Fix for the Filters Processes When Adding a Specific Header to a Request Header

  • Fixed the issue so that a Filters process is not shut down. A Filters process can be shut down if a request header does not exist. A request header does not exist if a client ends a connection when a Filters process adds a specific header to the request header.

4.2. Fix for the FlowControl Failure When ReverseProxy is Used as a Web Socket

  • Fixed the issue of the FlowControl failure where reading data is pending and the data is no longer read when the speed of the client that sends data is faster than that of the server that reads the data if ReverseProxy is used as a web socket.

  • Related Issue: IMS-111061

4.3. Fix for not Applying the Filters Process' Processing Results When a JSV Response is Compressed

  • Fixed the issue so that the processing results of the filter process for set-cookie is applied when a JSV response is compressed.

4.4. Fix for the Issue that Occurred When Overwriting a File by Using the COPY Method

  • Fixed the issue so that "Overwrite: T" is used by default when overwriting a file by using a WebDAV function even through there is no "Overwrite: T" request header.

  • Related Issue: IMS-112412

4.5. Fix for the Issue that Occurred When Calling PROPFIND

  • Fixed the issue so that 'directory' is shown even though a response is sent with /index.html when calling PROPFIND that ends with '/' during a test by using BitKinex, a WebDAV tool.

  • Related Issue: IMS-112412

4.6. Fix for a Core Dump When Terminating a Filters Process

  • Fixed the issue so that a core dump is not created when a Filters process is terminated with wsdown.

4.7. Fix for a Core Dump or HTH Process Shut Down When Using a Reverse Proxy

  • Fixed the issue so that a core dump is not created and an HTH process is not shut down when a reverse proxy’s internal context is broken. Now the context validity is checked, and a server connection is ended when the context is invalid.

  • Related Issue: IMS-114156, IMS-113270

4.8. Fix for RPAFHeader = "X-Forwarded-For"

  • Fixed the issue so that the *NODE.RPAFHeader = "X-Forwarded-For" setting is updated. The setting was not updated because multiple clients are recognized as a single client due to a proxy.

  • Related Issue: IMS-114804

4.9. Fix for File Download

  • Fixed the issue so that a file is downloaded successfully. Downloading a file failed (usually in a mobile device) when a pipelined request arrives before a previous pipelined request is processed completely.

  • Related Issue: IMS-115259