HTTP Provider Service
The HTTP Provider Service represents a server socket that listens for client HTTP connections on the J2EE Engine. It takes care of parsing the URL of the incoming HTTP requests, dispatching them to the correct J2EE Engine’s module for processing, and returning the generated responses back to the client.
HTTP Provider Service runs on both dispatchers and servers.
Dispatcher
Property |
Description |
Default Value |
Ports |
Defines a list of ports definitions. A port definition can have the following attributes: Port: that specifies the port number; Type: that specifies the type of the port (HTTP or SSL); SocketQueue: that specifies the maximum queue length for incoming connection indications; AcceptingThreadsCount: that specifies the number of threads that listen to the server socket for incoming connections; BindAddress: that specifies the address of the server to which connections can be established only. Only the Port: and the Type: attributes are mandatory. Separate port definitions are enclosed within brackets. For more information about the syntax of the property, see Setting up HTTP Provider Service to Accept Incoming Requests in the Administration Manual. |
(Port:50000,SocketQueue:200, AcceptingThreadsCount:10, BindAddress:,Type:http) (Port:50001,SocketQueue:200, AcceptingThreadsCount:10, BindAddress:,Type:ssl) |
ProxyMappings |
Defines a comma-separated list of ports mappings. A valid mapping must contain the hostname and port, as well as the communication scheme of the host, to which the requests from the original port are to be redirected. An Override attribute is present also to force the host and port information from the request to be overridden by the relevant information from this property. For more information, see Mapping Ports in the Administration Manual. |
|
KeepAliveTimeout |
The period (in seconds) from the last server response to the client until the server shuts the client-server connection down. The value of this property is an integer. If it is set to 0 or less, there is no timeout. |
15 |
MaxRequestHeadersLength |
Specifies the maximum length of all headers in a request. The value is specified in bytes. |
16384 |
HttpTrace |
Specifies whether
the HTTP Provider Service saves traces about the HTTP requests and responses
it served. By default, these traces are saved to req_resp.trc file. It is located in the <SAP_install_dir>\<system_name>\ |
disable
The possible values of this property are disable, enable, enableHeaders, enableHex and enableHexHeaders. When enable is set, the service logs information about the full requests and responses in plain text format. When enableHex is set, the request is logged in hexadecimal format. If enableHeaders or enableHexHeaders is set, only the headers of the requests and responses are logged (in plain text or hexadecimal format respectively). |
MaxRequestContentLength |
Specifies the limit of length of the request body that can be accepted (that is, the value of the Content-Length header of the request must not exceed the value of this property). The request is rejected if its body exceeds the limit. The value of the property is specified in KB. |
131072 |
ReadBufferSize |
Specifies the size of the buffer that the HTTP Provider Service running on the Java dispatcher uses to send the request body to the HTTP Provider Service on the server processes. The value of the property is specified in bytes. |
32768 |
ServiceUnavailableResponse |
Specifies the directory path to the page that is returned as response to the client when no server is connected to the Java dispatcher. If the value of this property is an empty string, then the “Dispatcher running but no server connected” error message is returned to the client. |
|
UseServerHeader |
Specifies whether the Server header is sent with the response. It contains the name of the server that responds to the request. |
true |
HeterogeneousLoadBalancing |
Enables heterogeneous load balancing – if a server process is stopped and requests are sent, they are switched to a running server element. |
true |
SocketTcpNoDelay |
This property is used to enable/disable the Nagle’s algorithm for communication through TCP sockets. It is equivalent to the standard TCP_NODELAY option of the java.net.Socket class. For more information, refer to the Java 2 Standard Edition, version 1.4 API documentation at java.sun.com. This property takes Boolean values. Value of true means the TCP_NODELAY option is set. |
true |
LoadBalancingCookiePrefix |
Specifies the prefix used in the name of the load balancing cookie on the J2EE Engine.
We recommend that you do not change the default value of this property. Change its value only if you are experiencing one of the following cases: ● You are using a third-party load-balancer that needs a different prefix ● You are using a mixed cluster scenario. This property is for backward compatibility with older versions of J2EE Engine and Web Dispatcher. For more
information about the load balancing cookie name and value syntax, see
|
saplb_ |
HttpMonitoringCacheTimeoutMillis |
Specifies a timeout period for which HTTP-monitored data is cached. If the data is requested after the timeout has passed, it is polled from the server again. The timeout is set in milliseconds.
Be careful that you do not specify the timeout period as too long (thus risking inadequate data), or too short (thus generating higher load for the server). |
1500 |
ServerReadRequestBodyChunkTimeoutMillis |
Specifies the time period that the Java dispatcher waits for the server process to receive the data chunk of the request body. The timeout is set in milliseconds.
Be careful that you do not configure a timeout period that is too short as this can cause requests that are sent in large chunks of data to fail. |
600000 |
HttpTraceTime |
If you enable this property (by setting the value to true), information about the client connection ID and the response time (in milliseconds) for this request is added to the defaultTrace.trc file for the Java dispatcher. By default, this information is not logged. |
False |
ServletsLongDataTransferCallbackSize |
Specifies the size of the parts in which the servlet/JSP responses are sent to the client by the dispatcher when using the Long Data Transfer mechanism. For more information, see Long Data Transfer Mechanism. The value of this property is specified in bytes. A value of -1 turns that property off, thereby the Long Data Transfer communication remains controlled only by the ServletsLongDataTransferLimit and the ServletsLongDataTransferTimeout properties. |
4096 |
SessionTableTimeout |
This property sets
the timeout for keeping the mapping between the JSESSIONID and server process
ID entries in the temporary session table on the Java dispatcher. The
temporary session table is used to provide support for “sticky”
sessions in cases when parallel initial
requests are performed from the same HTTP client. For more information on this
feature, see
The value of this property is specified in seconds. The default value of -1 disables the use of the session table at all. |
-1 |
DelayedServerNodeRegistration |
Controls when a server process is available for load balancing of client requests. If the property is set to true, then the Java dispatcher sends client requests only to server processes that are in Running state (the state is visible in the SAP Management Console). By default (value false), the Java dispatcher can send client requests to server processes that are in Starting applications state. In this case, however, there is a chance that the client gets a 503 Application stopped error response, if the requested application has not been started by that time.
We recommend that this property is set to true on productive systems. |
false |
DisableUrlSessionTracking |
When the property DisableURLSessionTracking is set to true, the URL session tracking is disabled for all applications on the AS Java and session tracking is possible only via cookies. Those applications that are configured to use URL session tracking only (via the url-session-tracking element in the additional web deployment descriptor) will not support sessions anymore and after restart of the AS Java they will not start. The start of such newly deployed applications will fail on all server processes. More information
about the url-session-tracking element:
|
false |

For more information about calculating the HTTP and HTTPS ports, see J2EE Engine Ports.
Server
Property |
Description |
Default Value |
LogCLF |
Enables or disables logging in Common Log Format – standard format for logging HTTP requests and responses. |
false |
FileBufferSize |
This is used for downloading or uploading static files using HTTP. We recommend that you increase the file buffer size when transferring large files so that fewer sets of data are transmitted. The value of this property is specified in bytes. The minimum value you can set it to is 2048 bytes. |
4096 |
ServletsLongDataTransferLimit |
Specifies the limit of the length of servlet (or JSP) responses, above which the Long Data Transfer mechanism is activated to transfer the response messages. The value of this property is specified in bytes. |
131072 |
ServletsLongDataTransferTimeout |
Specifies the period of time that the server waits for the dispatcher to send the callback to continue sending the response data (when the response is sent using the Long Data Transfer mechanism). If the timeout period is exceeded, a runtime exception is thrown to interrupt the response message transfer. The period is specified in milliseconds. |
● For usage types DI and a combination of more than one usage types, the default value is 120000 ● For all other usage type options (single usage types different from DI), the default value is 180000 |
CacheControl |
Sets the expiration period for static files stored by client caches. It is specified in seconds. For more information about the possible values of this property, see Configuring HTTP Responses Caching by Client Caches. |
86400 |
SapCacheControl |
Sets timeout for storing responses from J2EE Engine into the ICM’s cache. It is specified in seconds. |
86400 |
MaxFileLengthForCache |
Sets a limit to the size of the file that can be written to the cache. The value is specified in bytes. |
16348 |
CacheSize |
Sets the maximum number of files that can be kept in the cache. |
1000 |
CacheTimeOut |
The period (value range from 1 to 15 seconds) until the system checks the version of all files in the cache and updates them. If it is set to 0 or less, this option is switched off. |
-1 |
ProxyServersCertificates |
A list of certificate subject DN names against which the proxy server is authorized when forwarding a client certificate to HTTP Provider Service. |
{} |
AcceptClientCertWithoutSSL |
If checked, the HTTP server accepts client certificates that are forwarded to it by the proxy server over a non-secure HTTP connection. If not checked, the proxy server must use SSL connection. |
false |
ClientCertificateHeaderName |
Specifies the name of the header that is attached to the client HTTP request. The value of this header represents the Base64 encoded public key of client certificate. |
SSL_CLIENT_CERT |
ProtocolHeaderName |
Specifies the header name that contains the name of the communication protocol used between the client and the proxy. |
ClientProtocol |
ClientCertificateChainHeaderPrefix |
Specifies the prefix of the name of the header that is used to forward the certificate chain that contains the client certificate. |
SSL_CLIENT_CERT_CHAIN_ |
ClientKeySizeHeaderName |
Specifies the name of the header that contains information about the size of the client key. |
SSL_CIPHER_USEKEYSIZE |
ClientCipherSuiteHeaderName |
Specifies the name of the header that contains information about the cipher suite that is used by the client. |
SSL_CIPHER_SUITE |
ServletInputStreamTimeout |
Specifies the time period (in milliseconds) that the server waits for the client to write data into the input stream. If nothing is written, an exception is thrown. |
180000 |
AlwaysCompressed |
Specifies a list of file extensions and HTTP messages content types that must always be compressed with gzip transfer encoding when returned as HTTP responses. |
*.htm,*.html,text/html |
NeverCompressed |
Specifies a list of file extensions and HTTP messages content types that must never be compressed with gzip transfer encoding when returned as HTTP responses. |
*.zip,*.cs,*.rar,*.arj,*.z,*.gz,*.tar,*.lzh,*.cab,*.hqx,*.ace,*.jar,*.ear,*.war,*.css,*.pdf,*.js,*.gzip,*.uue,*.bz2,*.iso,*.sda,*.sar,*.swf,image,application/x-compressed,application/zip,application/x-gzip,application/x-zip-compressed,application/pdf,application/x-shockwave-flash,content/unknown,text/JavaScript,application/x-javascript,[unknown] |
CompressedOthers |
Determines whether to compress or not HTTP responses that contain files or have content types that do not appear in the AlwaysCompressed and NeverCompressed lists. |
true |
MinimumGZipLength |
Specifies the minimum length of the HTTP response so that it is compressed using gzip transfer encoding. Response messages that are shorter than the value of this property are never compressed. The length is specified in bytes. |
8192 |
Mime |
Defines the list of supported MIME types. |
|
UseServerHeader |
Specifies whether the Server header is sent with the response. It contains the name of the server that responds to the request. |
true |
MinFileLengthForLongData Transfer |
Specifies the response file length. If it exceeds the default value, then the response is returned as Long Data Transfer. The value of this property is specified in bytes. |
204800 |
InputBufferMaxSize |
Specifies the upper limit of the input stream read buffer used by the HTTP Provider Service on the server process. The size is specified in KB. |
8192 |
InputBufferMinSize |
Specifies the lower limit of the input stream read buffer used by the HTTP Provider Service on the server process. The size is specified in KB. |
1024 |
ZoneSeparator |
Specifies the string that is used to separate the zone identifier from the application alias. This string can be of an arbitrary length. |
~ |
InferNames |
Specifies a list of Web pages, one of which must be returned to the client if a Web directory has been requested (not a specific web resource contained in it). Use a comma to separate multiple pages in the list. |
{index.html,index.htm,default.html, default.htm} |
LogResponseTime |
Specifies whether the response time to each request is logged. The log output is saved at the end of the line for the corresponding request in the default HTTP log file responses.trc.
Note that logging the response time is not possible if you have enabled logging in Common Log File format. The time for responding to a request is measured from the moment of parsing the request to the moment the processing thread ends. By default (value false), the response time is not logged. |
false |
ClientIpHeaderName |
Specifies the name of the header holding the IP address of the HTTP client that sent the request. |
|
LoadBalancingCookiePrefix |
Specifies the prefix used in the name of the load balancing cookie on the J2EE Engine.
We recommend that you do not change the default value of this property. Change its value only if you are experiencing one of the following cases: ● You are using a third-party load-balancer that needs a different prefix ● You are using a mixed cluster scenario. This property is for backward compatibility with older versions of J2EE Engine and Web Dispatcher. For more
information about the load balancing cookie name and value syntax, see
|
saplb_ |
GZipOutputStreamImplementation |
Specifies the fully-qualified name of the class containing the implementation of an output stream for writing GZip compressed data. If the value is an empty string (default value), then the java.util.zip.GZIPOutputStream is used. For more information about configuring the use of a custom GZip implementation on the J2EE Engine, see SAP Note 746666. |
|
LogHeaderValue |
This property specifies an HTTP header name, the value of which is logged in the HTTP access log file if this header is present in the request. This property has no effect if you use Common Log File format. The value of the property is a string that represents the name of the HTTP header. The value is not case-sensitive.
If the value of this property is set to X-CorrelationID, then a special trace file is created. For more information about the behavior when the X-CorrelationID header is used, see HTTP Access Logging Specifics When Using Solution Manager Diagnostics.
If you assign value test to this property, and the HTTP request contains a header with name test and value testvalue, then you find the testvalue added to the log entry for this request in the corresponding log file. |
|
MaximumCompressedURLLength |
This property specifies whether HTTP responses are compressed using GZip format based on the size of the request URL. If the size of the request URL (in bytes) exceeds the value of this property, then the response is not compressed. The value of the property is specified in bytes. If the value is -1, then request URL size is not taken into account when determining whether or not the response must be compressed. |
-1 |
GroupInfoLocation |
This property specifies the location of the text file containing the definition of the logon groups that the SAP Web Dispatcher uses for load balancing. The value of this property is the absolute path to the text file. This path must be the same as the one specified by the SAP Web Dispatcher’s profile parameter wdisp/group_info_location. For more
information about the syntax of the text file with logon groups definitions,
see
Configuring this property makes sense only if you also configure the UrlMapLocation property as well.
You have to restart your Web AS Java instance so that the new value of this property takes effect. |
|
UrlMapLocation |
This property specifies the location of the text file containing URL mapping information that the SAP Web Dispatcher uses for load balancing. The value of this property is the absolute path to the text file. This path must be the same as the one specified by the SAP Web Dispatcher’s profile parameter wdisp/url_map_location. For more
information about the syntax of the text file containing the URL mapping
information, see
It only makes sense to configure this property if you configure the GroupInfoLocation property as well.
You have to restart your Web AS Java instance so that the new value of this property takes effect. |
|
UrlSessionTrackingForAllCookies |
This property controls the behavior of the HttpServletRequest.getCookies() method in cases when the requested Web application is configured to use URL rewriting only (that is, the <url-session-tracking/> tag is present in the web-j2ee-engine.xml). If the value of the property is false (default value) and the client request contains cookies other than the J2EE Engine-specific ones, then the getCookies() method returns an array of those cookies. If the value of the property is set to true, then the getCookies() method always returns null. |
false |
LogIsStatic |
Specifies if information about the type of the requested resource (static file or dynamic resource) is logged to the default HTTP access log file responses.trc. By default (value of false), no such information is logged. If you set the value of this property to true, then the following information is added to the usual information being logged for the corresponding HTTP request: ● s[t] if the requested resource is a static file; ● s[f] if the requested resource is a dynamic one (such as a servlet, or JSP). |
false |
DetailedErrorResponse |
By default, the client browser displays short error messages in case there is an error in executing the requested dynamic resource. If you set the value of this property to true, you get the exception stack trace displayed in the browser in addition to the error message.
Be aware that switching the detailed error messages on reveals information that might be considered security-sensitive, especially on productive systems. For example, displaying information about the physical location of a JSP file on the file system. Therefore, you should carefully consider your security policy when configuring this property. |
false |
LogRequestResponseHeaders |
If this property is set to true, all HTTP headers of the requests and responses are logged in the default HTTP access log file. By default (value of false), no additional information is logged. |
False |
SystemCookiesDataProtection |
When this property is set to true, the use of HttpOnly attribute for system cookies is enabled. If the HttpOnly attribute is set, certain browsers return empty value on JavaScript requests to access the system cookies. For backward compatibility, by default the HttpOnly attribute is not enabled for use in system cookies.
|
false |
SystemCookiesHTTPSProtection |
When the property SystemCookiesHTTPSProtection is set to true, the Secure attribute is added to the session (JSESSIONID) and the load balancing (sapdb_) cookies. Cookies marked as secure are transmitted only via HTTPS (secured communication channel). In this case, it is obligatory that you enable SSL since these cookies are not transferred via plain HTTP and session tracking on HTTP will not work. |
false |
Runtime
Property |
Description |
Default Value |
Root Directory |
The root directory for this host. The installation program does not create the main directory for the HTTP files automatically. It must be created additionally, or the path must be redirected to an existing directory. |
../../docs |
Start Page |
This page is displayed when the browser establishes a connection with the host. The server searches the root directory for a file that appears in the Welcome Files list. The first match found is returned to the client browser. |
|
Log Responses |
Enables or disables logging responses on a particular virtual host. By default, the indicator is checked. The log file where the logs are saved depends on whether or not HTTP Provider Service uses Common Log File Format. For more information, see Logging in Common Log File Format in the Administration Manual. |
|
Use Cache |
If this indicator is set, cache is used for static data. By default, the indicator is checked. |
|
Keep Alive |
Specifies whether a connection is “kept alive” or is closed each time. By default, the indicator is checked. |
|
Directory List |
If the default Welcome file cannot be found in the current directory, the server returns a list of directories. By default, the indicator is not checked. |
|
See also:
HTTP Provider Service in the Administration Manual.