Timeout values - controlling behavior

Timeout variables let you control the amount of time you will allow for various requests to complete. Some of these variables map to internal variable names. The internal variable names are provided here to aid you with debugging.

ORB service advanced settings

ORB listener keep alive
This variable defines the value, in seconds, provided to TCP/IP on the SOCK_TCP_KEEPALIVE option for the IIOP listener. The function of this option is to verify if idle sessions are still valid by polling the client TCP/IP stack. If the client does not respond, the session is closed. If the client goes away without notifying the server, it would unnecessarily leave the session active on the server side. Use this option to clean up these unnecessary sessions.
  • If the environment variable is not set, the TCP/IP option is not set.
  • Setting the SOCK_TCP_KEEPALIVE option generates network traffic on idle sessions, which can be undesirable.

Default: 0

How to specify: Specify this setting in the administrative console using the path Application Servers > server > ORB Service.

Internal variable name (for debugging purposes): Look for the internal variable name protocol_iiop_server_session_keepalive in the was.env file or the JES job log.

ORB SSL listener keep alive
This variable defines the value, in seconds, provided to TCP/IP on the SOCK_TCP_KEEPALIVE option for the IIOP listener. The function of this option is to verify if idle sessions are still valid by polling the client TCP/IP stack. If the client does not respond, the session is closed. If the client goes away without notifying the server, it would unnecessarily leave the session active on the server side. Use this option to clean up these unnecessary sessions.
  • If the environment variable is not set, the TCP/IP option is not set.
  • Setting the SOCK_TCP_KEEPALIVE option generates network traffic on idle sessions, which can be undesirable.

Default: 0

How to specify: Specify this custom property in the administrative console using the path Application Servers > server > ORB Service.

Internal variable name (for debugging purposes): Look for the internal variable name protocol_iiop_server_session_keepalive_ssl in the was.env file or the JES job log.

WLM timeout
Specifies the maximum amount of time, in seconds, that WebSphere Application Server for z/OS will wait for IIOP requests to complete. This time limit includes:
  • Time during which the IIOP request waits on the WLM queue until being dispatched to a servant (region), and
  • Time during which an application component, running in the servant, processes the request and generates a response.
The server generates a failure response if this processing does not complete within the specified time.

Note: This variable setting does not apply for HTTP requests or Scalable Messaging Support; for that type of work, the value specified through the ConnectionResponseTimeout variable controls the time allowed for dispatching work to a servant (region).

Default: 300 seconds

How to specify: Specify this setting in the administrative console using the path Application Servers > server > ORB Service.

Internal variable name (for debugging purposes): Look for the internal variable control_region_wlm_dispatch_timeout in the was.env file or the JES job log.

Example: WLM timeout=600

Request timeout
Specifies the maximum time, in seconds, that the client will wait for the response to a client request.

The value specified for this field is a server wide setting, that affects all outbound RMI/IIOP enterprise bean invocations that are made on this server.

The sysplex TCP/IP, that runs through the coupling facility, does not always tell the client when the other end of a socket is gone. Therefore, you should specify a value in the Request timeout field that ensures that the client gets a response within the specified time, even if the response is a COMM_FAILURE exception.

How to specify: Specify this custom property in the administrative console using the path Application Servers > server > ORB Service.

Internal variable name (for debugging purposes): Look for the internal variable protocol_iiop_local_timeout in the was.env file or the JES job log. The value that you see associated with this variable should be 10 times the value that you specified in the Request timeout field.

Example: Request timeout=2 sets the wait time to 2 seconds. The variable protocol_iiop_local_timeout=20 should appear in the was.env file.

Transaction service timeout variables

Total Transaction Lifetime Timeout
Specifies the maximum amount of time, in seconds, that the J2EE server will wait for an application transaction that originated in this server to complete, if the application transaction does not set its own timeout value through the UserTransaction.setTransactionTimeout() method.

If the application transaction is not committed or rolled back within the specified time, the application transaction will be marked for roll-back and will be allowed to continue running for a grace period of about four minutes. If the application transaction is committed or rolled back during the grace period, the outcome of the transaction will always be rolled back. If the application transaction does not complete after the grace period, the controller abnormally ends the servant (region) in which the application component is running with ABEND EC3 RSN=04130002 or 04130005.

Note: Only the total transaction lifetime timeout and the maximum transaction timeout have grace periods.

Setting this value to zero indicates that the timeout does not apply, and the value of the maximum transaction timeout is used instead.

Default: 120 seconds

How to specify: Specify this setting in the administrative console using the path Application Servers > server > Container Services > Transaction Service.

Internal variable name (for debugging purposes): Look for the internal variable name transaction_defaultTimeout in the was.env file or the JES job log.

Maximum Transaction Timeout
Specifies the maximum amount of time, in seconds, that the J2EE server will wait for an application transaction that is propagated into this server to complete. This value also applies to transactions that are started in this server, if their associated applications do not set a transaction timeout and the total transaction lifetime timeout is set to 0.

This value constrains the upper bound of all other timeouts. If an application assigns a greater amount of time through the UserTransaction.setTransactionTimeout() method, the J2EE server overrides the application setting to the value specified for the Maximum Transaction Timeout variable.

Setting this value to zero indicates that the timeout does not apply, and any transactions that are affected by this timeout never time out.

Default: 300 seconds

How to specify: Specify this setting in the administrative console using the path Application Servers > server > Container Services > Transaction Service.

Internal variable name (for debugging purposes): Look for the internal variable name transaction_maximumTimeout in the was.env file or the JES job log.

transaction_recoveryTimeout
Specifies the time, in minutes, that this controller (region) uses to attempt to resolve in-doubt transactions before issuing a write-to-operator-with-reply (WTOR) message to the console, requesting whether it should:
  • Stop trying to resolve in-doubt transactions,
  • Write transaction-related information to the job log or hard copy log and terminate.

If the operator replies that recovery should continue, the controller (region) will attempt recovery for the specified amount of time before re-issuing the WTOR message. Once all the transactions are resolved, the controller region terminates. This variable applies only to controllers in peer restart and recovery mode.

Default: 15 minutes

How to specify: Specify this custom property in the administrative console using the path Servers > Application Servers > server > Server infrastructure > Administration > Custom Properties > New. Add the transaction_recoveryTimeout property in the Name field and specify a different value in the Value field.

Internal variable name (for debugging purposes): The internal variable name is the same as the external variable name. Look for transaction_recoveryTimeout in the was.env file or the JES job log.

Example: transaction_recoveryTimeout=7

Server custom properties

control_region_mdb_request_timeout
Specifies the time, in seconds, that the server will wait for a message driven bean (MDB) request to receive a response. If the response is not received within the specified amount of time, the servant (region) may abend with ABEND EC3 RSN=04130008. Set this value to zero to disable the function.

Default: 120

How to specify: Specify this custom property in the administrative console using the path Servers > Application Servers > server > Server infrastructure > Administration > Custom Properties > New. Add the control_region_mdb_request_timeout property in the Name field and specify a different value in the Value field.

Internal variable name (for debugging purposes): The internal variable name is the same as the external variable name. Look for control_region_mdb_request_timeout in the was.env file or the JES job log. See Configuring server custom properties for additional information.

Example: control_region_mdb_request_timeout=180

protocol_http_timeout_output_recovery
Controls the recovery action taken on timeouts for requests received over the HTTP transport. Specifying "SERVANT" allows for the termination of servant (region) when timeouts occur. If an HTTP request is under dispatch in a servant (region) when its timeout value is reached, the servant (region) terminates with an ABEND EC3 RSN=04130007. The HTTP request and socket are then cleaned up. A setting of "SESSION" only cleans up the HTTP request and socket. No attempt is made to disrupt the execution of a dispatched HTTP request within a servant (region). Be careful using this setting as it may lead to a loss of resources if the dispatched HTTP request loops or hangs.

Default: SERVANT

How to specify: Specify this custom property in the administrative console using the path Servers > Application Servers > server > Server infrastructure > Administration > Custom Properties > New. Add the protocol_http_timeout_output_recovery property in the Name field and specify a different value in the Value Field.

Internal variable name (for debugging purposes): The internal variable name is the same as the external variable name. Look for protocol_http_timeout_output_recovery in the was.env file or the JES job log.

Example: protocol_http_timeout_output_recovery=SERVANT

protocol_https_timeout_output_recovery
Controls the recovery action taken on timeouts for requests received over the HTTP SSL transport. Specifying "SERVANT" allows for the termination of servant (region) when timeouts occur. If an HTTP SSL request is under dispatch in a servant (region) when its timeout value is reached, the servant (region) terminates with an ABEND EC3 RSN=04130007. The HTTP SSL request and socket are then cleaned up. A setting of "SESSION" only cleans up the HTTP SSL request and socket. No attempt is made to disrupt the execution of a dispatched HTTP SSL request within a servant (region). Be careful using this setting as it may lead to a loss of resources if the dispatched HTTP SSL request loops or hangs.

Default: SERVANT

How to specify: Specify this custom property in the administrative console using the path Servers > Application Servers > server > Server infrastructure > Administration > Custom Properties > New. Add the protocol_https_timeout_output_recovery property in the Name field and specify a different value in the Value field.

Internal variable name (for debugging purposes): The internal variable name is the same as the external variable name. Look for protocol_https_timeout_output_recovery in the was.env file or the JES job log.

Example: protocol_https_timeout_output_recovery=SESSION

TCP transport channel timeout properties

Inactivity timeout property
Specifies the amount of time, in seconds, that the TCP transport channel waits for a read or write request to complete on a socket.

Note: The value specified for this property might be overridden by the wait times established for channels above this channel. For example, the wait time established for an HTTP transport channel overrides the value specified for the is property for every operation except the initial read on a new socket.

Default: 0 seconds

How to specify: Specify this custom property in the administrative console using the path Servers > Application Servers > server > Web Container Transport Chains > TCP Inbound Channel.

HTTP transport channel timeout properties

Read timeout property
Specifies the amount of time, in seconds, the HTTP transport channel waits for a read request to complete on a socket after the first read request occurs. The read being waited for could be an HTTP body (such as a POST) or part of the headers if they were not all read as part of the first read request on the socket.

Default: 60 seconds

How to specify: Specify this custom property in the administrative console using the path Servers > Application Servers > server > Web Container Transport Chains > HTTP Inbound Channel.

Write timeout property
Specifies the amount of time, in seconds, the HTTP transport channel waits for a write request to complete on a socket. Specifies the amount of time, in seconds, that the HTTP transport channel waits on a socket for each portion of response data to be transmitted. This timeout usually only occurs in situations where the writes are lagging behind new requests. This can occur when a client has a low data rate or the server's NIC is saturated with I/O.

Default: 60 seconds

How to specify: Specify this custom property in the administrative console using the path Servers > Application Servers > server > Web Container Transport Chains > HTTP Inbound Channel.

Persistent timeout property
Specifies the amount of time, in seconds, that the HTTP transport channel allows a socket to remain idle between requests.

Default: 30 seconds

How to specify: Specify this custom property in the administrative console using the path Servers > Application Servers > server > Web Container Transport Chains > HTTP Inbound Channel.

HTTP Transport timeout variables

ConnectionIOTimeOut
Sets a maximum amount of time, in seconds, that the J2EE server will wait for the complete HTTP request to arrive. Set this variable for each of the HTTP transport definitions on the server. You will need to set this variable for both SSL transport and non-SSL transport. The J2EE server starts the timer after the connection has been established, and cancels the connection if a complete request does not arrive within the specified maximum time limit. Specifying a value of zero disables the time out function.

Default: 10 seconds

How to specify: Specify this custom property in the administrative console using the path Application Servers > server > Web Container > HTTP Transport>host>Custom Properties.

Note: This panel is only available if an HTTP transport is defined for your Application Server environment. If an HTTP transport is not defined for your environment, you can use the wsadmin scripting tool to define one. However, it is recommended that you use an HTTP transport channel instead of an HTTP transport whenever possible.

Internal variable name (for debugging purposes): If you are debugging a problem in SSL-enabled transport, look for the internal variable name protocol_https_timeout_input in the was.env file or the JES job log. If you are debugging a problem in non-SSL transport, look for the internal variable name protocol_http_timeout_input in the was.env file or the JES job log.

ConnectionResponseTimeout
Sets a maximum amount of time, in seconds, that the J2EE server will wait for an application component to respond to an HTTP request. Set this variable for each of the HTTP transport definitions on the server. You will need to set this variable for both SSL transport and non-SSL transport. If the response is not received within the specified length of time, the servant (region) might fail with ABEND EC3 and RSN=04130007. Setting this timer prevents client applications from waiting for a response from an application component that might be deadlocked, looping, or encountering other processing problems that cause the application component to hang.

Default: 120 seconds

How to specify: Specify this custom property in the administrative console using the path Application Servers > server > Web Container > HTTP Transport > host> Custom Properties.

Internal variable name (for debugging purposes): If you are debugging a problem in SSL-enabled transport, look for the internal variable name protocol_https_timeout_output in the was.env file or the JES job log. If you are debugging a problem in non-SSL transport, look for the internal variable name protocol_https_timeout_output in the was.env file or the JES job log.

ConnectionKeepAliveTimeout
Specifies the time, in seconds, that the J2EE server will wait for a subsequent request from an HTTP client on a persistent connection. If another request is not received from the same client within this time limit, the connection is closed.

Default: 30 seconds

How to specify: Specify this custom property in the administrative console using the path Application Servers > server > Web Container > HTTP Transport > host> Custom Properties.

Internal variable name (for debugging purposes): If you are debugging a problem in SSL-enabled transport, look for the internal variable name protocol_https_timeout_persistentSession in the was.env file or the JES job log. If you are debugging a problem in non-SSL transport, look for the internal variable name protocol_https_timeout_persistentSession in the was.env file or the JES job log.


Related reference
Setting dump controls



Searchable topic ID:   rtrb_controllingtimeout
Last updated: Jun 21, 2007 9:56:50 PM CDT    WebSphere Application Server for z/OS, Version 5.0.2
http://publib.boulder.ibm.com/infocenter/wasinfo/index.jsp?topic=/com.ibm.websphere.zseries.doc/info/zseries/ae/rtrb_controllingtimeout.html

Library | Support | Terms of Use | Feedback