현재 odbc 기반 adodb를 쓰고 있습니다.
그리고 멀티스레드를 사용하고 있습죠
현재 db에 접근할때는
한번 open (초기화 및 연결)을 하고 sql문 실행하고 close (정리 및 끊기)를 하는데요
이걸 멀티스레드로 막 돌리면 뭔가 오류가 날거같아서
동기화 시켜줬습니다.
그래서 프로그램을 돌리는데
1~2시간, 적게는 30분? 정도씩 돌리다가
어느순간에 close 부분에서
ConnectionPtr 을 close 해주고 있는데
release에서 오류가 나더라구요...
그래서 왜 오류나나 봤더니
NULL 포인터를 참조했다더군요.........
분명 open부터하고 close를 했는데 참...
( open에서 실패하면 false 반환해서 체크까지 해놨어요 )
지금 CoInitialize 인가를 멀티쓰레드 되게 해놨는데
사실 멀티스레드할때 open이랑 close까지를 완전히 뮤텍스로 락걸어놨는데
왜 하다가 NULL포인터가 될까요.............
너무 빨리 돌려서 그런가
지금 insert문과 select문 둘다 오류가 나더라구요........
이거 해결방법 아시나요~?
댓글 0