2013-03-21 2 views
1

< 세션 시간 초과 >을 web.xml에서 30 분으로 설정했습니다. 내가 틀렸어도이 세션은 세션이 비활성화 된 경우에만 30 분 동안 로그 아웃해야합니다. 하지만 내 응용 프로그램 사용자는 활동에 관계없이 30 분 안에 로그 아웃됩니다. 누구든지 이걸 도와 주실 래요? 문제가있는 곳이 아닙니다.활동과 관계없이 30 분 동안 세션 로그 아웃

+2

web.xml에서 30 분으로 설정 한 항목은 무엇입니까? 세션 수명을 30 분으로 설정 한 경우 30 분이 아닌 30 분 동안 사용하지 않아야합니다 (쿠키 만료는 서버에 대한 요청마다 새로 고쳐 져야 함). 두 페이지 뷰 후에 브라우저에서 쿠키 만료를 확인하고 페이지 뷰에서 30 분 또는 첫 페이지 뷰에서 30 분인지 확인하십시오. – Adrian

+0

모든 활동이 어떻게 든 세션을 넘어서 일어난다 고 생각합니다. 아마도 쿠키는 다른 활동이나 이와 유사한 것으로 보내지 않을 것입니다. – AlexR

+0

답장을 보내 주셔서 감사합니다. 죄송 텍스트는 HTML 번역에서 길을 잃었습니다. session-timeout은 30 분으로 설정됩니다. 좋습니다, 나는 쿠키 만료 시간을 시도하고 볼 것입니다. – user2195797

답변

0

모든 요청에 ​​대해 새 세션을 받고 있지 않은지 확인하십시오. 이것을하기위한 쉬운 방법은 세션에 Integer를 저장하고 모든 요청에 ​​대해 Integer를 증가시키는 것입니다. 그런 다음 Integer 또는 String과 같은 정수 값을 응답에 추가하고 페이지에 표시합니다 (원하는 경우 페이지에 숨김 필드로 추가 할 수 있습니다).

+0

모든 요청에 ​​대해 새 세션을 얻는 것이 매우 분명하다고 생각합니다 - 30 분 후에 세션이 만료되는 것이 틀림없이 더 분명합니다 (사용자가 30 분 이내에 사용을 중지 할 수 있다고 가정). –

0

예기치 않은 세션 시간 초과가 발생할 수 있으며 추가 정보없이 많은 이유가있을 수 있습니다. 다만 몇 가지 지침과 제안 만 할 수 있습니다.

  1. 클러스터를 사용합니까? 로드 밸런서의 알고리즘과 설정을 확인하십시오. 사용자가 30 분 후에 클러스터의 다른 서버로 전달되도록 요청합니까? 클러스터에 세션 복제가 구성되어 있습니까? 로드 밸런서가 범인이 아닌지 확인하는 또 다른 쉬운 방법은 클러스터 내의 다른 모든 서버를 종료하는 것입니다. 따라서 요청은 동일한 서버로 전송되도록 보장됩니다. 그런 다음 사용자 활동과 관계없이 30 분의 시간 초과가 계속 발생하는지 확인할 수 있습니다. 서버 액세스 로그는 사용자가 서버간에 반송되는지 여부를 확인하는 데 도움이 될 수 있습니다.
  2. ieHTTPHeaders와 같은 브라우저 플러그인이있는 경우 각 요청에서 보낸 세션 쿠키를 확인하고 변경 사항이 있는지 확인하십시오.
  3. 또 다른 질문은 web.xml에서 30 분의 시간 제한을 15 분으로 변경하면 사용자 활동과 관계없이 15 분마다 사용자가 시간 초과합니까?