Tomcat saveOnRestart 속성 : 끊기지 않는 세션 유지
Tomcat 4.1 부터 지원하는 기능입니다.
Tomcat 서버를 재시동하거나 심지어 컴퓨터를 껐다 켜도 기존의 세션이 백업이 되는 기능입니다.
일정시간 사용되지 않는 세션은 하드에 저장되어서 메모리를 차지하지 않게 됩니다. 그러다 다시 그 세션의 요청이 들어오면 복원되어서 사용이 됩니다.
톰캣을 셧다운할 때에 현재 있는 모든 세션이 저장됩니다.
server.xml 의 <Manager> 엘리먼트를 통해서 이에대한 세팅을 변경할 수 있습니다.
아래 링크에서 saveOnRestart 검색 참고하시면 됩니다.
https://goodcodes.tistory.com/entry/Tomcat-Session-Management-%EC%84%B8%EC%85%98-%EA%B4%80%EB%A6%AC
*속성 (Attribute)상세
saveOnRestart : true가 되면 톰캣 셧다운시에 모든 활성 세션이 저장되고 시작시에 저장장치로부터 리로드된다.
참고 : https://blog.naver.com/ikos/20031328523
http://tomcat.apache.org/tomcat-5.5-doc/config/manager.html
SESSION.ser 파일을 찾을 수 없다고 에러가 나는 경우에는 saveOnRestart="true"로 설정해줘야 한다.
<!--
<Manager className="org.apache.catalina.session.PersistentManager"
debug="0"
saveOnRestart="true"
maxActiveSessions="-1"
minIdleSwap="-1"
maxIdleSwap="-1"
maxIdleBackup="-1">
<Store className="org.apache.catalina.session.FileStore"/>
</Manager>
-->
saveOnRestart="true" 유지
saveOnRestart="false" 유지하지 않음
================================================
추가
WAR 파일 웹서버에 배포시 톰캣을 재시작하지 않는 방법
참고 : https://savinglove.tistory.com/21
tomcat/conf/server.xml 파일에 보면
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
에서 auto Deploy=true 이면 톰캣을 재시작 하지 않아도 war 파일이 자동으로 배치 된다.
주의 해야 할 부분은 새로운 War 파일로 update 했을 경우
이미 배치 되어 있는 웹폴더를 삭제 해주어야 한다. 그래야 새로 배치 되면서 변경된 war 가 적용이 된다.
War 적용 순서)
1. War 파일을 를 업데이트 한다.
2. 기 배치 되어 있는 폴더를 삭제 한다.
그러면 톰캣이 다시 War 를 자동으로 압축 해제 한다.
기 배치된 폴더를 삭제 하지 않으면 새로운 War 파일은 웹에 적용 되지 않는다.
War 의 자동 배치를 위해서 tomcat/webapps 디렉토리에 War 파일을 두는것을 권장한다.
Webapps 디렉토리가 아닌곳에 War 파일을 두면 자동 배치가 안되었다. (server.xml 에 context 등으로 별도 웹폴더 관리시)
이때에는 webapps 폴더안에 이미 배치되어 있는 해당 웹폴더를 삭제하고 톰캣도 다시 제시작 해주어야 War 가 webapps 폴더에 배치된다.
War 배포시에 tomcat/webapps 폴더에 War 파일을 두는 것이 업데이트를 위해서도 좋을것 같다는 생각이다.
운영파일 관리를 위해서 webapps 디렉토리가 아닌 별도의 디렉토리를 웹폴더로 설정 하여 운영 해도 좋지만 War 파일 배포시 톰캣을 별도로 재시작 해주어야 하는것이 단점이다.
==================================================
추가
Tomcat에 war파일 배포하는 방법
참고 : https://its-easy.tistory.com/4
서버에 프로젝트를 올리는 방법 중 가장 간단하고, 많이 쓰이는 방법 중 하나는 Tomcat에 war파일을 배포하는 것입니다. 방법은 아래와 같습니다.
일반적인 경우
1. 프로젝트 war파일 생성
- Eclipse에서 프로젝트 우클릭 -> Export - Web - WAR file 선택 -> Next버튼 클릭
- Destination에 war파일 생성될 위치 지정하고, Finish버튼 클릭
2. Tomcat 폴더/webapps 폴더에 생성된 war파일 이동
3. Tomcat 기동
- Linux 서버일 경우는 Tomcat 폴더/bin/startup.sh를 실행
- Window 서버일 경우는 Tomcat 폴더/bin/startup.bat를 실행
4. http://localhost:8080/war파일명 으로 접속해서 테스트
ROOT에 war파일 배포할 경우
1. 프로젝트 war파일 생성
- Eclipse에서 프로젝트 우클릭 -> Export - Web - WAR file 선택 -> Next버튼 클릭
- Destination에 war파일 생성될 위치 지정하고, 파일명은 반드시 'ROOT.war'로 입력한 후 Finish버튼 클릭
* 파일명을 꼭 ROOT로 해야하는 것은 아니지만 ROOT가 아닌 다른 걸로 하려면 별도의 설정이 필요함
2. Tomcat 폴더/webapps/ROOT 폴더의 이름을 변경
* Tomcat을 설치하면 위 경로에 ROOT폴더가 있는데 이 폴더가 존재하면 ROOT.war가 압축해제되지 않음
3. Tomcat 폴더/webapps 폴더에 생성된 ROOT.war파일 이동
3. Tomcat 기동
- Linux 서버일 경우는 Tomcat 폴더/bin/startup.sh를 실행
- Window 서버일 경우는 Tomcat 폴더/bin/startup.bat를 실행
4. http://localhost:8080/ 으로 접속해서 테스트
Tag
tomcat war 배포
tomcat war deploy
tomcat war root 배포