Hsqldb Server 재기동 시 오류
- webapp 초기 시작 시 문제가 없으나 tomcat manager 에서 Stop -> Start 시 오류 발생
<<<오류 메세지>>
java.sql.SQLException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@f3811c1a[file =C:\myhsql\db\sjdb.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2010-10-19 12:46:09 heartbeat - read: -6750 ms. |
문제는 Lock 파일이였음.
Lock 파일의 기능에 대한 설명은 아직 못 찾음
<<Lock 파일의 생성 규칙>>
a lock file is created for each file database that is opened for read and write. |
Lock 파일이 잘못된건 hsqlServer를 잘못 종료 한 것 인가? 라고 판단
종료는 spring bean으로 등록 한 후 destroy-method로 지정
<<해당 코드>>
server.stop(); server.shutdown(); server = null; |
server는 제대로 종료 하였지만... 오류가 발생?
여기서 부터는 =_=; 감으로 작업
lock 파일을 hsql server 종료 시 마다 지우는 건 =_=; 하수 같은 플레이 같고...
...
=_=; 이렇게 해볼까 ? 하고 sql문을 shutdown 명령어 수행 후 서버 셧 다운
=_=; 어...된다..
그래서 수정된 코드
jdbcTemplate.execute("shutdown"); try { ((BasicDataSource)dataSource).close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } server.stop(); server.shutdown(); server = null; |
소 뒷걸음 치듯 디버깅 ㅠㅠ
댓글
댓글 쓰기