|
알론소 님이 쓰신 글 :
: ADOConnection을 생성시키고
: DB접속정보를 입력한뒤에
: Open()함수를 이용해서 오픈시키거든요
:
: 근데 만약에 DB와 연결이 끊어졌는데
: select라던지 update가 안되고
: 오라클 연결접속 에러라던지 이런 에러가뜨면
:
: 이제 ADOConnection은 CLOSE가 되고
: 연결 안되었으니
: conneted는 false가 될것이고
:
: 계속 DB와의 재접속을 시도하는데
: OPEN()가 되면 이제 연결이 된거잖아요
:
: 그럼 이제 SELECT라던디 INSERT UPDATE같이
: 이런 것들을 수행이 되야하는데 연결이되었으니
: 연결만 되었을뿐이지
: 수행이 되지않으면 무슨문제인가요???
:
: 연결이 끊어지지않는다면 문제는 안생깁니다.
: 근데 연결이 끊어지고 다시 재접속 되는경우에
: 연결은 되었는데 select가 안되는거에요 물론 db에 데이터도
: 들어가지도않구요
:
: 그래서 다시 연결되어서 open()을 할때
: 그전에 디비접속정보를 다시 또넣었습니다.
: 그런대도 안되던데 왜그런지모르겠습니다
:
: 도움좀주세요.ㅠㅠ
정리를 좀 해서 쓰시지.. 읽어봐도 아리까리 해서..
암튼..
디비가 끊어진 상태에서 insert를 하고(당연히 Exception이 나겠지요..)
다시 디비를 연결해서 select를 하면 데이터는 당연히 없겠지요.
MySQL에서 그런 경우를 보았는데.. 세션 유지 시간을 짧게 잡아놔서..
일정 시간이 지나면 DB Connection이 끊어지는 경우를 보았는데요..
ADO Component에서 이벤트로 알려주지도 않구요..
그래서,
일정 시간 주기로 해서 DB에 의미 없는 쿼리를 계속 날리는 것으로 해결을 했는데요.(30초 Term)
만약, 이런 쿼리에 응답이 없거나 Exception이 계속 날 겨우 DB가 끊어진 것으로 간주하고
재접속하는 루틴등을 만들어 주어야 합니다. DB 접속 상태가 불안한 경우에 한하지요.
그런데, DB Connection이 불안한 것이 아마 네트워크 상태가 불안하던 지,
서버가 상태가 좋지 않던가 그런 경우가 더 많을 것 같네요.
DB Connection 유지에 많은 공을 드리는 것을 잘 보지를 못해서..
암튼, DB가 자꾸 끊어진다면 네트워크나, 서버의 상태를 점검하는게 먼저이지 않을까 하네요.
그럼 이만..
|