세션 관리 사용자 정의 특성
사용자 정의 특성 설정을 통해 세션 관리에 대한 추가 설정을 지정할 수 있습니다.
- 관리 콘솔에서 를 클릭하십시오.
- 추가 특성 아래에서 사용자 정의 특성을 선택하십시오.
- 사용자 정의 특성 페이지에서 새로 작성을 클릭하십시오.
- 페이지 설정에서 이름 필드에 구성할 특성을 입력하고 값 필드에 설정할 값을 입력하십시오.
- 적용 또는 확인을 클릭하십시오.
- 콘솔 작업 표시줄의 저장을 클릭하여 구성 변경사항을 저장하십시오.
- 서버를 다시 시작하십시오.
- AlwaysEncodeURL
- CheckSessionCookieNameOnEncodeURL
- checkSessionNewOnIsValidRequest
- CloneSeparator
- CloneSeparatorChange
- DebugSessionCrossover
- DelayAfterDuplicateIdException
- DelayInvalidationAlarmDuringServerStartup
- ForceSessionInvalidationMultiple
- HideSessionValues
- HttpSessionCloneId
HttpSessionEnableUnmanagedServerReplication
- HttpSessionIdLength
- HttpSessionIdReuse
- HttpSessionReaperPollInterval
- InvalidateOnUnauthorizedSessionRequestException
- NoAdditionalSessionInfo
- NoAffinitySwitchBack
- OptimizeCacheIdIncrements
- SecurityUserIgnoreCase
- Servlet21SessionCompatibility
- SessionIdentifierMaxLength
- SessionInvalidatorThreadPoolSize
- SessionRewriteIdentifier
- SessionTableName
- SessionTableSkipIndexCreation
- ThrowSecurityExceptionOnGetSessionFalse
- UseInvalidatedId
- UseOracleBLOB
- UsingApplicationSessionsAndInvalidateAll
- UsingCustomSchemaName
AlwaysEncodeURL
서블릿 2.5 스펙은 필요하지 않은 경우 response.encodeURL 호출 시 URL을 인코드하지 않도록 지정합니다. URL 인코딩을 사용할 때 이전 버전과의 호환성을 지원하려면 AlwaysEncodeURL 사용자 정의 특성을 true로 설정하여 encodeURL 메소드를 호출하십시오. 브라우저가 쿠키를 지원하는 경우에도 URL은 항상 인코드됩니다. 특성은 웹 컨테이너 레벨에서 구성되어야 합니다.
CheckSessionCookieNameOnEncodeURL
세션 ID가 URL에서 인코딩되어야 하는지 여부를 판별할 때 HTTP 세션 쿠키의 존재를 검사하려면 이 특성을 사용하십시오. 이 특성은 웹 컨테이너 레벨에서 구성되어야 합니다.
이 특성의 기본 설정은 false입니다. 이 특성을 true로 설정할 때, 세션 관리자가 세션 ID가 URL에서 인코딩되어야 하는지 여부를 판별할 때 HTTP 세션 쿠키의 존재를 검사할 수 있습니다.
checkSessionNewOnIsValidRequest
HttpSessionIdReuse를 사용할 때 서버에서 여러 클라이언트 요청을 동시에 처리할 수 있는지 여부를 지정하려면 이 특성을 사용하십시오.이 특성은 웹 컨테이너 레벨에서 구성되어야 합니다.
기본적으로 HttpSessionIdReuse 특성도 사용하는 경우 세션 관리자는 한 번에 하나의 클라이언트 요청을 처리합니다. HttpSessionIdReuse 사용 시 세션 관리자가 클라이언트의 동시적인 다중 요청을 처리하려면 checkSessionNewOnIsValidRequest를 false로 설정하십시오. HttpSessionIdReuse를 사용하지 않는 경우에는 이 특성이 적용되지 않습니다.
구성 변경사항을 적용하려면 서버를 다시 시작해야 합니다.
이 특성의 기본값은 true입니다.
CloneSeparator
이 특성을 사용하여 세션 쿠키에서 다른 문자를 복제 분리자로 지정할 수 있습니다. 이 사용자 정의 특성에 지정된 값은 단일 문자여야 합니다.
이 특성은 버전 6.1에서 웹 컨테이너 사용자 정의 특성으로서 설정되었지만 이제는 웹 컨테이너 레벨에서 세션 관리 사용자 정의 특성으로 설정되어야 합니다.

어떤 문자를 이 사용자 정의 특성의 값으로 지정할 수 있다는 것이 지정한 문자가 올바르게 작동할 것을 의미하지는 않습니다. 또한 IBM은 다른 문자를 사용할 때 발생할 수 있는 문제점을 해결할 책임이 없습니다.
bpracCloneSeparatorChange
이 특성을 사용하여 세션 선호도를 유지보수하십시오. 서버의 복제 ID는 콜론으로 구분된 세션 ID에 추가됩니다. 일부 WAP(Wireless Application Protocol) 장치에서는 콜론이 허용되지 않습니다. 이 특성을 true로 설정하여 복제 분리자를 더하기 부호(+)로 변경하십시오.이 특성은 웹 컨테이너 레벨에서 구성되어야 합니다.
DebugSessionCrossover
DebugSessionCrossover 사용자 정의 특성을 사용하면 요청과 연관된 세션에만 액세스 또는 참조하는지 확인하기 위해 코드를 사용하여 추가적으로 확인을 수행할 수 있습니다. 불일치가 발견되면 메시지가 로깅됩니다.
세션 데이터 교차 발견을 사용 가능하게 하려면 이 특성을 true로 설정하십시오.
추가 정보는 HTTP 세션 문제점 문서를 참조하십시오.
DelayAfterDuplicateIdException
DelayAfterDuplicateIdException 사용자 정의 특성은 SESN0196W 오류가 발생한 후 세션 관리자가 백엔드 서버에서 세션을 검색하기 전에 기다려야 하는 기간(밀리초)을 지정하는 데 사용됩니다. 이 특성은 웹 컨테이너 레벨에서 구성되어야 합니다.
이 특성의 기본값은 500입니다.
DelayInvalidationAlarmDuringServerStartup
이 특성을 사용하여 지정된 시간(초)까지 서버 시작 후 무효화 알람의 시작을 지연할 수 있습니다.
이 특성의 기본값은 0입니다.
ForceSessionInvalidationMultiple
ForceSessionInvalidationMultiple 사용자 정의 특성은 세션을 무효화하려고 시도하기 전에 요청이 완료될 때까지 무기한으로 기다릴지 아니면 지정된 시간 한계가 경과한 후 세션을 무효화할지 여부를 나타냅니다. 이 특성의 기본값은 3입니다.
- 이 사용자 정의 특성을 0으로 지정하면 세션 관리자는 세션 무효화를 시도하기 전에 요청이 완료될 때까지 무기한 대기합니다.
사용자 요청을 응답 시간 제한으로 바운드하지 않는 경우 이 특성을 0으로 지정하십시오.
- 이 사용자 정의 특성에 양의 정수(예: 1, 2 또는 3)를 지정하면
세션이 완료되었다고 알려지지 않은 경우에도 세션 관리자는
마지막 액세스 발생 이후 표시된 시간이 경과하면
세션을 무효화하려고 시도합니다. 이 시간은 이 특성에 지정된 값과
세션 제한시간 특성에 지정된 값을 곱한
결과입니다. 예를 들어
세션 제한시간 특성을 2분으로 지정하고
ForceSessionInvalidationMultiple 특성을 2로 지정하는 경우 세션 관리자는 4분 후에 세션 무효화를 시도합니다.
어떤 정해진 시간이 경과된 후에 세션 무효화를 수행하려면 이 특성을 적절한 양의 정수로 지정하십시오.
HideSessionValues
HideSessionValues 사용자 정의 특성은 세션 관리자 추적에 세션 속성 값이 로깅되지 않도록 합니다. 이 특성은 웹 컨테이너 레벨에서 구성되어야 합니다.
애플리케이션은 이러한 세션 속성 값을 저장합니다. 기본값은 true입니다
HttpSessionCloneId
이 특성을 사용하여 클러스터 멤버의 복제 ID를 변경하십시오. 클러스터 내에서 세션 선호도를 유지보수하려면 이 ID가 고유해야 합니다. 설정하면, 이 이름은 WebSphere Application Server에서 생성한 기본 이름을 겹쳐씁니다.이 특성은 웹 컨테이너 레벨에서 구성되어야 합니다.
기본 복제 ID 길이: 8 또는 9
기본
복제 ID 길이: 40
![[z/OS]](../images/ngzos.gif)
HttpSessionEnableUnmanagedServerReplication
제어기 관리 데이터 공간에 세션 데이터를 복제하여 하위(servant) 장애 조치(failover)를 사용 가능하도록 하려면 이 사용자 정의 특성을 true로 설정하십시오. 기본값은 false입니다.
HttpSessionIdLength
이 특성을 사용하여 세션 ID 길이를 구성하십시오. 지나치게 낮은 값은 사용하지 마십시오. 낮은 값을 사용하면 가능한 조합의 수가 줄어들기 때문에 세션 ID 추측의 위험성이 높아집니다. 클러스터에서 모든 클러스터 멤버는 동일한 ID 길이로 구성되어야 합니다. 허용 범위: 8 - 128. 기본 길이: 23이 특성은 웹 컨테이너 레벨에서 구성되어야 합니다.
HttpSessionIdReuse
사용자 정의 특성 HttpSessionIdReuse는 세션 관리자가 브라우저에서 전송된 세션 ID를 사용하여 세션 지속에 대해 구성되지 않은 환경에서 실행 중인 웹 애플리케이션을 통해 세션 데이터를 보존할지 여부를 판별합니다. 이 특성은 웹 컨테이너 레벨에서 구성되어야 합니다.
세션 지속에 대해 구성되지 않은 다중 JVM 환경에서 이 특성을 true로 설정하면 세션 관리자는 해당 요청을 처리 중인 웹 애플리케이션을 서로 다른 JVM에서 제어하는 경우에도 모든 사용자의 요청에 대해 동일한 세션 정보를 사용할 수 있습니다. 이 특성의 기본값은 false입니다. 세션 관리자가 브라우저에서 전송된 세션 ID를 사용하여 세션 지속용으로 구성되지 않은 환경에서 실행되는 웹 애플리케이션에서 세션 데이터를 보존하도록 하려면 이 특성을 true로 설정하십시오.
![[z/OS]](../images/ngzos.gif)
ExtendedMessage: BBOO0220E: SessionContext:createSession - call to
establishAffinity for id id_number failed with rc 4
HttpSessionReaperPollInterval
이 특성을 사용하여 유효하지 않은 세션을 제거하는 프로세스의 wake-up 간격을 지정하십시오. 이 특성에 지정된 값은 기본 설치 값(30초 - 360초)을 대체하고 reaper 프로세스를 특정 간격으로 실행하도록 합니다.
최대 비활성 간격이 2분 미만인 경우, reaper 풀 간격은 일반적으로 30초 - 60초입니다.
최대 비활성 간격이 2분보다 길고 최대 15분인 경우, reaper 풀 간격은 일반적으로 60초 - 90초입니다.
최대 비활성 간격이 15분보다 길고 최대 30분인 경우, reaper 풀 간격은 일반적으로 120초 - 180초입니다.
최대 비활성 간격이 30분보다 긴 경우, reaper 풀 간격은 일반적으로 240초 - 300초입니다.
기본 제한시간 및 최대 비활성 간격은 30분이므로 reaper 간격은 일반적으로 2분 - 3분입니다.
예를 들어, 설치 제한시간이 초과된 세션이 2분 - 3분보다 자주 무효화되도록 하려는 경우 이 특성을 사용합니다. HttpSessionReaperPollInterval=120을 설정하면 제한시간 2분 이내에 세션이 무효화됩니다.
이 특성의 최소값은 30초입니다. 최소값보다 작은 값을 입력하면 지정된 특성이 무시되고 올바른 값을 자동으로 판별하여 사용됩니다. 최대 비활성 간격은 세션 제한시간입니다. 기본값은 세션 관리에 설정한 최대 비활성 간격에 기초합니다.
InvalidateOnUnauthorizedSessionRequestException
권한 없는 요청에 대한 응답 시 세션 관리자가 UnauthorizedSessionRequestException 오류 메시지를 발행하는 대신 세션을 무효화하려면 이 특성을 true로 설정하십시오.
세션이 무효화되면 요청자는 새 세션을 작성할 수 있지만 이전에 저장된 세션 데이터에 대한 액세스 권한은 없습니다. 이러한 무효화를 통해 단일 사용자는 세션 데이터를 보호하면서 로그아웃 후 요청을 계속 처리할 수 있습니다.
이 특성의 기본값은 false입니다.
NoAdditionalSessionInfo
이 특성을 true로 설정하여 세션 ID에서 불필요한 정보의 제거를 강제 실행하십시오.이 특성은 웹 컨테이너 레벨에서 구성되어야 합니다.
NoAffinitySwitchBack
원래 값이 다시 나타난 뒤에도 새로 작성한 멤버와 선호도를 유지보수하려면 이 특성을 true로 설정하십시오. 클러스터 멤버가 실패하면 요청은 다른 클러스터 멤버에게 라우트되고 세션은 바로 그 다른 멤버에서 활성화됩니다. 따라서 세션 선호도 유지보수는 새로 작성한 멤버에게 이어지며, 실패한 클러스터 멤버가 다시 활성화될 때는 원래 클러스터 멤버에서 작성된 세션에 대한 요청은 다시 이쪽으로 라우트됩니다. 허용된 값은 true 또는 false이며 기본값은 false입니다. 이 특성은 웹 컨테이너 레벨에서 구성되어야 합니다.
기준 시간 쓰기로 구성된 분산 세션이 있으면 이 특성을 true로 설정하십시오. 메모리 대 메모리 세션 복제를 사용할 때는 선호도 전환을 사용하도록 사용자 정의 특성 HttpSessionCloneId를 설정하십시오. 분산 세션이 사용으로 설정되지 않은 경우에는 이 특성이 동작에 영향을 주지 않는다는 점을 참고하십시오.
OptimizeCacheIdIncrements
웹 모듈의 인메모리 세션이 영구 저장소에 있는 사본보다 이전인지 여부를 세션 관리자가 평가하도록 하려면 OptimizeCacheIdIncrements 사용자 정의 특성을 true로 설정하십시오. 이 특성을 설정하면 캐시 ID가 계속해서 증가하는 것을 해결할 수 있습니다.
세션 지속을 사용하도록 HTTP 세션 관리를 구성하고 사용자의 브라우저 세션이 여러 웹 애플리케이션의 앞과 뒤로 이동하는 경우, 웹 모듈의 인메모리 세션이 지속적 저장으로부터 새로 고침되므로 추가 지속적 저장 활동을 볼 수 있습니다. 따라서 캐시 ID가 계속해서 증가하며 인메모리 세션 속성이 지속적 사본 속성으로 대체됩니다. 캐시 ID가 계속해서 증가되는 것을 방지하려면 이 특성을 true로 설정하십시오.
구성이 클러스터인 경우, 각 클러스터 멤버의 시스템 시간이 가능한 동일한지 확인하십시오.
SecurityUserIgnoreCase
케이스가 다를 경우에도 세션 보안 ID와 클라이언트 보안 ID가 일치하도록 하려면 이 특성을 true로 설정하십시오.
사용자가 세션 보안 통합을 구성하면, 세션 관리자는 세션 소유자의 보안 ID를 클라이언트 요청의 보안 ID와 비교합니다. 일치 기준은 대소문자를 구분하므로, 두 ID가 정확히 일치하지 않으면 UnauthorizedSessionRequestException이 클라이언트에 다시 전송됩니다.
케이스가 다를 경우에도 세션 보안 ID와 클라이언트 보안 ID가 일치하도록 하려면, SecurityUserIgnoreCase 사용자 정의 특성을 웹 컨테이너 구성 설정에 추가하고 특성을 true로 설정하십시오. 이 특성이 true로 설정되면, 케이스를 제외하고 세션 보안 ID와 클라이언트 보안 ID가 동일할 경우 UnauthorizedSessionRequestException이 발생하지 않습니다. 예를 들어, 이 특성을 true로 설정하면 세션 보안 ID USER1이 클라이언트 보안 ID User1 및 user1과 일치합니다.
Servlet21SessionCompatibility
글로벌 세션 작동을 사용하려면 이 사용자 정의 특성을 true로 지정하십시오. 서블릿 2.2 이상에서는 세션의 범위를 웹 모듈 레벨로 한정합니다. 기본값은 false입니다.

SessionIdentifierMaxLength
길어지는 세션 ID의 최대 길이를 설정하려면 이 값을 사용하십시오. 이 특성은 웹 컨테이너 레벨에서 구성되어야 합니다.
클러스터에서 요청이 새 클러스터 멤버에게 이동할 때의 장애 조치(failover)로 인해 세션 관리는 기존 복제 ID에 새 복제 ID를 추가합니다. 대형 클러스터에서 어떤 이유로든 서버가 계속 실패한다면, 세션 ID 길이는 예상외로 커지면서 URL에 대한 여유가 줄어들 수 있습니다. 따라서 이 특성은 해당 조건을 찾거나, 서버 장애 조치(failover)에 대처할 때 적절한 조치를 취하는 데 도움이 됩니다. 이 특성을 지정하면, 지정한 최대 길이에 도달할 때 메시지를 로그에 남깁니다. 허용 값: 정수
SessionInvalidatorThreadPoolSize
올바르지 않은 세션을 제한시간 초과 후 제거하는 스레드의 최대 스레드 풀 크기를 정의합니다. 이러한 스레드는 세션이 분배되어 있는지 다른 서버에 알리고 자신에 대한 로컬 참조를 정리하는 역할을 합니다. 짧은 제한시간 간격으로 인해 세션 제한시간 초과가 자주 발생하거나 트래픽 볼륨이 커 세션의 수가 많은 경우에는 이러한 스레드가 많이 필요할 수 있습니다.
기본값은 50입니다. 최소값은 20이며 최대값은 100입니다.
SessionRewriteIdentifier
URL 다시 쓰기에 사용한 키를 변경하려면 이 특성을 사용하십시오. 기본 키는 jsessionid입니다.
SessionTableName
이 사용자 정의 특성을 사용하여 데이터베이스 테이블 이름을 설정하십시오. 허용된 값: 문자열. 기본값은 SESSIONS입니다.
일부 애플리케이션은 ejbCreate(...) 메소드에 의존하여 데이터베이스에서 엔티티 Bean을 작성할 수 있습니다. 이러한 요구사항의 경우, JVM 특성 com.ibm.websphere.ejbcontainer.allowEarlyInsert를 true로 설정하면 기본 작동이 대체됩니다.
SessionTableSkipIndexCreation
이 특성을 사용하여 서버 시작 시 색인 작성을 사용 불가능하게 하십시오.
이 사용자 정의 특성은 세션 지속을 위해 사용자의 데이터베이스 색인을 수동으로 작성하려는 경우에만 사용해야 합니다. 그러나 세션 관리자가 데이터베이스 색인을 작성하도록 권장합니다.
이 특성을 사용 가능하게 하려면 세션 관리 사용자 정의 특성의 관리 콘솔 페이지로 이동하여 SessionTableSkipIndexCreation 특성 이름을 입력하고 해당 값을 true로 설정하십시오. 이 특성을 사용 가능하게 하기 전에, 올바른 색인이 세션 데이터베이스에 있는지 확인하십시오.
ThrowSecurityExceptionOnGetSessionFalse
세션 관리가 UnauthorizedSessionrequestException 대신 널 세션 값을 리턴할 수 있게 하려면 이 사용자 정의 특성을 false로 설정하십시오. 기본값은 true입니다.
UseInvalidatedId
수신 ID가 있는 세션이 최근에 무효화된 경우, 해당 ID를 다시 사용하려면 이 사용자 정의 특성을 true로 설정하십시오. 해당 세션이 무효화된 경우 지속적 저장 점검을 할 수 없으므로 이 특성을 true로 설정하는 것이 성능 최적화에 좋습니다. 기본값은 true입니다.
UseOracleBLOB
UseOracleBLOB 사용자 정의 특성은 중간 열에 대해 BLOB(Binary Large Object) 데이터 유형을 사용하는 HTTP 세션 데이터베이스 테이블을 작성합니다. 이 특성은 Oracle Database 사용 시 지속적 세션의 성능을 높입니다. Oracle 제한으로 인해, 4000바이트를 초과하는 데이터에 BLOB 지원을 사용하려면 OCI(Oracle Call Interface) 데이터베이스 드라이버를 사용해야 합니다. 서버를 다시 시작하기 전에 이전 세션 테이블을 삭제하거나 데이터 소스 정의를 세션 테이블을 포함하지 않는 데이터베이스를 참조하도록 변경하여 새 세션 테이블이 작성되었는지도 확인해야 합니다.
이름 | 값 |
---|---|
UseOracleBLOB | true |
UsingApplicationSessionsAndInvalidateAll
invalidateAllSet 메소드를 호출할 때 모든 IBMApplicationSessions 오브젝트를 점검하는 것은 아닙니다. IBMApplicationSessions 오브젝트 및 invalidateAll 호출을 둘 다 사용하는 경우 다음 이름 값 쌍을 사용하십시오.
이름 | 값 |
---|---|
UsingApplicationSessionsAndInvalidateAll | true |
UsingCustomSchemaName
다음 서버 시작 시 세션 관리자가 세션 테이블을 발견하게 하려면 이 특성을 사용하십시오.
세션 지속성을 위해 DB2를 사용하고 customSchema 특성을 DB2 JDBC 드라이버의 기본값으로 설정하지 않은 경우 이 사용자 정의 특성을 true로 설정하십시오.
기본값은 false입니다.