WebtoB 5

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

1. New Functions

1.1. HTH_THREAD Section

  • HTH_THREAD Section Added

    HTH_THREAD section has been added so that HTMLS is processed by HTH worker threads instead of the HTMLS process. Since HTMLS process is no longer used, the SERVER section configuration is now optional. The HTH_THREAD section must be configured and only once. For detailed configuration information, refer to WebtoB Administrator’s Guide.

    HTH_THREAD Configuration
    *HTH_THREAD
    hworker
              WorkerThreads = 8,
              SendfileThreads = 4,
              SendfileThreshold = 32768,
              AccessLogThread = Y

    SendfileThreads and AccessLogThread items are not supported in Windows.

  • HTH_THREAD.HtmlsCompression

    The compression function is now handled by the worker thread instead of HTMLS.

    Compression is performed when the response body size exceeds the HtmlsCompressionMinSize setting (newly added).

    *HTH_THREAD.HtmlsCompression Configuration
    *HTH_THREAD
    hworker   ...
              HtmlsCompression="text/html",
              HtmlsCompressionMinSize = 1,
              ...

1.2. SERVER Options Setting

  • This setting is used to send the original user sent request to a JSV server or another server process after being processed by the FILTERS process.

    This setting can be used to consider that the request URL can be modified while the request is processed by the FILTERS process.

    *SERVER.Options Configuration
    *SERVER
    MyGroup      SvgName = jsvg, MinProc = 1, MAXProc = 10,
                 Options = "PassOriginalUriAfterFilters"
  • Related Issue: IMS-100812

1.3. SVRGROUP HEADERS Setting

  • The HEADERS setting was applied to the SERVER and NODE(VHOST) sections. From WebtoB 5 or later, a server can no longer be set as HTML type. Hence, the *SVRGROUP.Headers setting has been added to apply the HEADERS settings to specific HTML group.

    *SVRGROUP.Headers Configuration
    *SVRGROUP
    htmlg     NODENAME = "tmax", SVRTYPE = HTML, Headers = "header1",
              ...
    *HEADERS
    header1   ACTION="AddRequest",
              FieldName="ADDHEADER1",
              FieldValue="QMC_Test_Header1",
              RegExp="!html$",
              StatusCode=""

1.4. LOGLEVEL RotateBySeconds Setting

  • The tracelog was created per process which was difficult to manage when the file size grew. Now the *LOGLEVEL.RotateBySeconds can be used to specify the interval to create an additional log file.

    *LOGLEVEL.RotateBySeconds Configuration
    *LOGLEVEL
    .hth      Level = "trace",
              RotateBySeconds = 300 (default: 300)
              ...

1.5. PROXY_SSL CertificateChainFile Setting

  • The CertificateChainFile setting has been added to the PROXY_SSL section to be able to create a chain. To authenticate the internal server certificate, the CertificateChainFile can be configured in the PROXY_SSL section as follows:

    PROXY_SSL.CertificateChainFile Configuration
    *PROXY_SSL
    reverseSsl Verify=2,
               VerifyDepth=3,
               CertificateChainFile="$(WEBTOBDIR)/ssl/CHAIN.crt",
               CACertificateFile="$(WEBTOBDIR)/ssl/CA.crt",
               CertificateFile="$(WEBTOBDIR)/ssl/public.crt",
               CertificateKeyFile="$(WEBTOBDIR)/ssl/private.key",
               Protocols="-SSLv2, -SSLv3",
               RequiredCiphers = "HIGH:MEDIUM:!SSLv2:!PSK:!SRP:!ADH:!AECDH:!EXP:!RC4:!IDEA:!3DES"
  • Related Issue: IMS-107342

1.6. Thread Settings and Statistics in wsadmin

  • A command that displays HTH_Thread state and stats has been added to wsadmin (wswebadmin).

    wsadmin > HTH_Thread Information Output Command
    cfg -t : view HTH_THREAD properties
    st -t : statistics of each HTH threads
    st -T : statistics of HTH threads group

1.7. HTH Monitoring Function in WSM

  • Alivecheck for HTH can be set with the newly added NHthChkTime setting that is used to restart HTH when there is no reply for two consecutive attempts.

    *DOMAIN.NHthChkTime Configuration
    *DOMAIN
            ...
            NHthChkTime = 30, (default: 30)
            ...

1.8. Term License Check

  • Add due date check for term licenses.

1.9. WebDAV Function

  • Added the WebDAV (Web Distributed Authoring and Versioning) function.

    Documents and files on the server can be edited and managed by adding methods in the NODE(VHOST) section by using extended HTTP protocol. WebtoB supports PUT, DELETE, COPY, MOVE, MKCOL, PROPFIND methods. Excluding LOCK/UNLOCK and PROPPATCH, a method can be disabled. For more information, refer to RFC-4918.

    WebDAV Configuration
    *VHOST
    vhost1    ...
              Method = "GET, POST, HEAD, OPTIONS, PROPFIND, PUT, DELETE, MKCOL, COPY, MOVE"
                     (default:"GET, POST, HEAD, OPTIONS")
              ...

    This is only supported in the Enterprise Edition License.

  • Related Issue: IMS-82239

1.10. CA SiteMinder Filter

  • Added a module (so) to the FILTER section to integrate CA SiteMinder, an SSO solution, with the Policy Server and to authenticate and authorize users to access protected Web resources.

    FILTER filters Configuration
    *FILTER
    sm_filter     RealPath = "$(WEBTOBDIR)/config/filter/wbSmISAPI.so"
    
    *SVRGROUP
    htmlg         SVRTYPE = HTML
    jsvg          SVRTYPE = JSV
    filterg       SVRTYPE = FILTER, Filter = "sm_filter"
    
    *SERVER
    MyGroup       SVGNAME = jsvg, MinProc = 5, MaxProc = 10
    filters       SVGNAME = filterg, MinProc = 1, MaxProc = 20
    
    *URI
    testuri       Uri= "/testuri/", SvrType = JSV
    
    *EXT
    fcc           MimeType = "text/html", SvrType = JSV

    This is only supported in the Enterprise Edition License.

  • Related Issue: IMS-92139

1.11. TLS Extension - SNI

  • In previous versions, split ports or multi-domain certificates were used to service 2 certificates through a single port. SNI function, an extended TLS function, has been added to enable servicing multiple domains through a single port.

    Servicing 2 Domains via a Single Port
    *VHOST
    vhost1         DOCROOT   = "C:/TmaxSoft/WebtoB5.0/vdocs1",
                   NODENAME  =  "tmax",
                   HOSTNAME  = "192.168.0.0",
                   IndexName = "index.jsp",
                   ServiceOrder = "ext,uri",
                   #KeepAlive = N,
                   PORT = "7410",
                   SSLFLAG = Y,
                   SSLNAME = "ssl1"
    vhost2         DOCROOT   = "C:/TmaxSoft/WebtoB5.0/vdocs1",
                   NODENAME  =  "tmax",
                   HOSTNAME  = "192.168.0.0",
                   HostAlias = "vhost2.tmax.co.kr",
                   IndexName = "index.jsp",
                   ServiceOrder = "ext,uri",
                   PORT = "7410",
                   SSLFLAG = Y,
                   SSLNAME = "ssl2"
                   ...
    *SSL
    ssl1            CertificateFile = "C:/TmaxSoft/WebtoB5.0/ssl/server.crt",
                    CertificateKeyFile = "C:/TmaxSoft/WebtoB5.0/ssl/server.key",
                    CertificateChainFile =  "C:/TmaxSoft/WebtoB5.0/ssl/chain.crt",
                    RequiredCiphers = "AES256-SHA",
                    PassPhraseDialog="exec:C:/TmaxSoft/WebtoB5.0/ssl/pass.bat"
    ssl2            CertificateFile = "C:/TmaxSoft/WebtoB5.0/ssl/server2.crt",
                    CertificateKeyFile = "C:/TmaxSoft/WebtoB5.0/ssl/server2.key",
                    CertificateChainFile =  "C:/TmaxSoft/WebtoB5.0/ssl/chan2.crt",
                    RequiredCiphers = "RC4-MD5",
                    PassPhraseDialog="exec:C:/TmaxSoft/WebtoB5.0/ssl/pass.bat"
    Testing Method
    >wbssl s_client -connect 192.168.0.0:7410 -servername vhost2.tmax.co.kr
    RESULT> CONNECTED(00000160)
     ...
     New, TLSv1/SSLv3, Cipher is RC4-MD5
     Server public key is 1024 bit
     Secure Renegotiation IS supported
     Compression: NONE
     Expansion: NONE
     SSL-Session:
         Protocol  : TLSv1.2
         Cipher    : RC4-MD5

1.12. Embedded Servlet Engine Version Upgrade

  • The Embedded Servlet Engine has been upgraded from JEUS 6 Fix#9 to JEUS 7 Fix#4.

1.13. Added Engine Name to the Register Message from JEUS

  • The command, "wsadmin > st -j", displays the jengineid as its base64 decoded value or the jenginename* received from JEUS.

This is supported in JEUS 8.

1.14. WSM Termination Triggers Windows Service Termination

  • Windows service performs alive checks for WSM process at 30 second intervals, and executes wsdown and terminates the service when WSM is unresponsive.

  • Related Issue: IMS-107294

1.15. Response Size Based Compression

  • Compression is performed when the Content-Length (or file size) exceeds the *SERVER.CompressionMinSize setting, if specified.

    *SERVER.CompressionMinSize Configuration
    *SERVER
    cgi       SvgName = cgig, MinProc = 2, MaxProc = 10,
              CompressionMinSize = 1, Compression = "text/html"

    This is the same as the *HTH_THREAD.HtmlsCompressionMinSize setting.

  • Related Issue: IMS-107724

1.16. Additional AccessLog Format Settings

  • Added common and combined formats specified with aliases in addition to the default formats in the AccessLog File Format configuration. For detailed configuration information, refer to WebtoB Administrator’s Guide.

    Aliases for AccessLog File Format
    default: "%h %t \"%r\" %s %b %D"
    common: "%h %l %u %t \"%r\" %s %b"
    combined: "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\""
  • Related Issue: IMS-100553

2. Changed Functions

2.1. Log Format Update

  • Unified the time log level and other items of syslog and errorlog to Tmax standard log format.

    The following is an example of an error log.

    Error Log
    [2016-03-22T13:33:25] [CLIENT(192.168.0.0)] [E] [ERR-00122] Worker error. {DELETE, err=[ERR-05065] A request URI does not exist.,
    realpath=C:/TmaxSoft/WebtoB5.0/docs/webdav_dir/copy_method/non_test.txt}

2.2. Removal of Unnecessary Settings

  • The following unnecessary settings, including MaxPersistentServerConnections, have been removed from WebtoB 5.

    Removed Settings
    *NODE.MaxReverseProxyKeepAliveServerConnections
    *NODE.ReverseProxyRequestSlackBufferSize
    *NODE.AccessLogThroughWSM
    *NODE.UseInternalHtmls
    *NODE.InternalHtmlsReadSize
    *NODE.InternalHtmlsMaxCacheSize
    *NODE.InternalHtmlsAsyncReadThreads
    *NODE.InternalHtmlsAsyncReadThreshold
    *NODE.InternalHtmlsSendFileThreshold

2.3. Filter Processing Update

  • Since HTMLS process is no longer used, the Filter processing performed by HTMLS before static file processing is now handled by the FILTERS process.

2.4. Changed Default RequiredCiphers Value for SSL

  • The default value for RequiredCiphers has been changed as follows:

    • Before

      RequiredCiphers = "HIGH:MEDIUM:!SSLv2:!PSK:!SRP:!ADH:!AECDH:!EXP"
    • After

      RequiredCiphers = "HIGH:MEDIUM:!SSLv2:!PSK:!SRP:!ADH:!AECDH:!EXP:!RC4:!IDEA:!3DES"
  • Related Issue: IMS-103369

2.5. Changed Max FD Value

  • The FD value has been changed to increase the maximum number of concurrent clients that can be handled by a single HTH process.

    Changed FD Value
    * Unix 8k(8192) -> 16k(16384)
    * Window 2k(2048) -> 4k(4096)

2.6. WBSSL Version Upgrade

  • WBSSL has been upgraded from "WBSSL 2.2.2" to "WBSSL 2.2.4_B4".

    The upgraded version includes a replacement library for OpenSSL with an enhanced SSL/TLS communication protocol to help resolve security vulnerabilities in OpenSSL.

    WBSSL Version Upgrade
    $>wbssl version
    WBSSL 2.2.4 B4 29 Mar 2016
  • Related Issue: IMS-106426

2.7. Changed Content-Length Response Header Variable to 64bit for Reverse Proxy

  • When using reverse proxy, since the Content-Length Response Header is parsed and saved to 4bytes variables, an error occurs when the Content-Length exceeds 2GB which is incorrectly recognized as a negative value.

  • Related Issue: IMS-107204

3. Bug Patches

3.1. Fix for Core Dump during Pipeline Request Processing in Reverse Proxy

  • Fixed the issue so that the client remains in the RUN state while connecting to the backend server for frontend processing of a pipelined client request.

  • Related Issue: IMS-102899

3.2. Fix for Increasing CPU Usage for a Large Request with a Non-HTML IndexName

  • Fixed the issue that occurs when the *NODE(VHOST).IndexName is set to index.php and a "POST/" request with a large body is received. This causes repeated waits to occur because the redirect message cannot be saved in the buffer.

  • Related Issue: IMS-106208

3.3. libexpat.lib Update

  • Fixed the issue of wsboot failure caused by the XML Parser Library libexpat.lib(dll) that has been added below lib/(bin) for WebDAV support. Updated libexpat.lib(dll) for Windows x86 and AIX x32.

  • Related Issue: IMS-105404

3.4. Fix for PHPS/CGIS Core Dump When Adding 'Expires' to Response Header

  • Fixed the issue of a core dump that occurs while receiving the request uri to create an 'Expires' Response header.

  • Related Issue: IMS-105697

3.5. Fix for the 0 Status Code in the Accesslog When Filter Generates a 302 Response

  • Fixed the issue of the Response status code of the Accesslog being set to 0 while the client successfully receives the 302 response when the Filters process generates a 302 response.

3.6. Fix for Core Dump When Terminating a Filters Process

  • Fixed the issue of a core dump that occurs when terminating a Filters process using wsdown.