fr.dyade.aaa.agent.HAEngine Class Reference

Inherits fr.dyade.aaa.agent.Engine.

Inheritance diagram for fr.dyade.aaa.agent.HAEngine:

Inheritance graph
[legend]
Collaboration diagram for fr.dyade.aaa.agent.HAEngine:

Collaboration graph
[legend]
List of all members.

Public Member Functions

void setJGroups (JGroups jgroups)
void save () throws IOException
void restore () throws Exception
synchronized void post (Message msg) throws Exception
void validate ()

Protected Member Functions

void onTimeOut () throws Exception

Package Functions

 HAEngine () throws Exception
void commit () throws Exception
void abort (Exception exc) throws Exception
void receiveFromJGroups (Message msg) throws Exception
synchronized void getState () throws Exception
synchronized void setState (HAStateReply reply) throws Exception
Object load (byte[] buf) throws Exception

Package Attributes

volatile boolean needToSync = false
volatile Vector requestor = null

Detailed Description

Implementation of Engine that used JGroups in order to improve reliability.

Definition at line 36 of file HAEngine.java.


Member Function Documentation

void fr.dyade.aaa.agent.HAEngine.save (  )  throws IOException

Saves logical clock information to persistent storage.

Reimplemented from fr.dyade.aaa.agent.Engine.

Definition at line 62 of file HAEngine.java.

void fr.dyade.aaa.agent.HAEngine.restore (  )  throws Exception

Restores logical clock information from persistent storage.

Reimplemented from fr.dyade.aaa.agent.Engine.

Definition at line 67 of file HAEngine.java.

synchronized void fr.dyade.aaa.agent.HAEngine.post ( Message  msg  )  throws Exception

Adds a message in "ready to deliver" list. This method allocates a new time stamp to the message ; be Careful, changing the stamp imply the filename change too.

Reimplemented from fr.dyade.aaa.agent.Engine.

Definition at line 74 of file HAEngine.java.

References fr.dyade.aaa.agent.JGroups.coordinator, fr.dyade.aaa.agent.Engine.getName(), fr.dyade.aaa.agent.Engine.logmon, fr.dyade.aaa.agent.Engine.msg, fr.dyade.aaa.agent.Message.save(), fr.dyade.aaa.agent.JGroups.send(), and fr.dyade.aaa.agent.Engine.stamp().

Here is the call graph for this function:

void fr.dyade.aaa.agent.HAEngine.validate (  ) 

Validates all messages pushed in queue during transaction session.

Reimplemented from fr.dyade.aaa.agent.Engine.

Definition at line 123 of file HAEngine.java.

References fr.dyade.aaa.agent.HAEngine.needToSync.

void fr.dyade.aaa.agent.HAEngine.commit (  )  throws Exception [package]

Commit the agent reaction in case of rigth termination:

Reimplemented from fr.dyade.aaa.agent.Engine.

Definition at line 137 of file HAEngine.java.

References fr.dyade.aaa.agent.HAEngine.getState(), fr.dyade.aaa.agent.Engine.msg, fr.dyade.aaa.agent.HAEngine.needToSync, fr.dyade.aaa.agent.Engine.qin, fr.dyade.aaa.agent.HAEngine.requestor, and fr.dyade.aaa.agent.MessageQueue.size().

Referenced by fr.dyade.aaa.agent.HAEngine.onTimeOut().

Here is the call graph for this function:

void fr.dyade.aaa.agent.HAEngine.abort ( Exception  exc  )  throws Exception [package]

Abort the agent reaction in case of error during execution. In case of unrecoverable error during the reaction we have to rollback:

Reimplemented from fr.dyade.aaa.agent.Engine.

Definition at line 164 of file HAEngine.java.

synchronized void fr.dyade.aaa.agent.HAEngine.getState (  )  throws Exception [package]

Get the current state of Engine: agents, messages, etc. This operation is done in transactoion so Engine can't get more messages and Network can't post new !!

Definition at line 197 of file HAEngine.java.

References fr.dyade.aaa.agent.Engine.agent, fr.dyade.aaa.agent.HAStateReply.agents, fr.dyade.aaa.agent.Engine.agents, fr.dyade.aaa.agent.Agent.getId(), fr.dyade.aaa.agent.Network.getStamp(), fr.dyade.aaa.agent.Engine.getStamp(), fr.dyade.aaa.agent.Engine.logmon, fr.dyade.aaa.agent.HAStateReply.messages, fr.dyade.aaa.agent.Engine.msg, fr.dyade.aaa.agent.JGroups.network, fr.dyade.aaa.agent.Engine.now, fr.dyade.aaa.agent.HAStateReply.now, fr.dyade.aaa.agent.HAEngine.requestor, fr.dyade.aaa.agent.JGroups.send(), fr.dyade.aaa.agent.HAStateReply.setNetworkStamp(), fr.dyade.aaa.agent.HAStateReply.stamp, and fr.dyade.aaa.agent.Agent.writeObject().

Referenced by fr.dyade.aaa.agent.HAEngine.commit().

Here is the call graph for this function:


The documentation for this class was generated from the following file:
Generated on Tue Sep 16 16:16:27 2008 for joram by  doxygen 1.5.0