C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[44327] Re:TClientSocket을 쓰고 있는데요..
정재만 [csta] 1085 읽음    2006-03-30 21:11
음 추측하건데......
DB서버쪽에 점검해 보세요..
DB서버가 특정시간에(자동백업,특정작업)무슨일을 하도록 스케쥴이 걸려있지  않을까 하는 생각입니다.

skjoon 님이 쓰신 글 :
: 빌더의 컴포넌트를 이용해서 서버와 클라이언트 프로그램을 만들었습니다.
: 서버는 통신서버와 DB서버로 나뉘고
: 통신서버는 하위단의 장비와 시리얼로 연결되어 데이터를 수집하고
: DB서버는 통신서버에 접속해서 수집된 데이터를 요청합니다. 받은 데이터를 DB에 저장도 하구요..
:
: 통신방식은 타이머를 하나 쓰고 그 안에서 요청모드일 경우에는 통신서버로 전송을 하고, 바로 수신모드로 바꿔서 계속 Receive하고 .. 데이터를 수신하면 또 요청모드로 바꿔서 전송하고.. 입니다. 타이머의 인터벌은 1밀리이구요..
: 수신되는 데이터의 양이 좀 많습니다. 한번에 1Kbyte정도 되니까요..
:
: 먼저는 Receive 이벤트에서 바로 전송을 했었는데 이 문제때문에 혹시나 해서 타이머 방식으로 바꾼겁니다.
:
: 문제는 DB서버가 하루에 한 두번 정도 통신을 안하는 것입니다.
: 정확하게 말씀드리면 통신서버로부터 데이터를 수신하고 바로 요청을 또 해야 하는데 요청을 안합니다.
: 통신서버는 접속된 DB서버가 일정시간동안(5초) 요청이 없으면 시스템이 다운된걸로 판단하고 소켓을 끊습니다.
: DB서버는 위처럼 통신서버로 요청을 안하고 있다가 소켓이 끊기면 Disconnect 이벤트를 받으면 소켓을 다시 연결하고 통신을 시작합니다.
:
: 그래서 타이머를 하나 둬서 전송을 제대로 하는지 감시하는 기능을 추가했는데.. 위와 같이 멈추는 현상이 발생하면 타이머 이벤트도 발생하지 않습니다. 통신 끊김 이벤트가 생기면 그 때 타이머도 다시 동작하구요.. -.-;;
:
: 또 이번에는 스레드를 만들고 소켓핸들을 넘겨서 통신하는 부분을 그 안에서 돌려도 마찬가지 결과입니다.
:
: 그런데 재미있는 것은 우연인지 몰라도 그 현상이 발생되는 시간이 XX시 58분 에서 XX시 00분 사이에 일어난다는 겁니다. 매시간 일어나는 건 아니지만 말입니다.
:
: 참고로 윈도우2003 환경입니다.
:
: 장황하게 쓰긴 했는데 잘 전달이 될지 모르겠습니다. ^^;; 혹시 비슷한 경험 있으신 분들 도움 부탁드립니다.

+ -

관련 글 리스트
44311 TClientSocket을 쓰고 있는데요.. skjoon 1153 2006/03/29
44327     Re:TClientSocket을 쓰고 있는데요.. 정재만 1085 2006/03/30
44318     Re:TClientSocket을 쓰고 있는데요.. Mir 1009 2006/03/30
44326         Re:Re:TClientSocket을 쓰고 있는데요.. skjoon 1357 2006/03/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.