Pro *c++에서 멀티 스레드로 작업시...연결이 끊어져 버립니다.

ring의 이미지

ProC++ 을 이용해서 작업을 하고 있습니다.

프로그램은..단순 DB 미들 서버 역할을 하고 있는겁니다.

클라이언트가 서버에 요청을 하면 서버는

클라이언트 -> 요청 -> ( [스레드 생성] DB Connect -> DB작업 처리 -> DB Close [스레드 소멸]) ->응답

하는 형식입니다.

Pro * C++ 문서 보니까 sql_context를 이용해야된다고 해서....

클라이언트 -> 요청 ->

( {sql_context 초기화}[스레드 생성] (context 이용)DB Connect -> (context 이용)DB작업 처리 -> (context이용)DB Close (sql_context 메모리 free)[스레드 소멸])

->응답

이렇게 바꿔주었습니다.

클라이언트가 요청을 하면 하나의 스레드가 생성되고 요청이 끝나면 스레드가 소멸되는거죠..

그런데 문제는 엉뚱한 곳에서 발견되었습니다.

요청을 계속..하니까...갑자기..ORA-12154 접속 에러가 뜨더군요... (프로그램은 다운 되지 않구요)

그리고 그 이후로 계속 접속을 시도하면 접속 에러가 계속 뜨구요..

그래서 프로그램을 강제 종료 시키고 다시 실행 시키면 다시 접속이 되구요..

이런 경우에는 DB문제 입니까 아니면 프로그램 문제 일까요?

sql_context 같은경우에도 분명히 메모리 해제를 시켜주었는데 말입니다.

처음으로 오라클을 이용해서 작업하는데......오라클에 대한 이해가 없으니 ...머리만 아플뿐입니다.

도와주십시요.....

MackTheKnife의 이미지

오라클에서 동시접속 연결 제한이 있는것으로 알고있읍니다.
DB 연결제한을 늘려주세여.