database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 9682 게시물 읽기
No. 9682
libpq 사용시 물리적 네트워크단선에 대한 처리 방법 문의
작성자
질의
작성일
2016-07-27 10:03ⓒ
2016-07-27 10:15ⓜ
조회수
7,944

 postgresql 9.2 / C++(MFC) / libpq  사용중입니다.

 

libpq 함수중에 IsConnection 으로 연결상태를 체크했는데,

// ConnStatusType Status = PQStatus(m_pConn);

 

네트워크가 물리적으로 단선되었을때 해당 함수에서 CONNECTION_OK 를 리턴합니다.

이럴때는 어떻게 검사하는게 좋을까요?

이 글에 대한 댓글이 총 3건 있습니다.

제가  코딩한다면 CONNECTION  체크시,

"SELECT 1" 이런 간단한 쿼리를 실제 수행해볼것 같습니다.

김성식(hellower)님이 2016-07-27 10:24에 작성한 댓글입니다.

 SELECT 1  쿼리 수행시 연결상태일떄와 비연결상태일때 어떤식으로 데이터가 오나요?

질의님이 2016-07-27 14:46에 작성한 댓글입니다. Edit

모든 서버 - 클라이언트 간 통신이 원활한가?를 검사하는 방법은

비동기식으로 timeout 값을 주고, 해당 서버 - 클라이언트간 사용하는 가장 적은 비용의

요청 - 응답을 확인하는 것입니다.  (비동기식 timeout 값이 지정된 쿼리를 사용해야지 위와 같은 클라이언트가 세션 종료 신호를 보내지 않고 연결이 끊겨 버린 것에 대한 감지 시간을 최소화 할 수 있습니다. 최악의 경우는 서버 쪽에서는 그 해당 클라이언트 소켓을 서버 재실행하기 전까지 연결이 유효한 소켓이라고 판단하기도 합니다)

어떤 것도 믿으면 안됩니다. :)

성식님처럼 직접 쿼리를 보내고, 그 응답이 오는지를 확인하는 것이 제일 확실합니다.

좀 비용이 더 들지만, 서버가 분벼서 쿼리를 수행할 수 없을 정도에 대해서도 어떤 조치를 취하려고 검사를 한다면, 이 때는 어느 정도 디스크 I/O가 발생하는 쿼리를 이용하는 것이 좋겠죠.

 

김상기(ioseph)님이 2016-07-28 23:53에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9685PG 설치 시 READLINE 관련 오류 질문입니다. [2]
NK
2016-07-31
7861
9684오라클 쿼리를 PGSQL로 변환 [2]
탁구공
2016-07-29
9171
9683postgresql 클로닝을 떳는데요 [1]
서호연
2016-07-28
8864
9682libpq 사용시 물리적 네트워크단선에 대한 처리 방법 문의 [3]
질의
2016-07-27
7944
9681psql 한글 깨짐 문의 [4]
하하
2016-07-26
11553
9680c# db저장과 관련하여서 질문이요 [1]
학생
2016-07-25
7573
9679postgresql에 byea타입으로 저장된 이미지를 php에서 보여줄려면? [2]
이기자
2016-07-25
8043
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다