The Limits options pages


The 'Limits' pages in the Options notebook let you change various limits which apply to running GoServe. The limits are grouped into three sets: limits affecting clients, timeouts, and (on the second page) limits restricting incoming data.

Clients limits

The 'Clients' set has three limits:

  1. 'Maximum at once' -- the maximum number of client connections allowed concurrently [default 20]. Additional requests for connection will be refused. This count lets you limit the maximum load on your server, which is especially useful if it is also being used as a personal workstation. Note that some Web clients, such as Web Explorer, may make four or more connections at the same time, to download inline graphics in parallel.

    This limit, when exceeded, is only counted and audited once for each non-idle burst of connections.

  2. 'Show warning at' -- the percentage at which the bar chart will show a red warning indicator [default 75%]. This gives a visual indication of heavy use of your server at a given instant (the peak use is also shown on the bar display).
  3. 'Open files per client' -- the maximum number of open files allowed, per client filter [default 5]. Increase this if you expect your GoServe filter to have more than five files open at a time.

Timeouts

The 'Timeouts' set also has three limits; the first two timeout settings control the time at which any uncompleted response may be terminated automatically by GoServe's "watchdog" thread, and the third determines how long GoServe will wait, on startup, for TCP/IP to become available:

  1. 'End client after inactive' -- the "inactive timeout", in seconds. A connection will be closed if the specified time passes without any data being received or transmitted over the connection. The default is 60 seconds.
  2. 'End client after total' -- the "total timeout", in seconds. A connection will be closed if the specified time passes since the client connected to the port, even if there appears to be activity. This value must not be less than the inactive timeout, and defaults to 600 seconds. As a rule of thumb, this timeout might be set to a number of seconds equal to or larger than the size of your largest data file, expressed in kilobytes. This allows for transmission of the file over a slow link running at one kilobyte per second.
  3. 'Wait for TCP/IP start' -- the "start timeout", in seconds. This is the time for which GoServe will wait on startup for TCP/IP to become operational, while retrying appropriate TCP/IP calls as necessary [default 600 seconds]. This allows asynchronous starting of TCP/IP and GoServe. A value of 0 seconds means immediate timeout (that is, no retrys are performed, and GoServe will not start if an error is found). No TCP/IP retry is attempted if the requested port is in use (that is, it is likely that another copy of GoServe is already running).

Notes on timeouts:

  1. For the first two timeouts, a value of zero seconds may be specified to indicate an indefinite time (that is, the timeout check is not made). You should only set both timeouts to zero if the filter is trusted, the data it accesses is always available locally, and all clients used with the server have a timeout mechanism.
  2. When the timeout takes place there may be some delay (typically up to 15 seconds) before the transaction is interrupted. If the Rexx filter is still running, it will have the HALT condition raised during this process; the HALT condition may be trapped by CALL ON HALT or SIGNAL ON HALT for necessary cleanup which should normally be followed by an immediate EXIT.

Incoming data

The 'Incoming data' set is on the second Limits page (use the rightmost button at the bottom of the first page, or Alt+Page Down, to get to it). It has two limits which restrict how much incoming data will be accepted by the server:

  1. 'Header size' -- the maximum size (in thousands of bytes) of header that will be accepted. The transaction will be ended if a header is received that exceeds the specified size; this gives some protection against a client that sends an invalid or never-ending header. This limit is used whenever a header is read, either automatically or because of the READ command. The default is 10 thousand bytes (10kB).
  2. 'Body data size' -- the maximum size (in thousands of bytes) of body data that will be accepted. The transaction will be ended if a client sends data that exceeds the specified size, and an attempt is made to read it using the READ command. The default is 50 thousand bytes (50kB).

[ previous section | GoServe | next section ]

From 'goserve.doc', version 2.32.
Copyright © International Business Machines Corporation, 1993, 1995.
All rights reserved.