Comet on Tomcat on MacOSX

MacOSX10.4環境でTomcat6のHttp11NioProtocolを使用するとリクエスト時にSocketExceptionがスローされる。java.io.Socket#setTrafficClassメソッドが正しく動作しないようだ。これは、JVM起動オプションを設定すると回避できる。

-Djava.net.preferIPv4Stack=true

を設定すると動作するようになった。Tomcat6のドキュメントによると、JDKバージョン依存らしい。WindowsXPとJDK6の環境では特にオプション無しで問題なく動作した。Mac上でもJDK6ならオプション無しで動作するかもしれない。