클러스터링된 환경에서 롤링 업그레이드는 서비스 및 세션 손실을 최소화하여 응용 프로그램을 재배포합니다. 세션은 복제할 수 있는 아티팩트입니다. 예를 들면 다음과 같습니다.
HttpSession
SingleSignOn
ServletTimer
DialogFragment
Stateful Session Bean
로드 균형 조정기 및 여러 클러스터를 사용하여 서비스 손실 없이 GlassFish 서버에서 구성 요소를 업그레이드할 수 있습니다. 예를 들어 구성 요소는 JVM 시스템, GlassFish 서버 소프트웨어 또는 웹 응용 프로그램일 수 있습니다.
롤링 업그레이드는 로드가 가벼운 것에서 보통인 순서로 수행할 수 있습니다. 이 절차를 수행하는 데에는 각 GlassFish 서버 인스턴스당 약 10-15분이 걸립니다.
응용 프로그램은 업그레이드 전체에서 호환되어야 합니다. 응용 프로그램은 일부 인스턴스가 이전 버전을 실행하고 있고 다른 인스턴스가 새 버전을 실행하고 있을 때 전환하는 동안 제대로 작동해야 합니다. 이전 버전과 새 버전에는 세션(예: 비과도적 인스턴스 변수)에 저장되어 있는 객체 그래프를 형성하는 동일한 형상의 일련화 가능 클래스가 있어야 합니다. 이러한 클래스의 형상을 변경해야 하는 경우 응용 프로그램 개발자는 올바른 연속된 동작이 발생하는지 확인해야 합니다. 응용 프로그램이 업그레이드 전체에서 호환되지 않는 경우 클러스터가 전체 재배포에 대해 중지되어야 합니다.
응용 프로그램을 업그레이드하는 데 응용 프로그램 데이터베이스 스키마가 변경되는 경우 이 접근 방식이 불가능합니다.
주의 - 세션이 페일오버될 때 버전 불일치의 위험을 방지하려면 클러스터에 있는 모든 인스턴스를 동시에 업그레이드합니다. 그렇지 않으면 세션이 다른 구성 요소 버전이 실행되고 있는 인스턴스로 페일오버될 수 있습니다.
각 클러스터에 대해 별도로 이 작업을 수행합니다. 클러스터는 클러스터에 있는 인스턴스의 세션 페일오버에 대한 안전 경계의 역할을 합니다. 한 클러스터에 있는 세션은 다른 클러스터에 있는 세션으로 페일오버될 수 없습니다. 그러므로 버전 불일치의 위험이 방지됩니다.