Tomcat에 배포 된 Webapp를 작성하려면 Play를 사용하고 있습니다. 응용 프로그램은 대용량 데이터를 처리하지 않기 때문에 최대 절전 모드에서 기본 H2 데이터베이스를 사용하고 있습니다. 새 버전의 응용 프로그램을 배포하려면 tomcat을 종료하고 이전 webapp 및 WAR을 지우고 새로운 WAR를 추가 한 다음 다시 시작합니다. 재생! H2를 올바르게 종료하지 않습니다.
이
는 며칠 전, 나는 데이터베이스 구성 요소를 추가 할 때까지 일했다. 이제 앱을 다시 배포 할 수없는 경우가 있습니다. 이전 디렉토리를 삭제하면 다음 구조로 자동 생성됩니다.$ ls -laR myapp/
myapp/:
total 24
drwxr-xr-x 3 root root 4096 Aug 24 17:20 .
drwxr-xr-x 13 root root 4096 Aug 24 17:20 ..
drwxr-xr-x 3 root root 4096 Aug 24 17:20 WEB-INF
myapp/WEB-INF:
total 24
drwxr-xr-x 3 root root 4096 Aug 24 17:20 .
drwxr-xr-x 3 root root 4096 Aug 24 17:20 ..
drwxr-xr-x 3 root root 4096 Aug 24 17:20 application
myapp/WEB-INF/application:
total 24
drwxr-xr-x 3 root root 4096 Aug 24 17:20 .
drwxr-xr-x 3 root root 4096 Aug 24 17:20 ..
drwxr-xr-x 3 root root 4096 Aug 24 17:20 db
myapp/WEB-INF/application/db:
total 24
drwxr-xr-x 3 root root 4096 Aug 24 17:20 .
drwxr-xr-x 3 root root 4096 Aug 24 17:20 ..
drwxr-xr-x 2 root root 4096 Aug 24 17:20 h2
myapp/WEB-INF/application/db/h2:
total 24
drwxr-xr-x 2 root root 4096 Aug 24 17:20 .
drwxr-xr-x 3 root root 4096 Aug 24 17:20 ..
-rw-r--r-- 1 root root 100 Aug 24 17:20 play.lock.db
WAR가 압축 해제 될 때도 마찬가지입니다.
는 최근 "H2는 잠금 워치 독 파일"내 애플처럼 뭔가라는 프로세스를 종료하지에 대해 불평 catalina.out 로그에 의해 메시지 재능을 발견. H2 문서에 대한 간략한 검색을 기반으로 프로세스가 내 앱을 방해하고 있다고 생각합니다.SEVERE: The web application [/myapp] appears to have started a thread named [H2 File Lock Watchdog /var/lib/apache-tomcat-6.0.32/webapps/myapp/WEB-INF/application/db/h2/play.lock.db] but has failed to stop it. This is very likely to create a memory leak.
그래서, 어떻게이 프로세스를 종료 않습니다
편집
다음 로그 파일의 불평 라인입니까? 내 컴퓨터가 아니기 때문에 컴퓨터를 다시 시작할 수 없으며 top
또는 ps
으로 워치 독을 찾을 수 없습니다. Play에서 자동으로 종료하는 방법이 더 좋겠지 만 배포 스크립트에 추가하지는 않습니다.
당신이 이것을 읽었다면 백만에게 감사드립니다!
언급 할 가치가있는 또 다른 포인트는 결국 데이터베이스 프로세스가 결국 죽는다는 것입니다. 얼마나 걸릴지는 확실하지 않지만 몇 시간 만에 확인 할 수 있습니다.그것을 기다리는 것은 일종의 해결책 일 뿐이지 만 아무것도 아닌 것보다 낫다. – andronikus