<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<!-- $Revision: 1.5.2.5 $ -->

<!--
 Copyright 2002-2004 The Apache Software Foundation

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<modulesynopsis metafile="mpm_netware.xml.meta">
<name>mpm_netware</name>
<description>Multi-Processing Module implementing an exclusively threaded web
    server optimized for Novell NetWare</description>
<status>MPM</status>
<sourcefile>mpm_netware.c</sourcefile>
<identifier>mpm_netware_module</identifier>

<summary>
    <p>This Multi-Processing Module (MPM) implements an exclusively
    threaded web server that has been optimized for Novell
    NetWare.</p>

    <p>The main thread is responsible for launching child
    worker threads which listen for connections and serve them when they
    arrive. Apache always tries to maintain several <dfn>spare</dfn>
    or idle worker threads, which stand ready to serve incoming
    requests. In this way, clients do not need to wait for a new
    child threads to be spawned before their requests can be
    served.</p>

    <p>The <directive module="mpm_common">StartThreads</directive>,
    <directive module="mpm_common">MinSpareThreads</directive>,
    <directive module="mpm_common">MaxSpareThreads</directive>, and
    <directive module="mpm_netware">MaxThreads</directive>
    regulate how the main thread creates worker threads to serve
    requests. In general, Apache is very self-regulating, so most
    sites do not need to adjust these directives from their default
    values. Sites with limited memory may need to decrease <directive
    module="mpm_netware">MaxThreads</directive> to keep the server from
    thrashing (spawning and terminating idle threads). More information
    about tuning process creation is provided in the <a
    href="../misc/perf-tuning.html">performance hints</a>
    documentation.</p>

    <p><directive module="mpm_common">MaxRequestsPerChild</directive>
    controls how frequently the server recycles processes by killing old
    ones and launching new ones. On the NetWare OS it is highly
    recommended that this directive remain set to 0. This allows worker
    threads to continue servicing requests indefinitely.</p>
</summary>
<seealso><a href="../bind.html">Setting which addresses and
    ports Apache uses</a>
</seealso>

<directivesynopsis location="mpm_common"><name>Listen</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ListenBacklog</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxMemFree</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxRequestsPerChild</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>SendBufferSize</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxSpareThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MinSpareThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>StartThreads</name>
</directivesynopsis>

<directivesynopsis>
<name>MaxThreads</name>
<description>Set the maximum number of worker threads</description>
<syntax>MaxThreads <var>number</var></syntax>
<default>MaxThreads 2048</default>
<contextlist><context>server config</context></contextlist>

<usage>
    <p>The <directive>MaxThreads</directive> directive sets the desired
    maximum number worker threads allowable. The default value is
    also the compiled in hard limit. Therefore it can only be lowered,
    for example:</p>

    <example>
      MaxThreads 512
    </example>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>ThreadStackSize</name>
<description>Determine the stack size for each thread</description>
<syntax>ThreadStackSize <var>number</var></syntax>
<default>ThreadStackSize 65536</default>
<contextlist><context>server config</context></contextlist>

<usage>
    <p>This directive tells the server what stack size to use for
    each of the running threads. If you ever get a stack overflow
    you will need to bump this number to a higher setting.</p>
</usage>
</directivesynopsis>

</modulesynopsis>
