CLOSE_WAIT mantendo o processo ativo no windows

1

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

    
por ng01 07.01.2011 / 01:04

2 respostas

1

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

    
por 17.01.2011 / 07:53
1

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.

    
por 07.01.2011 / 02:49