|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jgroups.demos.QuoteServer
public class QuoteServer
Example of a replicated quote server. The server maintains state which consists of a list of quotes and their corresponding values. When it is started, it tries to reach other quote servers to get its initial state. If it does not receive any response after 5 seconds, it assumes it is the first server and starts processing requests. When it receives a view notification it checks whether there are more members in the view than in its previous view. If this is the case, it broadcasts a request for the state to all members. Integration of different states is simply the union of all states (with the danger of overwriting mutually inconsistent state).
This mechanism allows both for fast discovery of initial servers, and - in the case of partition merging - for reintegration of existing servers. Broadcasting the state request upon every view change (only when new members are joined) causes potentially a lot of network traffic, but it is assumes that there will not be more than 5 quote servers at most.
Constructor Summary | |
---|---|
QuoteServer()
|
Method Summary | |
---|---|
void |
block()
Called whenever the member needs to stop sending messages. |
java.util.Hashtable |
getAllStocks()
|
float |
getQuote(java.lang.String stock_name)
|
byte[] |
getState()
Answers the group state; e.g., when joining. |
static void |
main(java.lang.String[] args)
|
void |
printAllStocks()
|
void |
receive(Message msg)
Called when a message is received. |
void |
setQuote(java.lang.String stock_name,
java.lang.Float value)
|
void |
setState(byte[] state)
Sets the group state; e.g., when joining. |
void |
start()
|
void |
suspect(Address suspected_mbr)
Called whenever a member is suspected of having crashed, but has not yet been excluded. |
void |
viewAccepted(View new_view)
Called when a change in membership has occurred. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public QuoteServer()
Method Detail |
---|
public void viewAccepted(View new_view)
MembershipListener
viewAccepted
in interface MembershipListener
public void suspect(Address suspected_mbr)
MembershipListener
suspect
in interface MembershipListener
public void block()
MembershipListener
block
in interface MembershipListener
public void start()
public float getQuote(java.lang.String stock_name) throws java.lang.Exception
java.lang.Exception
public void setQuote(java.lang.String stock_name, java.lang.Float value)
public java.util.Hashtable getAllStocks()
public void printAllStocks()
public void receive(Message msg)
MessageListener
receive
in interface MessageListener
public byte[] getState()
MessageListener
getState
in interface MessageListener
public void setState(byte[] state)
MessageListener
setState
in interface MessageListener
public static void main(java.lang.String[] args)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |