Magnet January 19th, 2006
Apache uses some advanced functionality to speed-up the process of sending files. The mostly used three of them are:
1. EnableSendfile. It control whether the sendfile kernel support is used to deliver files (assuming that the OS supports it).
2. EnableMMAP. Control whether memory-mapping is used to deliver files (assuming that the underlying OS supports it).
Default value for these two is on.
3. Win32DisableAcceptEx. It's required for the functionality of the apache server under windows 98.It’s useful to work around bugs in some third party layered service providers like virus scanners,VPN and firewall products, that do not properly handle WinSock 2 API
Now the problem occures when Apache is running under windows. The problems like corrupted or incomplete file downloads, unexplained error messages, or a conflict with a software firewall are frequent. The most dangerious is:
[warn] (OS 64)The specified network name is no longer available. : winnt_accept: Asynchronous AcceptEx failed.
It slows down the system considerabily resulting in Apache crash.
There is no particular solution for these problems.
AcceptEx is a Microsoft WinSock v2 API that provides some performance improvements. Some popular Windows products, typically virus scanning or virtual private network packages, have bugs that interfere with the proper operation of it. In that case disable it. In httpd.conf place the directive:
Win32DisableAcceptEx
Also switch off the other two settings:
EnableSendfile Off
EnableMMAP Off
The above directives turn off the advanced functionality and make Apache fall back to more basic (but slower) techniques but reduce the error messages and malfunctioning.