Show TOC Start of Content Area

Background documentation HTTP Provider Service  Locate the document in its SAP Library structure

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>\
<instance_name>\j2ee\cluster\
dispatcher\log\services\http
directory.

disable

Note

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.

Recommendation

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 J2EE Engine Cookies in the Development Manual.

 

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.

Note

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.

Note

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 Session Support for Concurrent Requests.

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.

Recommendation

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: Configuring Session Tracking with URL Rewriting Only

false

This graphic is explained in the accompanying text

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

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.

Recommendation

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 J2EE Engine Cookies in the Development Manual.

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.

Caution

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.

Example

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 the SAP Web Dispatcher.

Note

Configuring this property makes sense only if you also configure the UrlMapLocation property as well.

Note

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 Configuring the SAP Web Dispatcher.

Note

It only makes sense to configure this property if you configure the GroupInfoLocation property as well.

Note

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.

Caution

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.

Recommendation We recommend that you manually enable this attribute after verifying that your applications do not rely on reading system cookies on the client side.

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.

 

End of Content Area