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

FireBird Q&A
[1608] Re:Re:Re:[질문]접속후 끊어지지 않게 하려면? -> 박지운.임프님께 다시 문의합니다.
박지훈.임프 [cbuilder] 2380 읽음    2005-10-13 08:36
제 생각은 아직도...
클라이언트가 연결을 사용하지 않는다고 해서 서버쪽에서 연결을 끊지는 않는다 쪽입니다. ^^;;
어제 오후 5시쯤에 미나스트리스님의 글을 보고 바로 테스트를 걸었습니다.

여기 볼랜드포럼의 서버는 크게 웹서버와 디비서버로 나뉘어 있습니다.
웹서버쪽에는 IIS와 게시판 ISAPI가 깔려있고 디비서버쪽에는 파이어버드가 깔려있지요.
그리고 두 서버는 IDC의 같은 랙에 있어서 누가 일부러 UTP 케이블을 잡아뽑지 않는 한은 네트웍 오류로 디비 연결이
끊어질 리는 없습니다.

어제 제가 건 테스트는 뭐 간단한 건데, 웹서버(그러니까 디비서버 입장에서 보면 클라이언트죠)에 설치되어 있는
IBExpert를 실행하고 디비서버의 파이어버드로 연결했습니다. 그리고 간단한 셀렉트 하나를 날린 후 IBExpert를 닫지
않고 그냥 놔뒀습니다. 방금.. 그러니까 오전 6시 40분이 조금 넘어서 웹서버에 실행중인 IBExpert에다 그대로 다시 셀렉트
하나를 날렸습니다. 잘 나오는군요.

IBExpert는 만약 디비 연결이 끊어지면 자동으로 복구하지 않고 사용자에게 다이얼로그를 보여주면서 다시 연결할 것인지
그냥 둘 것인지를 물어봅니다. 말씀드렸다시피 회사에서는 네트웍 연결이 순간적으로 떨어지는 경우가 있어서 이 재연결
다이얼로그를 자주 봤습니다. 그런데 방금 다시 쿼리를 날렸을 때는 재연결 다이얼로그가 뜨지 않는군요.

결과를 요약하면, 어제 오후 5시경부터 오늘 오전 6시 40분까지 13시간 40분동안 연결이 유지되었다는 얘깁니다.

작년이던가 재작년쯤에, 한번은 일주일 가까이 놔둔 적도 있었습니다.
다시 IBExpert에서 쿼리를 날렸을 때, 끊어지지 않았더군요.

혹시나 해서 뉴스그룹에도 뒤져봤는데, 해당될 만한 정보가 전혀 없더군요.

마지막 희망 하나는... 두시간짜리 TCP KeepAlive 메시지입니다.
MS SQL서버 관련 글들에서 찾았는데..

There is a 2 hour tcp session timeout and 1 hour for name pipe sessions.
But, this is controlled by the OS, not SQL.
MS의 직원이란 사람이 답변한 것이 달랑 이 두문장 뿐, 다른 어떤 설명도 없더군요.
OS가 기본 두시간마다 TCP 세션이 살아있는지 체크하기 위해 ACK 메시지를 날리는 걸 말하는 건데...

관련성이 있을 것도 같은데, 제가 인터베이스 연결에서는 네트워크 에러 외에는 한번도 끊어지는 걸 본적이 없으니 뭐라고
딱히 말하기가 그렇군요.

그럼..


미나스트리스 님이 쓰신 글 :
: 박지운.임프님 네트워크 문제로 끊어지는 것이 아니라 FireBird 엔지이 일정 시간 지나면 끊도록
: 처리 하는것 같습니다. 이러한 기능을 죽이는 방법이 무엇인지 알고 싶읍니다.
: 최근 FireBird 버전에 이러한 현상이 있는것 같습니다.
:
: 박지훈.임프 님이 쓰신 글 :
: : 정상적인 상황에서는 하루가 아니라 며칠이라도 이유없이 DB 연결이 끊어지지 않습니다.
: : DB 서버로의 연결이 끊어진다면, 아마도 네트워크가 순간적으로 끊어졌다가 붙은 것이 이유일 가능성이 높죠.
: : 서버쪽이나 클라이언트쪽 어느쪽이든지 네트워크가 끊어진다면 당연히 DB 연결도 끊어질 수밖에 없죠.
: :
: : 좀 거리가 있긴 하지만, 예를 들면 제가 포럼서버로 터미널 연결을 해놓고 작업을 하다가 몇시간씩 잊고 있을 때가 있습니다.
: : 그런데 이게, 집에서는 최대 며칠씩도 그냥 놔둬도 끊어지는 경우가 없는데 회사에서는 몇시간만 있으면 끊어지더군요.
: : 회사의 인터넷 라인이 좀 불안해서 아주 순간적으로 끊어졌다가 재접속되는 경우가 많아서 그렇습니다. 그런 경우에
: : 웹 연결은 원래 비연결 지향이라 끊어졌던 사실을 알 수 없지만 DB연결이나 터미널 연결, FTP 연결의 경우에는 연결이
: : 끊어져 있는 것을 발견할 수 있는 겁니다.
: :
: : 만약 연결하는 클라이언트 프로그램이 직접 작성하신 거라면, 클라이언트에서 어떤 작업을 할 때마다, 예를 들면 쿼리를
: : 열거나(Open) 실행(Execute)할 때마다 그 전후에서 try... except 등의 예외처리 블럭으로 막고, 연결이 끊어졌다는
: : 예외가 발생하면 DB를 다시 연결을 시도하는 방식을 쓰시면 됩니다.
: :
: : 그럼...
: :
: :
: : 초보자 님이 쓰신 글 :
: : : 파이어 1.5를 사용하고 있습니다.
: : :
: : : 클라이언트에서 연결후 장시간 쿼리를 날리지 않고 있다가
: : : 프로그램을 실행하면 접속이 종료되었다고 나와서요
: : :
: : : 한번 접속후 로그아웃이 되기 전까지 컨넥션이 계속 유지되게 하려면
: : : 어떻게 해야 하나요?
: : :
: : : 보통 오전에 접속해서 하루종일 아무것도 안하다가 퇴근시에 잠깐 작업을하는경우가 있거든요

+ -

관련 글 리스트
1601 [질문]접속후 끊어지지 않게 하려면? 초보자 1466 2005/10/08
1603     Re:[질문]접속후 끊어지지 않게 하려면? 박지훈.임프 2288 2005/10/10
1607         Re:Re:[질문]접속후 끊어지지 않게 하려면? -> 박지운.임프님께 다시 문의합니다. 미나스트리스 1902 2005/10/12
1608             Re:Re:Re:[질문]접속후 끊어지지 않게 하려면? -> 박지운.임프님께 다시 문의합니다. 박지훈.임프 2380 2005/10/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.