24886123d260485c4d9a0194d2cbb6192e642df9slive<?xml version="1.0"?>
24886123d260485c4d9a0194d2cbb6192e642df9slive<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
e942c741056732f50da2074b36fe59805d370650slive<?xml-stylesheet type="text/xsl" href="/style/manual.en.xsl"?>
5f5d1b4cc970b7f06ff8ef6526128e9a27303d88nd<!-- $LastChangedRevision$ -->
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd<!--
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding Licensed to the Apache Software Foundation (ASF) under one or more
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding contributor license agreements. See the NOTICE file distributed with
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding this work for additional information regarding copyright ownership.
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding The ASF licenses this file to You under the Apache License, Version 2.0
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding (the "License"); you may not use this file except in compliance with
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding the License. You may obtain a copy of the License at
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd http://www.apache.org/licenses/LICENSE-2.0
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd Unless required by applicable law or agreed to in writing, software
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd distributed under the License is distributed on an "AS IS" BASIS,
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd See the License for the specific language governing permissions and
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd limitations under the License.
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd-->
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd
7db9f691a00ead175b03335457ca296a33ddf31bnd<modulesynopsis metafile="mpm_winnt.xml.meta">
24886123d260485c4d9a0194d2cbb6192e642df9slive
24886123d260485c4d9a0194d2cbb6192e642df9slive<name>mpm_winnt</name>
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive<description>Multi-Processing Module optimized for Windows NT.</description>
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive<status>MPM</status>
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive<sourcefile>mpm_winnt.c</sourcefile>
24886123d260485c4d9a0194d2cbb6192e642df9slive<identifier>mpm_winnt_module</identifier>
24886123d260485c4d9a0194d2cbb6192e642df9slive
24886123d260485c4d9a0194d2cbb6192e642df9slive<summary>
24886123d260485c4d9a0194d2cbb6192e642df9slive <p>This Multi-Processing Module (MPM) is the default for the
24886123d260485c4d9a0194d2cbb6192e642df9slive Windows NT operating systems. It uses a single control process
24886123d260485c4d9a0194d2cbb6192e642df9slive which launches a single child process which in turn creates
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive threads to handle requests</p>
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive <p>Capacity is configured using the
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive <directive module="mpm_common">ThreadsPerChild</directive> directive,
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive which sets the maximum number of concurrent client connections.</p>
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive <p>By default, this MPM uses advanced Windows APIs for accepting
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive new client connections. In some configurations, third-party products
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive may interfere with this implementation, with the following messages
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive written to the web server log:</p>
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive
860b4efe27e7c1c9a2bf5c872b29c90f76849b51jim <example>
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive Child: Encountered too many AcceptEx faults accepting client connections.<br />
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive winnt_mpm: falling back to 'AcceptFilter none'.
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive </example>
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive <p>The MPM falls back to a safer implementation, but some client requests
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive were not processed correctly. In order to avoid this error, use
7f3fdc63be07f2ad39e01a44e68e9324998a5c03slive <directive module="core">AcceptFilter</directive> with accept filter
1422a46130adacd1ee80183aaddffc8e65f64996covener <code>none</code>.</p>
860b4efe27e7c1c9a2bf5c872b29c90f76849b51jim
1422a46130adacd1ee80183aaddffc8e65f64996covener <highlight language="config">
8c150dd80c97896ccf1db42d19b8efca2602232bcovenerAcceptFilter http none
24886123d260485c4d9a0194d2cbb6192e642df9sliveAcceptFilter https none
24886123d260485c4d9a0194d2cbb6192e642df9slive </highlight>
eaaf220dae7a60b63d5487d9e3b1644f4a1dbf23nd
eaaf220dae7a60b63d5487d9e3b1644f4a1dbf23nd <p><em>In Apache httpd 2.0 and 2.2,
24886123d260485c4d9a0194d2cbb6192e642df9slive <directive>Win32DisableAcceptEx</directive> was used for this purpose.</em></p>
24886123d260485c4d9a0194d2cbb6192e642df9slive
24886123d260485c4d9a0194d2cbb6192e642df9slive <p>The WinNT MPM differs from the Unix MPMs such as worker and event
69cdc59729e1a733aafee3ef613eadfb8e437c11humbedooh in several areas:</p>
69cdc59729e1a733aafee3ef613eadfb8e437c11humbedooh
69cdc59729e1a733aafee3ef613eadfb8e437c11humbedooh <ul>
69cdc59729e1a733aafee3ef613eadfb8e437c11humbedooh <li>When a child process is exiting due to shutdown, restart, or
24886123d260485c4d9a0194d2cbb6192e642df9slive <directive module="mpm_common">MaxConnectionsPerChild</directive>,
5a5c9555f68ed95ae9cde56baf2a27c727eb6242rbowen active requests in the exiting process have
24886123d260485c4d9a0194d2cbb6192e642df9slive <directive module="core">TimeOut</directive> seconds to finish before
24886123d260485c4d9a0194d2cbb6192e642df9slive processing is aborted. Alternate types of restart and shutdown are not
24886123d260485c4d9a0194d2cbb6192e642df9slive implemented.</li>
24886123d260485c4d9a0194d2cbb6192e642df9slive
24886123d260485c4d9a0194d2cbb6192e642df9slive <li>New child processes read the configuration files instead of
24886123d260485c4d9a0194d2cbb6192e642df9slive inheriting the configuration from the parent. The behavior will
24886123d260485c4d9a0194d2cbb6192e642df9slive be the same as on Unix if the child process is created at startup
24886123d260485c4d9a0194d2cbb6192e642df9slive or restart, but if a child process is created because the prior
24886123d260485c4d9a0194d2cbb6192e642df9slive one crashed or reached
24886123d260485c4d9a0194d2cbb6192e642df9slive <directive module="mpm_common">MaxConnectionsPerChild</directive>,
5a5c9555f68ed95ae9cde56baf2a27c727eb6242rbowen any pending changes to the configuration will become active in the
24886123d260485c4d9a0194d2cbb6192e642df9slive child at that point, and the parent and child will be using a
5a5c9555f68ed95ae9cde56baf2a27c727eb6242rbowen different configuration. If planned configuration changes have been
24886123d260485c4d9a0194d2cbb6192e642df9slive partially implemented and the current configuration cannot be
24886123d260485c4d9a0194d2cbb6192e642df9slive parsed, the replacement child process cannot start up and the server
24886123d260485c4d9a0194d2cbb6192e642df9slive will halt. Because of this behavior, configuration files should not
24886123d260485c4d9a0194d2cbb6192e642df9slive be changed until the time of a server restart.</li>
24886123d260485c4d9a0194d2cbb6192e642df9slive
24886123d260485c4d9a0194d2cbb6192e642df9slive <li>The <code>monitor</code> and <code>fatal_exception</code> hooks
24886123d260485c4d9a0194d2cbb6192e642df9slive are not currently implemented.</li>
24886123d260485c4d9a0194d2cbb6192e642df9slive
24886123d260485c4d9a0194d2cbb6192e642df9slive <li><directive>AcceptFilter</directive> is implemented in the MPM
24886123d260485c4d9a0194d2cbb6192e642df9slive and has a different type of control over handling of new connections.
24886123d260485c4d9a0194d2cbb6192e642df9slive (Refer to the <directive module="core">AcceptFilter</directive>
24886123d260485c4d9a0194d2cbb6192e642df9slive documentation for details.)</li>
24886123d260485c4d9a0194d2cbb6192e642df9slive </ul>
24886123d260485c4d9a0194d2cbb6192e642df9slive
24886123d260485c4d9a0194d2cbb6192e642df9slive</summary>
69cdc59729e1a733aafee3ef613eadfb8e437c11humbedooh
69cdc59729e1a733aafee3ef613eadfb8e437c11humbedooh<seealso><a href="/platform/windows.html">Using Apache HTTP Server on Microsoft Windows</a></seealso>
69cdc59729e1a733aafee3ef613eadfb8e437c11humbedooh
69cdc59729e1a733aafee3ef613eadfb8e437c11humbedooh<directivesynopsis location="core"><name>AcceptFilter</name>
69cdc59729e1a733aafee3ef613eadfb8e437c11humbedooh</directivesynopsis>
24886123d260485c4d9a0194d2cbb6192e642df9slive<directivesynopsis location="mpm_common"><name>CoreDumpDirectory</name>
24886123d260485c4d9a0194d2cbb6192e642df9slive</directivesynopsis>
8773f84eee05784dbad002a124150329f3dde3a6rbowen<directivesynopsis location="mpm_common"><name>PidFile</name>
24886123d260485c4d9a0194d2cbb6192e642df9slive</directivesynopsis>
69cdc59729e1a733aafee3ef613eadfb8e437c11humbedooh<directivesynopsis location="mpm_common"><name>Listen</name>
69cdc59729e1a733aafee3ef613eadfb8e437c11humbedooh</directivesynopsis>
69cdc59729e1a733aafee3ef613eadfb8e437c11humbedooh<directivesynopsis location="mpm_common"><name>ListenBacklog</name>
69cdc59729e1a733aafee3ef613eadfb8e437c11humbedooh</directivesynopsis>
24886123d260485c4d9a0194d2cbb6192e642df9slive<directivesynopsis location="mpm_common"><name>MaxConnectionsPerChild</name>
24886123d260485c4d9a0194d2cbb6192e642df9slive</directivesynopsis>
24886123d260485c4d9a0194d2cbb6192e642df9slive<directivesynopsis location="mpm_common"><name>MaxMemFree</name>
24886123d260485c4d9a0194d2cbb6192e642df9slive</directivesynopsis>
24886123d260485c4d9a0194d2cbb6192e642df9slive<directivesynopsis location="mpm_common"><name>ScoreBoardFile</name>
24886123d260485c4d9a0194d2cbb6192e642df9slive</directivesynopsis>
24886123d260485c4d9a0194d2cbb6192e642df9slive<directivesynopsis location="mpm_common"><name>ReceiveBufferSize</name>
24886123d260485c4d9a0194d2cbb6192e642df9slive</directivesynopsis>
24886123d260485c4d9a0194d2cbb6192e642df9slive<directivesynopsis location="mpm_common"><name>SendBufferSize</name>
eaaf220dae7a60b63d5487d9e3b1644f4a1dbf23nd</directivesynopsis>
eaaf220dae7a60b63d5487d9e3b1644f4a1dbf23nd<directivesynopsis location="mpm_common"><name>ThreadLimit</name>
24886123d260485c4d9a0194d2cbb6192e642df9slive</directivesynopsis>
ea2ac8f7ef443dea350ef41260546188d1105386poirier<directivesynopsis location="mpm_common"><name>ThreadsPerChild</name>
24886123d260485c4d9a0194d2cbb6192e642df9slive</directivesynopsis>
24886123d260485c4d9a0194d2cbb6192e642df9slive<directivesynopsis location="mpm_common"><name>ThreadStackSize</name>
24886123d260485c4d9a0194d2cbb6192e642df9slive</directivesynopsis>
24886123d260485c4d9a0194d2cbb6192e642df9slive
24886123d260485c4d9a0194d2cbb6192e642df9slive</modulesynopsis>
24886123d260485c4d9a0194d2cbb6192e642df9slive