]> granicus.if.org Git - apache/blob - docs/manual/mod/mpm_winnt.xml
ye gods what have I done
[apache] / docs / manual / mod / mpm_winnt.xml
1 <?xml version="1.0"?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
4 <!-- $LastChangedRevision$ -->
5
6 <!--
7  Licensed to the Apache Software Foundation (ASF) under one or more
8  contributor license agreements.  See the NOTICE file distributed with
9  this work for additional information regarding copyright ownership.
10  The ASF licenses this file to You under the Apache License, Version 2.0
11  (the "License"); you may not use this file except in compliance with
12  the License.  You may obtain a copy of the License at
13
14      http://www.apache.org/licenses/LICENSE-2.0
15
16  Unless required by applicable law or agreed to in writing, software
17  distributed under the License is distributed on an "AS IS" BASIS,
18  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  See the License for the specific language governing permissions and
20  limitations under the License.
21 -->
22
23 <modulesynopsis metafile="mpm_winnt.xml.meta">
24
25 <name>mpm_winnt</name>
26 <description>Multi-Processing Module optimized for Windows NT.</description>
27 <status>MPM</status>
28 <sourcefile>mpm_winnt.c</sourcefile>
29 <identifier>mpm_winnt_module</identifier>
30
31 <summary>
32     <p>This Multi-Processing Module (MPM) is the default for the
33     Windows NT operating systems. It uses a single control process
34     which launches a single child process which in turn creates
35     threads to handle requests</p>
36
37     <p>Capacity is configured using the 
38     <directive module="mpm_common">ThreadsPerChild</directive> directive,
39     which sets the maximum number of concurrent client connections.</p>
40
41     <p>By default, this MPM uses advanced Windows APIs for accepting
42     new client connections.  In some configurations, third-party products
43     may interfere with this implementation, with the following messages
44     written to the web server log:</p>
45
46     <example>
47         Child: Encountered too many AcceptEx faults accepting client connections.<br />
48         winnt_mpm: falling back to 'AcceptFilter none'.
49     </example>
50
51     <p>The MPM falls back to a safer implementation, but some client requests
52     were not processed correctly.  In order to avoid this error, use
53     <directive module="core">AcceptFilter</directive> with accept filter 
54     <code>none</code>.</p>
55
56     <example>
57         AcceptFilter http none
58         AcceptFilter https none
59     </example>
60     
61     <p><em>In Apache httpd 2.0 and 2.2,
62     <directive>Win32DisableAcceptEx</directive> was used for this purpose.</em></p>
63
64     <p>The WinNT MPM differs from the Unix MPMs such as worker and event
65     in several areas:</p>
66
67     <ul>
68       <li>When a child process is exiting due to shutdown, restart, or
69       <directive module="mpm_common">MaxConnectionsPerChild</directive>,
70       active requests in the exiting process have
71       <directive module="core">TimeOut</directive> seconds to finish before
72       processing is aborted.  Alternate types of restart and shutdown are not
73       implemented.</li>
74
75       <li>New child processes read the configuration files instead of
76       inheriting the configuration from the parent.  The behavior will
77       be the same as on Unix if the child process is created at startup
78       or restart, but if a child process is created because the prior
79       one crashed or reached 
80       <directive module="mpm_common">MaxConnectionsPerChild</directive>,
81       any pending changes to the configuration will become active in the
82       child at that point, and the parent and child will be using a
83       different configuration.  If planned configuration changes have been
84       partially implemented and the current configuration cannot be
85       parsed, the replacement child process cannot start up and the server 
86       will halt.  Because of this behavior, configuration files should not
87       be changed until the time of a server restart.</li>
88
89       <li>The <code>monitor</code> and <code>fatal_exception</code> hooks
90       are not currently implemented.</li>
91
92       <li><directive>AcceptFilter</directive> is implemented in the MPM
93       and has a different type of control over handling of new connections.
94       (Refer to the <directive module="core">AcceptFilter</directive>
95       documentation for details.)</li>
96     </ul>
97
98 </summary>
99
100 <seealso><a href="../platform/windows.html">Using Apache HTTP Server on Microsoft Windows</a></seealso>
101
102 <directivesynopsis location="core"><name>AcceptFilter</name>
103 </directivesynopsis>
104 <directivesynopsis location="mpm_common"><name>CoreDumpDirectory</name>
105 </directivesynopsis>
106 <directivesynopsis location="mpm_common"><name>PidFile</name>
107 </directivesynopsis>
108 <directivesynopsis location="mpm_common"><name>Listen</name>
109 </directivesynopsis>
110 <directivesynopsis location="mpm_common"><name>ListenBacklog</name>
111 </directivesynopsis>
112 <directivesynopsis location="mpm_common"><name>MaxConnectionsPerChild</name>
113 </directivesynopsis>
114 <directivesynopsis location="mpm_common"><name>MaxMemFree</name>
115 </directivesynopsis>
116 <directivesynopsis location="mpm_common"><name>ScoreBoardFile</name>
117 </directivesynopsis>
118 <directivesynopsis location="mpm_common"><name>ReceiveBufferSize</name>
119 </directivesynopsis>
120 <directivesynopsis location="mpm_common"><name>SendBufferSize</name>
121 </directivesynopsis>
122 <directivesynopsis location="mpm_common"><name>ThreadLimit</name>
123 </directivesynopsis>
124 <directivesynopsis location="mpm_common"><name>ThreadsPerChild</name>
125 </directivesynopsis>
126 <directivesynopsis location="mpm_common"><name>ThreadStackSize</name>
127 </directivesynopsis>
128
129 </modulesynopsis>