Under conditions of load, I caused a service to create a number of socket connections and leave them in a TCP CLOSE_WAIT state. While I was investigating the problem, I found that a certain bug with the NIO implementation maybe related to this problem and might thus explain the symptoms. However, one must keep in mind that a different problem might also result in similar symptoms. I will add more as I investigate further.
Java Forums: Taming the NIO Circus
Java Forums: select() does not block
Too many open files pattern
Java bug database: Blocking selector stops blocking temporarily