|
별 도움이 안되겠지만..
제가 지금 하고 있는 제품상에서는 ... 매 일정 시간마다 타이머를 사용해서..세션에 등록된 클라이언트로 메세지를 보내서..
일정한 응답이 없으면.... 서버측에서 일정 시간뒤에 종료 된것으로 대응을 하더군요......
그 부분은 제가 짠 부분은 아니지만.. 소스를 살짝 보니 그렇게 되어 있었습니다.
그렇게 큰 도움은 못된듯 하네요...누구나 다 아는 방식이려나...
newhuni 님이 쓰신 글 :
: 서버 프로그램을 실행시키고 클라이언트 프로그램을 실행시키면
: 두 프로그램은 정상적으로 잘 동작됩니다.
:
: 그런데... 클라이언트 프로그램이 강제종료되면 서버프로그램의 메모리가
: 계속 증가하고 CPU점유율도 99퍼센트까지 올라갑니다.
:
: 디버깅을 해 보면 클라이언트가 강제종료되도 해당 쓰레드가 남아있습니다.
: 그리고 IdTCPServerDisconnect(..)이벤트도 발생하지 않습니다.
:
: 정상적으로는 클라이언트가 서버에게 종료 하겠다는 메시지를 발생시키고,
: 서버에서 Disconnect를 해야 하는 것으로 아는데...
: 이 프로그램에서는 따로 종료버튼이 존재하지 않고. 종료하기 위해선 강제종료밖에
: 할 수 없습니다. (24시간 365일 돌아야 하는 프로그램이라서요...)
:
: 시스템의 메모리양만큼 증가하다 나중에는 가상메모리가 없다고 메시지가 발생하네요...
:
:
:
: 클라이언트 프로그램이 강제종료되었을 때 서버에서는 어떻게 대응을 해야 할까요??
|