Application Server에서는 HTTP 세션 데이터 및 Stateful Session Bean(SFSB) 세션 데이터의 페일오버를 통해 고가용성 세션 지속성을 제공합니다. 페일오버는 서버 인스턴스 또는 하드웨어 오류가 발생했을 때 또 다른 서버 인스턴스가 분산된 세션을 인계 받음을 의미합니다.
다음 경우에 분산 세션이 여러 Sun Java System Application Server 인스턴스에서 실행될 수 있습니다.
각 서버 인스턴스가 동일한 HADB(고가요성 데이터베이스)에 액세스할 수 있는 경우. 이 데이터베이스를 활성화하는 방법에 대한 자세한 내용은 configure-ha-cluster(1)를 참조하십시오.
각 서버 인스턴스에 동일한 분산 가능 웹 응용 프로그램이 배포되어 있는 경우. web.xml 배포 설명자 파일의 web-app 요소에 distributable 요소가 포함되어야 합니다.
웹 응용 프로그램은 고가용성 세션 지속성을 사용하는 경우. 분산 불가능 웹 응용 프로그램이 고가용성 세션 지속성을 사용하도록 구성되면 서버는 로그 파일에 오류를 씁니다.
--availabilityenabled 옵션을 true로 설정하고 deploy 또는 deploydir 명령을 사용하여 웹 응용 프로그램을 배포하는 경우. 이러한 명령에 대한 자세한 내용은 deploy(1) 및 deploydir(1)을 참조하십시오.
세션이 페일오버되면 열린 파일 또는 네트워크 연결에 대한 모든 참조가 손실됩니다. 이러한 제한 사항을 고려하면서 응용 프로그램을 코딩해야 합니다.
페일오버를 지원하는 분산 세션에만 특정 객체를 바인딩할 수 있습니다. Servlet 2.4 사양과는 반대로, 페일오버에 대해 지원되지 않는 객체 유형이 분산 세션에 바인딩되면 Sun Java System Application Server에서는 IllegalArgumentException을 발생시킵니다.
페일오버를 지원하는 분산 세션으로 다음 객체를 바인딩할 수 있습니다.
모든 EJB 구성 요소에 대한 로컬 홈 및 객체 참조
같은 시스템에 있는 Entity Bean, Stateful Session Bean 및 분산 Entity Bean 원격 홈 참조, 원격 참조
분산 세션 Bean 원격 홈 및 원격 참조
InitialContext 및 java:comp/env에 대한 JNDI 컨텍스트
UserTransaction 객체. 그러나 장애가 발생한 인스턴스가 다시 시작되지 않으면 준비된 모든 전역 트랜잭션이 손실되고 제대로 롤백 또는 완결되지 못할 수 있습니다.
일련화 가능 Java 유형
다음 객체 유형은 페일오버를 지원하는 세션에 바인딩할 수 없습니다.
JDBC DataSource
JMS(Java Message Service) ConnectionFactory 및 Destination 객체
JavaMail™ 세션
연결 팩토리
관리 대상 객체
웹 서비스 참조
일반적으로 이러한 객체의 경우 페일오버가 작동되지 않습니다. 그러나 객체가 일련화 가능한 경우 등 일부 경우에 페일오버가 작동될 수 있습니다.
다음 디렉토리에는 세션 지속성을 설명하는 샘플 응용 프로그램이 포함되어 있습니다.
install_dir/samples/ee-samples/highavailability install_dir/samples/ee-samples/failover
다음 예제 응용 프로그램은 SFSB 세션 지속성을 보여 줍니다.
install_dir/samples/ee-samples/failover/apps/sfsbfailover