Here are some updates from my project, (source code at [1]):
1) A new test scenario was developed: primary-backup with N backups. In this
scenario we have a server-client application, with N nodes on the server
side. The first node to join on the server side becomes the primary server,
and the subsequent ones are the backups. The primary gets a request from a
client, and sends a reply to the client and a copy of it state to the
backups. When the primary fails, the first backup on the queue becomes the
new server. On the other hand, when a backup fails, the primary simply stop
to send updates to it.
This scenario was implemented using the guardian-model approach.
2) A new tag was added to the recovery rules XML file:
<affected_participants>. It allows specify in which participants the
exception will be raised. For example:
* <participant match="*.BACKUP">
<throw_exception
class="org.apache.tuscany.sca.guardian.itests.primaryBackup.common.PrimaryFailedException"
target_context="MAIN">
<affected_participants>FIRST</affected_participants>
</throw_exception>
</participant>*
With this rule, only the first backup on the backup queue will have a
PrimaryFailedException raised in it's MAIN context.
Thoughts?
[1]
http://svn.apache.org/repos/asf/tuscany/sandbox/dougsleite/guardian-model/
--
Douglas Siqueira Leite
Graduate student at University of Campinas (Unicamp), Brazil