Hatena::ブログ(Diary)

放浪するエンジニアの覚え書き このページをアンテナに追加 RSSフィード

2011-04-27

(OS 996)重複した I/O イベントはシグナルされた状態ではありません。 : winnt_accept: Asynchronous AcceptEx failed.

| 14:07 |  (OS 996)重複した I/O イベントはシグナルされた状態ではありません。  : winnt_accept: Asynchronous AcceptEx failed. - 放浪するエンジニアの覚え書き のブックマークコメント

PHPの本家サイトを見ると、PHPの5.3.6のstableが出ている(実際にCentOSでは使っている)が、Apacheで使うWindowsバイナリーが配布されていない?!  VC9はapacheでは使わないでという文言は変わってないから、「開発機はどうしたもんだろうな」と思っていると、どうも調子がおかしくなった。

apacheのerror.logを見ると、

(OS 996)重複した I/O イベントはシグナルされた状態ではありません。 : winnt_accept: Asynchronous AcceptEx failed.

が大量に吐き出されてる。

この手のエラーは面倒くさいと思ってググってみると、いきなりこのサイトにご教示いただいた(ありがとうです)。

やることは簡単。

httpd-mpm.conf(windows版のアパッチはデフォルトMPMで動く)に一文を追加。

# WinNT MPM
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum  number of requests a server process serves
<IfModule mpm_winnt_module>
   ThreadsPerChild      150
   MaxRequestsPerChild    0
   Win32DisableAcceptEx
</IfModule>

これで動くようになりました。とりあえず、開発はできるのでよかった、よかった。