Monday, September 19, 2016

ICM timeout parameters


icm/conn_timeout:

This parameter determines the maximum length of time for creating a
connection to an external partner (in milliseconds).
If this length of time is exceeded, the attempts to create a
are terminated and an error message returned to the caller.

icm/conn_timeout is used to set the timeout when setting up the connection. If the timeout is exceeded, an error page is generally displayed with the information "404 Resource not found" "Partner not reached".
Therefore, exceeding the icm/conn_timeout does not lead to a "500 Connection timed out" error message


icm/keep_alive_timeout:

If no communication takes place over an existing connection for more
than a certain length of time, the connection is closed by ICM. The
standard value for the timeout is set with this parameter, but can
overridden for each service (see below).

A value of -1 deactivates the timeout. The connection is then never
closed by the ICM.
Caution:
Note that the user context in the work process is not closed after
this period of time. That timeout is defined using the profile
parameter %%rdisp/plugin_auto_logout%%.


Dependent parameter:

you can override the standard value using the parameter
icm/server_port_<xxx>


icm/server_port_<xxx>

You can use this parameter to specify the service/port and the
keepalive timeout to be used for a protocol. You can optionally
specify a service name or the port number.
You can also set the following options for the parameter:
- Timeout Options: There are two timeouts that can be configured:
  The network timeout TIMEOUT and the processing timeout
  PROCTIMEOUT. The period is specified with the parameter value
  <timeout> (in seconds). The value -1 deactivates the timeout.
  If the option is not set, the value is defined by the parameter
  %%icm/keep_alive_timeout%%.
  (Note that the user context in the work process is not closed
  after this period of time. This timeout is defined by the profile
  parameter %%rdisp/plugin_auto_logout%%.)

  The processing timeout PROCTIMEOUT defines how long the ICM waits
  for the response from the backend (AS ABAP or AS Java) before it
  returns an error (ETIMEOUT) to the client.
- Use an external binding program: To bind ports < 1024 under UNIX,
  extend this parameter using the (optional) specification
  EXTBIND=1. The icmbnd then binds the port and transfers it to the
  ICM.
- Do not bind port to all host names: You can use the optional
  parameter HOST=<host name or IP address> to specify that the port
  is not to be bound to all host names (default), but only to those
  specified.


- X.509 certificate: You can use the optional parameter VCLIENT to
  specify whether the client must produce an X.509 certificate if
  SSL is used.
  There are three levels of verification in total (0-2):
   0: No certificate is required, and the server does not request a
      certificate.
   1: The server requests that the client transfers a certificate.
      If the client does not send a certificate, authentication is
      performed using a different method (such as Basic)
      (default setting).
   2: A client must transfer a valid certificate to the server.
      Otherwise, access is denied.
This server-specific value overrides the value set with the
parameter %%icm/HTTPS/verify_client%%.


The processing timeout is set for individual services using the following parameter:
icm/server_port_ < n > = ...,PROCTIMEOUT=< s >
The keepalive timeout can be set globally for all services of the ICM using the parameter icm/keepalive_timeout.
You can also set it for individual services by using the following parameter:
icm/server_port_ < n > = ...,TIMEOUT=< s >
If you set this parameter, it overwrites parameter icm/keepalive_timeout for the specified service.
Even if the ICM serves as client for a request, the TIMEOUT and PROCTIMEOUT parameters of icm/server_port_ < n > control the timeouts for the relevant protocol, provided that you have set TIMEOUT or PROCTIMEOUT. However, it is possible for a client to explicitly set the timeout in IF_HTTP_CLIENT, method SEND.

If you have not set the PROCTIMEOUT parameter, TIMEOUT (or icm/keepalive_timeout) defines both the processing timeout and the keepalive timeout. In addition, as of release 6.40, the keepalive timeout is limited to a maximum of 60 seconds.

In a system where the default timeout settings of 60 seconds for the keepalive timeout and the processing timeout are insufficient because of long-running applications, we recommend that you set the TIMEOUT and PROCTIMEOUT parameters for the relevant services so that you can configure them independent of each other. In addition, we recommend that you do not set the TIMEOUT value higher than necessary, for example, to the usual default value of 60 seconds.
We recommend, for example, the following settings:
icm/server_port_0 = PROT=HTTP,PORT=1080,TIMEOUT=60,PROCTIMEOUT=600
to allow a maximum processing time of 10 minutes.

No comments:

Post a Comment