O processo está em um estado de espera ininterrupta devido a um problema de hardware e pode exigir uma reinicialização. Isso só acontece se o hardware estiver com problema.
............. Dramil Dodeja link
Eu tenho vários processos Java em execução em um servidor Windows. Tenho notado de vez em quando quando tento matar o processo que permanece vivo. A causa parece ser soquetes em CLOSE_WAIT associados ao processo.
Alguma ideia de por que alguns soquetes permanecem em CLOSE_WAIT depois que eu tento matar o processo?
Obrigado
O processo está em um estado de espera ininterrupta devido a um problema de hardware e pode exigir uma reinicialização. Isso só acontece se o hardware estiver com problema.
............. Dramil Dodeja link
Uma ideia: você precisa ajustar suas configurações de TCP, não está familiarizado com as janelas, mas geralmente quer tornar o intervalo TIME_WAIT
ou CLOSE_WAIT
mais curto, para que as conexões não fiquem penduradas por tanto tempo. Em um servidor ocupado, soquetes acumulando em você em CLOSE_WAIT
chegam às dezenas de milhares e consomem recursos desnecessariamente ... Você pode cheirar a interface, winpcap etc, e ver se uma aleta está sendo enviada, uma correta (não redefinir ) fechar deve ficar assim:
TCP: .... 0... = (No push)
TCP: .... .0.. = (No reset)
TCP: .... ..0. = (No SYN)
TCP: .... ...1 = FIN
Você pode rastrear ou transformar o aplicativo, por exemplo, se ele usa closesocket()
, verifique se está obtendo um rc de 0, etc.