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:
-
'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.
-
'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).
-
'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 has four limits; the first two timeout settings
control the time at which any uncompleted response may be terminated
automatically by GoServe's "watchdog" thread, the third controls how
long GoServe will wait (if requested) for additional requests on a
persistent connection, and the last determines how long GoServe will
wait, on startup, for TCP/IP to become available:
-
'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.
-
'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 1200 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. Multiply this by three or four if network delays are
common.
-
'Connection maintain' -- the "wait timeout", in seconds. This is
is the time for which GoServe will wait for a new request after
responding to a request that included a 'Connection: keep-alive'
header. Note that expiry of this timeout, when a request is not
received, is considered normal; it is therefore not audited as a
limit exceeded or an error.
The default is 0 seconds, which means that GoServe will never
accept more than one request per connection. To accept multiple
requests per connection, set this to a non-zero value. Suggested
values might be 10-15 seconds (to handle most cases of embedded
images in HTML pages, for example) or 60-120 seconds (to handle
most cases of multiple pages being requested by the same client).
-
'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:
-
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.
-
Also for the first two timeouts, when the timeout takes place there
may be some delay (typically up to 10 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 (per request):
-
'Header size' -- the maximum size (in thousands of bytes) of header
that will be accepted in one request. 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).
-
'Body data size' -- the maximum size (in thousands of bytes) of
body data that will be accepted in one request. 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 | contents | next section ]
From 'goserve.doc', version 2.52.
Copyright © IBM Corporation, 1993, 1998. All rights reserved.