세션 지속성 구성에 대한 자세한 내용은 Sun Java System Application Server 9.1 고가용성 관리 설명서의 9 장, 고가용성 세션 지속성 및 페일오버 구성을 참조하십시오.
HADB에서 수신하는 분당 요청 수는 지속성 빈도에 따라 결정됩니다. 지속성 빈도는 Application Server가 HTTP 세션 데이터를 HADB에 저장하는 빈도를 결정합니다.
지속성 빈도 옵션은 다음과 같습니다.
web-method(기본값): 서버가 모든 HTTP 응답과 함께 세션 데이터를 저장합니다. 이 옵션을 사용하면 저장된 세션 정보가 최신 상태를 유지하지만 HADB에 트래픽이 높아집니다.
time-based: 세션이 지정된 시간 간격으로 저장됩니다. 이 옵션을 사용하면 HADB에 대한 트래픽이 감소하지만 세션 정보가 최신 상태를 보장할 수 없습니다.
다음 표는 지속성 빈도 옵션의 장점 및 단점에 대한 간략한 설명입니다.
표 2–1 지속성 빈도 옵션 비교
지속성 빈도 옵션 |
장점 |
단점 |
---|---|---|
web-method |
항상 최신 세션 정보를 사용할 수 있습니다. |
응답 시간이 증가하고 처리량이 감소할 수 있습니다. |
time-based |
응답 시간이 향상되고 처리량이 향상될 수 있습니다. |
Application Server 인스턴스에 오류가 발생한 뒤에 최신 세션 정보를 사용하지 못할 수 있습니다. |
요청당 세션 크기는 세션에 저장된 세션 정보의 양에 따라 결정됩니다.
전체 성능을 향상시키려면 세션 정보의 양을 최대한 줄이십시오.
지속성 범위 설정을 통해 요청당 세션 크기를 미세 조정할 수 있습니다. 다음 HTTP 세션 지속성 범위 옵션 중에서 선택합니다.
session: 서버에서 세션 정보를 HADB에 저장할 때마다 전체 세션 객체를 일련화하여 저장합니다.
modified-session: 세션이 수정된 경우에만 서버에서 세션을 저장합니다. Bean의 setAttribute() 메소드에 대한 호출을 가로채 수정을 감지합니다. 이 옵션은 내부 객체에 대한 직접 수정을 감지하지 않으므로 이 경우 setAttribute()를 명시적으로 호출하도록 SFSB를 코딩해야 합니다.
modified-attribute: 서버에서 세션이 마지막으로 저장된 이후 수정(삽입, 업데이트 또는 삭제)된 속성만 저장합니다. modified-session과 동일한 단점을 갖지만 제대로 적용될 경우 HADB 쓰기 처리량 요구 사항을 크게 줄일 수 있습니다.
이 옵션을 사용하려면 응용 프로그램이 다음을 충족해야 합니다.
세션 상태를 수정할 때마다 setAttribute() 또는 removeAttribute()를 호출합니다.
속성 간에는 상호 참조가 없어야 합니다.
여러 속성에서 세션 상태를 분배하거나 최소한 읽기 전용 속성 및 수정 가능한 속성 간에 세션 상태를 분배합니다.
다음 표는 지속성 범위 옵션의 장점 및 단점에 대한 간략한 설명입니다.
SFSB 세션 지속성의 경우 HADB의 로드는 다음에 따라 결정됩니다.
검사점 지정을 위해 활성화된 SFSB 수
검사점 지정을 위해 선택된 SFSB 메소드 및 사용 빈도
세션 객체 크기
트랜잭션 메소드
트랜잭션이 롤백되는 경우에도 검사점 지정은 일반적으로 SFSB 관련 트랜잭션이 완료된 후에 수행됩니다.
성능을 향상시키려면 검사점 지정을 위해 소수의 메소드 집합을 지정합니다. 검사점 지정되는 데이터 크기와 검사점 지정 빈도에 따라 지정된 클라이언트 상호 작용에 대한 응답 시간의 추가 오버헤드가 결정됩니다.