주 메모리 내 세션 풀 크기
주 메모리 내 세션 풀 크기 숫자는 세션 지원 구성에 따라 달라집니다.
- 메모리 내 세션을 사용하여 액세스된 세션은 이 세션 숫자까지로 최적화됩니다.
- 분산 세션으로(세션이 데이터베이스 또는 다른 WebSphere® Application Server 인스턴스에 저장되는 경우), 풀 크기가 캐시 크기를 지정하고 최종 액세스 시간 업데이트의 수가 수동 업데이트 모드로 저장됩니다.
분산 세션의 경우, 세션 캐시가 최대 크기에 이르고 새 세션이 요청되면 세션 관리 기능이 가장 최근에 사용한 세션을 캐시에서 제거하여 새 세션을 위한 공간을 작성합니다.
하드웨어 시스템에 대한 일반 메모리 요구사항 및 e-business 사이트의 사용 특성이 최적의 값을 판별합니다.
주 메모리 내 세션 풀의 크기를 늘리면 해당 WebSphere Application Server에 대한 Java™ 프로세서의 힙 크기도 늘려야 할 수 있습니다.
비분산 세션 오버플로우
기본적으로, 메모리에 유지보수되는 세션의 수는 주 메모리 내 세션 풀 크기에 의해 지정됩니다. 메모리에 유지보수되는 세션의 수를 제한하지 않고 오버플로우를 허용하려면, 오버플로우를 true로 설정하십시오.
세션 수를 제한하지 않으면 시스템 자원이 고갈되거나 시스템이 정지될 가능성이 있습니다. 누군가가 사이트를 계속해서 히트하고 세션을 작성하지만 모든 쿠키 또는 인코드된 URL은 무시하고 동일한 세션을 한 HTTP 요청에서 다른 요청으로 절대 활용하지 않는 해가 되는 프로그램을 작성할 수 있습니다.
오버플로우가 허용되지 않을 경우, 현재 메모리 한계에 도달하면 세션 관리 기능은 HttpServletRequest의 getSession(true) 메소드를 사용하여 계속해서 세션을 리턴하지만 저장되지 않는 유효하지 않은 세션이 됩니다.세션을 사용하려고 시도하면 java.lang.IllegalStateException이 발생합니다.
세션이 유효하지 않은 세션일 경우, isOverflow 메소드는 HttpSession에 대한 WebSphere Application Server 확장자인 com.ibm.websphere.servlet.session.IBMSession을 통해 true를 리턴합니다. 애플리케이션은 이 상태를 확인하여 적당히 응답할 수 있습니다.