CONTEXT/WEB-INF/web.xml에 session timeout 설정이 없는 경우에는 JEUS의 Servlet Engine에서 가지고 있는 webcommon.xml에 설정된 값이 적용되고,
이것도 설정이 안된 경우에는 $JEUS_HOME/config/[HOSTNAME]/[SERVLET_ENGINE_NAME]/WEBMain.xml에 설정된 값이 적용되게 됩니다.
session timeout의 우선 순위는 다음과 같습니다.
1. CONTEXT/WEB-INF/web.xml의
---------------------
<web-app>
...
<session-config>
<session-timeout>30</session-timeout>
</session-config>
...
---------------------
2. SERVLET_ENGINE/webcommon.xml
---------------------
<web-app>
...
<session-config>
<session-timeout>30</session-timeout>
</session-config>
...
---------------------
3. SERVLET_ENGINE/WEBMain.xml
---------------------
<web-container>
<context-group>
...
<session-config>
<timeout>20</timeout>
<shared>true</shared>
</session-config>
...
---------------------
JEUS에서 세션의 타임아웃은 HTTPSession.invalidate()메소드가 호출되지 않는 이상, 세션체크타임아웃 설정값에 설정된 시간마다 체크하여 세션을 invalidate시키게 됩니다.
해당 설정값은 WEBMain.xml의 web-container > monitoring > check-session 이며
<check-session>60000</check-session>
와 같이 설정하면 60초마다 세션타임아웃을 체크한다는 말입니다.
이값은 별도의 설정이 없을 경우, Default값인 5분(300000mc)이 적용되므로 세션타임아웃을 2분으로 설정하여도 최소 세션타임아웃체크시간인 5분 이상이 되어야 세션매니저의 의해 세션의 invalidate가 발생합니다.
따라서, 세션타임아웃을 5분이하로 세팅하실경우, 이 check-session 을 더 적게 잡아주셔야합니다.
참고로 check-session 이 길면 길수록 퍼포먼스가 향상됩니다.
<<WEBMain.xml>>
<web-container>
<monitoring>
<check-thread-pool>60000</check-thread-pool>
<check-class-reload>60000</check-class-reload>
<check-session>120000</check-session>
<check-db-connection-pool>60000</check-db-connection-pool>
</monitoring>
<context-group>
<group-name>MyGroup</group-name>
<group-docbase>web</group-docbase>
<session-config>
<timeout>60</timeout>
<shared>true</shared>
<persistent>true</persistent>
</session-config>
=============================================================================
JEUS4.2에서는 web.xml의 session-timeout설정보다WEBMain.xml의 timeout값이 우선시 되어 적용됩니다. WEBMain.xml에 timeout설정이 없을경우, web.xml의 session-timeout을 참조하며 가장 나중에 webcommon.xml파일의 session-timeout값을 찾게 되어있습니다.
따라서 설정하신 파일중 WEBMain.xml의 세션설정을
참고로 javax.servlet.http.HttpSession.getMaxInactiveInterval()메소드를 사용하시면 현재 세션에 세팅된 세션타임아웃값을 출력해 볼 수 있으니 WEBMain.xml webcommon.xml, web.xml의 세션타임아웃값에 각기 다른 값을 설정해놓고 어떤값이 적용되는지 직접 확인해 보시는것도 좋을 것 같습니다.
'자바환경설정' 카테고리의 다른 글
[JAVA] 이클립스에 JAD(역컴파일러) 플러그인 설치하기 (0) | 2010.04.12 |
---|---|
[JAVA] Eclipse 에서 CVS 연동개발하기 (0) | 2010.04.12 |
[JAVA] 이클립스 메모리 설정 (0) | 2010.04.12 |
Log4j - 로그를 기록하자. (0) | 2010.04.08 |
web.xml struts-config.xml 에 대한 설명 (0) | 2010.03.24 |