Q&A

  • 프로그램 종료문제에 대해서여..
하루종일 돌아가는 어플리케이션이 있습니다

소켓 프로그램을 짜놓은 건데여

타이머를 돌려서 아침 9시부터 오후 4시까지 돌게되어있습니다

4시 이후에는 계속 타이머는 돌고 ( 시간만 체크합니다 )

다음날 9시까지는 실행을 멈추게끔 해놓았습니다

근데 동작은 이상없이 잘되는데 말입니다

문제가 어떤때는 아침에 와보면 저녁에 실행시켜놓은 프로그램이

꺼져있거든여

프로세스 자체가 죽어있더군여  -_-

혹시 이런경우를 경험해보신 분 안계십니까?

매일 그러는것도 아니고 가끔씩 죽어버리는데 미치겠습니다

힌트 좀 부탁드릴께여 (__)

Window 2000 서버구여..

delphi 6.0 으로 코딩했거든여..
3  COMMENTS
  • Profile
    이현철 2002.07.12 20:01
    문제가 어떤때는 아침에 와보면 저녁에 실행시켜놓은 프로그램이
    꺼져있거든여

    위 부분에서, 소켓프로그램이 꺼져있는것인지 아니면 다른
    프로그램이 꺼져있는것인지 모르겠네요.

    그리고, 원인을 모를때는 로그를 남겨보세요. 블랙박스 같은식으로
    계속 어떤 상태를 기록한다면, 에러가 날경우에 로그를 확인해서
    해결하는 경우도 많습니다.
  • Profile
    김영철 2002.07.12 20:09
    안녕하세요 이현철님

    또 현철님께서 답변해 주셨네여

    얼마전에도 답변해주셨는데 ...

    바쁘실텐데 매번 감사드립니다 (__)

    꺼져있다는것이여 프로그램자체가 흔적이 없어져버리는겁니다

    원래는 프로그램 종료할때 Close 이벤트를 코딩해 놓았는데

    이것도 안먹구여

    그리고 각 소켓들도 에러나 접속이 끊어질때 로그를 남기는데

    로그고 머고 아무것도 없습니다

    그냥 프로그램 자체가 흔적도 없이 죽어버립니다

    그리고 블랙박스란게 멀 말씀하시는건지 잘 모르겠네여 ^^;;

    자세히 좀 말씀해 주시면 고맙겠습니다

    다시한번 답변 감사드립니다

  • Profile
    이현철 2002.07.13 05:19
    네..

    블랙박스는 별게 아니구, 그냥 로그시스템입니다.
    프로그램에서 동작되는 여러 형태를 파일 등에
    기록하는 것이죠.

    만약, 말씀하신 소켓 프로그램처럼, 연결된 상태에서
    스스로 어떤 작업을 한다면, 작업하는 것들을 기록하는
    것이죠, 예를 들어, 'AAA' 라는 문자열을 보냈다면
    WriteLog('Send AAA' + timetostr(now);
    이런식으로 파일에 기록하다면, 프로그램에서 현재 돌아
    가는 형태가 모두 파일에 시간별로 기록되겠죠.

    또한, 프로그램 종료 이벤트에도 기록을 남긴다면
    프로그램 갑자기 죽었다면, 마지막에 한작없이 무엇인지
    로그파일의 기록을 보면 됩니다.

    이런 방법으로 모든 에러를 잡을 수는 없지만, 아마도
    찾는데 많이 도움이 되리라 생각됩니다.

    저같은 경우에는 소켓프로그램을 할때 항상 로그를 남깁니다.
    그것이 파일형태든, 단순히 화면에 보이는 상태든.. 로그를
    남기면, 조금 의심스러운 부분에 로그를 찾아보면 항상
    답이 거기 있었습니다.  제가 정의한 패킷형태대로 데이터를
    주고받는데, 어쩔때 안오는때에 로그를 보면 패킷이 붙어서
    온경우를 확인할 수도 있습니다. 이런식으로 그부분을 수정하고
    다시테스트하고... 하다보면, 에러를 손쉽게 찾아낼수 있습니다.

    도움이 되셨는지요..


    from neosiz.com