We're running jBoss 5.1, which in turn uses the Tomcat servlet container.
We've been seeing some cases where bad HTTP clients will open a socket, make an HTTP request, fail to read all data and fail to close the connection.
The outcome is that the tomcat threads block indefinitely trying to write to the output stream:
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)
How can I configure these connections to timeout?