Servizio Comunitario di Informazione in materia di Ricerca e Sviluppo - CORDIS

Fault-tolerance for stateful J2EE application servers

Within this project we have developed an efficient, transparent replication algorithm for stateful J2EE application servers. It guarantees that each client request submitted to the server is executed exactly-once despite server failures. Furthermore, the state maintained by the application server and the database state are always consistent. The algorithm is based on a primary/backup mechanism where the state changes on the application server a multicast to the backups before a response is returned to the client.

All request execution is performed within a transaction, and a coordination protocol guarantees that the database and all application server replicas have consistent state. If the primary fails before returning a response, the client side communication stub will automatically resend the request to the new primary guaranteeing that the client will receive a response. We used the ADAPT framework for J2EE replication to integrate this algorithm into the open-source J2EE application server JBoss. Extensive performance evaluations (including some with the ECPerf benchmark) have shown that our protocol has very little overhead. At the same time it provides much stronger correctness properties than most of the replication mechanisms of existing application servers.

Reported by

School of Computer Science, McGill University
3480 University Street, McConnell Eng. Bldg.
H3A 2A7 Montreal
See on map