Sun Java System Application Server Enterprise Edition 8.1 2005Q2 고가용성 관리 설명서

HTTP 세션 페일오버

J2EE 응용 프로그램은 일반적으로 많은 양의 세션 상태 데이터를 포함하게 됩니다. 웹 장바구니가 세션 상태의 일반적인 예에 해당합니다. 또한 응용 프로그램은 자주 필요한 데이터를 세션 객체에 캐시할 수 있습니다. 실제로 사용자 상호 작용이 자주 발생하는 거의 모든 응용 프로그램에서는 세션 상태가 유지되어야 합니다.

웹 컨테이너에 대한 가용성 구성

asadmin을 사용하여 웹 컨테이너 가용성을 활성화 및 구성하려면 configure-ha-persistence(1)를 참조하십시오.

또는 asadmin set 명령을 사용하여 구성의 availability-service.web-container-availability.availability-enabled 등록 정보를 true로 설정한 후 configure-ha-persistence를 사용하여 해당 등록 정보를 설정합니다.

예를 들어, 다음과 같이 set 명령을 사용합니다. 여기서 config1은 구성 이름입니다.


asadmin set --user admin --passwordfile password.txt 
--host localhost --port 4849 
config1.availability-service.web-container-availability.availability-enabled="true"
asadmin configure-ha-persistence --user admin --passwordfile secret.txt 
--type ha 
--frequency web-method 
--scope modified-session 
--store jdbc/hastore 
--property maxSessions=1000:reapIntervalSeconds=60 cluster1

Procedure관리 콘솔을 사용하여 웹 컨테이너에 대한 가용성 활성화

  1. 트리 구성 요소에서 원하는 구성을 선택합니다.

  2. 가용성 서비스를 누릅니다.

  3. 웹 컨테이너 가용성 탭을 선택합니다.

    가용성 서비스 확인란을 선택하여 가용성을 활성화합니다. 비활성화하려면 확인란을 선택 해제합니다.

  4. 다음의 가용성 설정 절에 설명된 대로 다른 설정을 변경합니다.

  5. 서버 인스턴스를 다시 시작합니다.

가용성 설정

가용성 서비스의 웹 컨테이너 가용성 탭을 사용하여 다음과 같은 가용성 설정을 변경할 수 있습니다.

지속성 유형: 가용성이 활성화된 웹 응용 프로그램에 대한 세션 지속성 메커니즘을 지정합니다. 허용되는 값은 memory(지속성 없음), file(파일 시스템) 및 ha(HADB)입니다.

ha 세션 지속성을 사용하려면 먼저 HADB를 구성하고 활성화해야 합니다. 구성에 대한 자세한 내용은 configure-ha-cluster(1)를 참조하십시오.

웹 컨테이너 가용성이 활성화되면 기본값은 ha입니다. 그렇지 않은 경우 기본값은 memory입니다. 세션 지속성이 필요한 프로덕션 환경의 경우 ha를 사용합니다. 두 유형, memory 및 file 지속성은 고가용성 세션 지속성을 제공하지 않습니다.

지속성 빈도: 세션 상태가 저장되는 빈도를 지정합니다. 지속성 유형이 ha일 경우에만 적용됩니다. 허용되는 값은 다음과 같습니다.

지속성 범위: 저장되는 세션 객체의 양과 세션 상태가 저장되는 빈도를 지정합니다. 지속성 유형이 ha일 경우에만 적용됩니다. 허용되는 값은 다음과 같습니다.

단일 사인 온 상태: 단일 사인 온 상태의 지속성을 활성화하려면 이 확인란을 선택합니다. 비활성화하려면 확인란을 선택 해제합니다. 자세한 내용은 세션 페일오버와 함께 단일 사인 온 사용을 참조하십시오.

HTTP 세션 저장소: 세션 지속성을 위해 HADB 연결에 사용한 JDBC 자원을 변경한 경우 HTTP 세션 저장소를 변경할 수 있습니다. 자세한 내용은 configure-ha-cluster(1)를 참조하십시오.

개별 웹 응용 프로그램에 대한 가용성 구성

개별 웹 응용 프로그램에 대한 가용성을 활성화하고 구성하려면 응용 프로그램 배포 설명자 파일 sun-web.xml을 편집합니다. 응용 프로그램 배포 설명자의 설정은 웹 컨테이너의 가용성 설정을 대체합니다.

session-manager 요소의 persistence-type 속성은 응용 프로그램이 사용하는 세션 지속성 유형을 결정합니다. 고가용성 세션 지속성을 활성화하려면 이 속성을 ha로 설정해야 합니다.

sun-web.xml 파일에 대한 자세한 내용은 Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Developer’s GuideThe sun-web.xml File을 참조하십시오.

<sun-web-app> ... 
  <session-config> 
    <session-manager persistence-type=ha> 
      <manager-properties> 
        <property name=persistenceFrequency value=web-method /> 
      </manager-properties> 
      <store-properties> 
        <property name=persistenceScope value=session /> 
      </store-properties> 
    </session-manager> ... 
</session-config> ...

세션 페일오버와 함께 단일 사인 온 사용

단일 응용 프로그램 서버 인스턴스에서 응용 프로그램에 의해 인증된 사용자는 동일한 인터페이스에서 실행되는 다른 응용 프로그램에서 개별적으로 다시 인증을 받을 필요가 없습니다. 이를 단일 사인 온이라고 합니다. 자세한 내용은 Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Developer’s GuideUser Authentication for Single Sign-on을 참조하십시오.

클러스터의 다른 인스턴스에 HTTP 세션이 페일오버되더라도 이 기능이 계속 작동하려면 단일 사인 온 정보가 HADB에 지속되어야 합니다. 단일 사인 온 정보를 지속하려면 먼저 서버 인스턴스 및 웹 컨테이너의 가용성을 활성화한 후 단일 사인 온 상태 페일오버를 활성화합니다.

관리 콘솔을 사용하면 웹 컨테이너에 대한 가용성 구성에 설명된 대로 가용성 서비스의 웹 컨테이너 가용성 탭에서 단일 사인 온 상태 페일오버를 활성화할 수 있습니다. 또한 asadmin set 명령을 사용하여 구성의 availability-service.web-container-availability.sso-failover-enabled 등록 정보를 true로 설정합니다.

예를 들어, 다음과 같이 set 명령을 사용합니다. 여기서 config1은 구성 이름입니다.

asadmin set --user admin --passwordfile password.txt 
--host localhost --port 4849 
config1.availability-service.web-container-availability.
sso-failover-enabled="true"

단일 사인 온 그룹

단일 사인 온 그룹은 단일 이름 및 비밀번호 조합을 통해 액세스할 수 있는 응용 프로그램으로 구성됩니다. 단일 사인 온 그룹의 일부인 응용 프로그램에 해당하는 HTTP 세션의 경우 세션 중 하나가 시간 초과되더라도 다른 세션은 무효화되지 않고 계속 사용할 수 있습니다. 이는 한 세션의 시간 초과가 다른 세션의 가용성에 영향을 미치지 않기 때문입니다.

이 동작의 결과, 세션이 시간 초과되고 세션을 실행 중인 동일한 브라우저 창에서 해당하는 응용 프로그램에 액세스할 경우 다시 인증할 필요가 없습니다. 그러나 새로운 세션이 만들어집니다.

두 개의 다른 응용 프로그램을 사용하는 단일 사인 온 그룹의 일부인 장바구니 응용 프로그램을 예로 듭니다. 다른 두 응용 프로그램의 세션 시간 초과 값이 장바구니 응용 프로그램의 세션 초과 값보다 더 높은 것으로 가정합니다. 장바구니 응용 프로그램의 세션이 시간 초과되고 세션을 실행 중인 동일한 브라우저 창에서 장바구니 응용 프로그램을 실행할 경우 다시 인증할 필요가 없습니다. 그러나 이전 장바구니는 손실되고 새로운 장바구니를 만들어야 합니다. 장바구니 응용 프로그램을 실행하는 세션이 시간 초과되더라도 다른 두 응용 프로그램은 평소대로 계속 실행됩니다.

마찬가지로 다른 두 응용 프로그램에 해당하는 세션이 시간 초과되는 것으로 가정합니다. 세션을 실행 중인 동일한 브라우저 창에서 응용 프로그램에 연결하고 있는 동안에는 다시 인증할 필요가 없습니다.


주 –

세션이 시간 초과된 경우에만 이 동작이 적용됩니다. 단일 사인 온이 활성화되고 HttpSession.invalidate()를 사용하여 세션 중 하나를 무효화한 경우 단일 사인 온 그룹에 속하는 모든 응용 프로그램의 세션이 무효화됩니다. 단일 사인 온 그룹에 속하는 응용 프로그램에 액세스할 경우 다시 인증을 받아야 하고 응용 프로그램에 액세스하는 클라이언트에 대해 새로운 세션이 만들어집니다.