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
[51078] Re:Re:네트워크 장애로 인해 DB연결이 끊어졌을 경우 자동 복구 하려고 하는데요...
서기사랑 [] 1866 읽음    2007-10-29 16:11
그렇군요...저도 하도 답변이 없어서 그냥 처리했습니다...
저는 먼저 디비연결 여부 체크하는 TDatabase를 하나 더 생성을 했습니다.
쿼리문을 try catch로 해서 에러가 나면 쿼리문 에러든 디비연결이 안되서 나는 에러든 상관없이
catch에 걸리면 쓰레드를 실행시킵니다.(멈추는 현상이 나타날까봐)
이 쓰레드에서는 연결여부체크하는 TDatabase로 재연결시도 해서 연결이 안되면
계속 연결될때까지 체크를 합니다.
그런 후에 연결되면 쓰레드도 멈추게 하구요~ 정말 이런방법밖에 없는건지..
참으로 어이없습니다.

암튼 답변 달아주셔서 감사해요~^^*

수고하세요~

땅주인 님이 쓰신 글 :
: 저의 경우 30초~1분 단위로 아무 의미 없는 쿼리문(SELECT GETDATE() ) 뭐..이런 문장을 날려서
: 정상적 리턴이면 그냥 가고, 에러가 나면 에러를 카운트 했다가 3번 정도 실패하면, DB 접속에
: 문제가 있는 걸로 보고, DB를 끊고 다시 접속 시도 합니다.
: 님이 말씀하신대로 Try ~ Catch로 잡아도 정확하게 넘어오지 않아서, 걍 ~ 이렇게 씁니다.
: 더 좋은 방법 있으면 저한테도 알려 주세요..
:
: 서기사랑 님이 쓰신 글 :
: : 안녕하세요~ 처음으로 질문을 해봅니다 ^^*
: :
: : DB연결이 되어있는 상태에서 도중에 네트워크 장애로 인해서 DB서버가 죽는 경우에
: :
: : 쿼리문 명령을 하게 되면 프로그램이 멈춰버리더라구요~
: :
: : 그래서 쿼리문을 try-catch로 에러코드로 통신 오류가 났는지 체크해보려고
: :
: : 알아봤는데 에러코드가 정확하게 안나타나더라구요~General SQL error라고 에러코드는 13059번으로
: :
: : 리턴이 되더라구요~ 딱 통신문제라고 알려주기만 하면 좋을텐데...
: :
: : 제가 잘 못찾아서 그런지..정보가 없더라구요..
: :
: : 제가 생각하기에는 다른 분들도 이 고민은 해보셨을텐데...
: :
: : 어떻게 해결 하셨는지 너무 궁금합니다..
: :
: : 그리고 DB연결 시도 시 연결이 안될때 걸리는 시간(timeout)이 너무나 깁니다..
: :
: : 연결 시도 TimeOut은 어디서 설정해야 되나요?
: :
: : 참고로 MySQL, MS SQL 모두 쓰고 있습니다..

+ -

관련 글 리스트
51041 네트워크 장애로 인해 DB연결이 끊어졌을 경우 자동 복구 하려고 하는데요... 서기사랑 1224 2007/10/25
51074     Re:네트워크 장애로 인해 DB연결이 끊어졌을 경우 자동 복구 하려고 하는데요... 땅주인 1457 2007/10/29
51078         Re:Re:네트워크 장애로 인해 DB연결이 끊어졌을 경우 자동 복구 하려고 하는데요... 서기사랑 1866 2007/10/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.