스케줄된 무효성
세션 제한시간 매개변수를 기초로 한 간격으로 정기적인 무효화 타이머에 의존하는 대신 분산 환경에서 무효화된 세션에 대해 스캔할 수 있도록 세션 관리 기능에 특정 시간을 설정할 수 있습니다.
이 기능이 분산 세션에서 사용될 경우 다음과 같은 장점이 있습니다.
- Application Server 활동이 적은 시간에 무효화된 세션을 스캔하도록 스케줄할 수 있습니다. 이를 통해 데이터베이스 또는 다른 WebSphere® Application Server 인스턴스의 무효화 스캔과 서비스 HTTP 세션 요청에 대한 읽기/쓰기 조작 사이에서 경합을 피할 수 있습니다.
- 세션의 최종 액세스 시간에 각 HTTP 요청을 작성할 필요는 없으므로 서비스 메소드 끝 쓰기 모드에서 실행할 때 외부 쓰기 조작이 훨씬 적게 발생할 수 있습니다. (수동 업데이트 옵션 및 시간 기반 쓰기 옵션으로 이미 최종 액세스 시간 쓰기를 최소화했습니다.)
- 세션 관리자는 예정된 시간에만 세션을 무효화하기 때문에 무효화되기 전에 세션을 요청하면 애플리케이션이 세션을 사용할 수 있습니다. 다음은 사용 시 고려사항입니다.
- 스케줄된 무효화를 구성하면, HttpSession 제한시간은 엄격히 실시되지는 않습니다. 대신, 모든 무효화 처리가 구성된 무효화 시간에 처리됩니다.
- HttpSession.invalidate 메소드가 명시적으로 호출되지 않으면 HttpSessionBindingListener 처리는 구성된 무효화 시간에 처리됩니다.
- HttpSession.invalidate 메소드는 세션 캐시 및 외부 저장소 모두에서 세션을 즉시 무효화합니다.
- 정기적인 무효화 스레드는 스케줄된 무효화로 실행됩니다. 현재 시간이 구성된 시간과 일치하지 않으면 무효화 간격을 초과한 세션이 외부 저장소가 아닌 캐시에서 제거됩니다. 해당 세션에서 다시 요청하면 세션이 다시 캐시로 리턴됩니다.
- 구성된 한 시간 동안 정기적인 무효화 스레드가 실행되는 경우 무효화 간격을 초과한 모든 세션이 캐시와 외부 저장소 모두에서 제거되어 무효화됩니다.
- 한 시간 동안 정기적인 무효화 스레드가 두 번 이상 실행될 수 있으나 시간 초기에 정확히 실행되지는 않을 수 있습니다.
- HttpSessionReaperPollInterval 사용자 정의 특성을 사용하여 정기적인 무효화 스레드 간격을 지정하는 경우 한 시간 동안 적어도 한 번의 무효화 처리가 발생하도록 3600초(1시간)보다 큰 값을 지정하지 마십시오.