jBoss 5.1 を実行しており、Tomcat サーブレット コンテナーを使用しています。
不正な HTTP クライアントがソケットを開き、HTTP リクエストを作成し、すべてのデータの読み取りに失敗し、接続を閉じることができないケースをいくつか見てきました。
その結果、Tomcat スレッドは出力ストリームへの書き込みを無期限にブロックします。
SocketOutputStream.socketWrite0(FileDescriptor, byte[], int, int)
SocketOutputStream.socketWrite(byte[], int, int)
SocketOutputStream.write(byte[], int, int)
InternalOutputBuffer.realWriteBytes(byte[], int, int)
ByteChunk.flushBuffer()
ByteChunk.append(byte[], int, int)
InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(ByteChunk, Response)
IdentityOutputFilter.doWrite(ByteChunk, Response)
InternalOutputBuffer.doWrite(ByteChunk, Response)
Response.doWrite(ByteChunk)
OutputBuffer.realWriteBytes(byte[], int, int)
ByteChunk.append(byte[], int, int)
OutputBuffer.writeBytes(byte[], int, int)
OutputBuffer.write(byte[], int, int)
CoyoteOutputStream.write(byte[], int, int)
これらの接続をタイムアウトするように構成するにはどうすればよいですか?