Pro *c++에서 멀티 스레드로 작업시...연결이 끊어져 버립니다.
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 같은경우에도 분명히 메모리 해제를 시켜주었는데 말입니다.
처음으로 오라클을 이용해서 작업하는데......오라클에 대한 이해가 없으니 ...머리만 아플뿐입니다.
도와주십시요.....
오라클에서 동시접속 연결 제한이 있는것으로 알고있읍니다. DB 연결제
오라클에서 동시접속 연결 제한이 있는것으로 알고있읍니다.
DB 연결제한을 늘려주세여.
댓글 달기