Details
Description
The ability to "failover" to an alternate cluster node is desirable for many application deployments.
Issue Links
Activity
Ted Goddard
created issue -
Ted Goddard
made changes -
Field | Original Value | New Value |
---|---|---|
Assignee | Deryk Sinotte [ deryk.sinotte ] |
Ted Goddard
made changes -
Fix Version/s | 1.7.2 [ 10130 ] |
Deryk Sinotte
made changes -
Assignee | Deryk Sinotte [ deryk.sinotte ] | Greg Dick [ greg.dick ] |
Ken Fyten
made changes -
Fix Version/s | 1.8DR#2 [ 10142 ] | |
Fix Version/s | 1.7.2 [ 10130 ] |
Deryk Sinotte
made changes -
Assignee Priority | P1 |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #17943 | Fri Nov 28 11:31:19 MST 2008 | greg.dick | |
Files Changed | ||||
MODIFY
/icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/http/core/SendUpdatedViews.java
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #17944 | Fri Nov 28 11:32:18 MST 2008 | greg.dick | |
Files Changed | ||||
MODIFY
/icefaces/trunk/icefaces/bridge/src/application.js
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #17945 | Fri Nov 28 11:37:59 MST 2008 | greg.dick | |
Files Changed | ||||
MODIFY
/icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/http/servlet/SessionDispatcher.java
|
Greg Dick
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Jack Van Ooststroom
made changes -
Ken Fyten
made changes -
Fix Version/s | 1.8 [ 10161 ] | |
Assignee Priority | P1 |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
Assignee | Greg Dick [ greg.dick ] |
Failover in Java enterprise clusters is typically implemented through the following: make use of a database that has an internal (clustered) failover mechanism, and support failover in the web-tier through session replication.
Database clustering is outside the scope of this discussion and is provided by existing third party implementations.
The central interest in failover for ICEfaces then becomes support for session replication.
A stock JSF application supports failover through persistence of component saved state in the session. This saved state is replicated to alternate cluster nodes. In the case of node failure, the "sticky session" is transferred to the alternate node and execution proceeds with minimal impact (since the session is the only user-specific state stored in the web tier).
The following is a strategy that should allow an ICEfaces application to failover to an alternate node:
1. Support existing JSF state-saving. This is currently being undertaken to reduce server-side memory requirements (the persistent component tree becomes optional) but will have important benefits in failover. the essential aspect is that it allows the application to continue execution with the component tree in the same state as it was before the failure occurred.
2. Treat the case of a null "old DOM" as a full page refresh. Rather than suffer the performance cost of constantly transferring the DOM to the alternate node, simply refresh user's pages during the (rare) event of node failure. The important point here is that application functionality is not affected; a full-page refresh imparts only a usability impact and can occur under circumstances as well.
3. Analyze the servlet stack for "session-like" state (such as icefacesID and viewNumbers). It may be worthwhile to move some of this state into the session in a controlled manner (such as a single serializable session object).