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 7443 게시물 읽기
No. 7443
PostgreSQL lib를 이용한 코딩중 PQexec()함수를 쓰는데...
작성자
영광
작성일
2008-06-17 15:48ⓒ
2008-06-17 15:49ⓜ
조회수
6,470

안녕하세요

PostgreSQL라이브러리 사용하여 C프로그래밍 하고 있는데요
초당 몇개의 패킷이 들어오고 테이블에 인서트 문을 실행하면 PQexec() 문제가 없는데
초당 수백개의 패킷을 인서트 시킬려고 하면 
PQexec() 이 함수에서 프로그램이 죽어버리는 현상이 있습니다...

  char buf[200];
  PGresult* result;
  sprintf(buf, "INSERT INTO info values(now(), \'%s\', \'%s\')", \
    account, ip);

  result = this->doSQL(cnn, buf);

  printf("%x \n", result);
  if (PQresultStatus(result) != PGRES_COMMAND_OK)
  {
    puts("sql insert error");   
  }
  PQclear(result);

위와 같이 했고요, 아래와 같이 실행을 합니다.

PGresult* DB::doSQL(PGconn* cnn, char* sql)
{
 PGresult* result;
 puts("1");
 //this->m_mutex.Lock();
 result = PQexec(cnn, sql);                ////// 이 부분에서 죽습니다...
 //this->m_mutex.Unlock();
 puts("2");
 return result;
}

가끔 가다가 계속 잘 실행이 되는 경우가 있는데 대부분의 경우 PQexec()에서 죽어버립니다.
혹시 아시는 분이 계실까요...;;;

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

혹시 multi threaded 환경인가요?

아니라면 추적해 들어가보는 수 밖에 없을 것 같은데요.

프로그램에서는 특별히 이상한 부분을 찾지 못했습니다.

쿼리가 200바이트 이상 커질 일은 없겠죠? ^^

박성철(gyumee)님이 2008-06-17 16:57에 작성한 댓글입니다.

gdb 돌려보시면 -.-;;;

에러가 뭐라고 나는지 올려주셔야 할 것 같네요

세그먼트 폴트인지 버스 에러인지 뭐 그런;;

신기배(소타)님이 2008-06-17 17:48에 작성한 댓글입니다.

흠.. 위에 소스에서 난게 아니었어요 ;;;


아무래도 다른쪽 같아 찾아본 결과..;; 다른쪽 소스에서 잘못된 부분들이 있었네요... 

익셉션 처리를 안했던것;;이 문제였습니다.


답글 달아 주셔서 감사합니다..

막막했는데 답글보니 여러모로 도움이 되는군요...


늘 수고하시는 두분, 장마철 탈없이 잘 나셔요~~

감사합니다...

영광님이 2008-06-18 14:27에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
7447order by에 관한 질문입니다. [1]
Choi
2008-06-23
6003
7446insert 후 select만 일어날때 어떤 DBMS가 가장 빠를까요? [3]
도재영
2008-06-21
7530
74457.3.4 >> 8.3.3 업그레이드 [1]
김지현
2008-06-19
6740
7443PostgreSQL lib를 이용한 코딩중 PQexec()함수를 쓰는데... [3]
영광
2008-06-17
6470
7442postgreSQL은 MySQL보다 너무 느리다.?? [4]
성실
2008-06-13
7186
7441CREATE USER 시 사용자가 있는지 검사한 후 사용자 생성방법? [2]
김대청
2008-06-07
6609
7440프로시져에 대한 질문 [2]
윤일
2008-06-05
6440
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다