All Packages Class Hierarchy This Package Previous Next Index
java.lang.Object | +----JavaGroups.JavaStack.Protocol | +----JavaGroups.JavaStack.Protocols.NAKACK
The third mode is for out-of-band control messages (activated by SWITCH_OUT_OF_BAND): this mode does neither employ view IDs, nor does it use the same seqnos as NAK and NAK_ACK. It uses its own seqnos, unrelated to the ones used by NAK and NAK_ACK, and never resets them. In combination with the sender's address, this makes every out-of-band message unique. Out-of-band messages are used for example for broadcasting FLUSH messages.
Once a mode is set, it remains in effect until exactly 1 message has been sent, afterwards the default mode NAK is used again. The following communication between 2 peers exists (left side is initiator, right side receiver):
send_out_of_band --------------> synchronous (1) <------------- ack send_nak --------------> asynchronous (2) send_nak_ack --------------> synchronous (3) <-------------- ack retransmit <-------------- asynchronous (4)When a message is sent, it will contain a header describing the type of the message, and containing additional data, such as sequence number etc. When a message is received, it is fed into either the OutOfBander or NAKer, depending on the header's type.
Note that in the synchronous modes, ACKs are sent for each request. If a reliable unicast protocol layer exists somewhere underneath this layer, then even the ACKs are transmitted reliably, thus increasing the number of messages exchanged. However, since it is envisaged that ACK/OUT_OF_BAND are not used frequently, this problem is currently not addressed.
public NAKACK()
public String GetName()
public Vector ProvidedUpServices()
public Vector ProvidedDownServices()
public void Up(Event evt)
Do not use PassUp
in this method as the event is passed up
by default by the superclass after this method returns !
public void Down(Event evt)
Do not use PassDown
in this method as the event is passed down
by default by the superclass after this method returns !
public boolean SetProperties(Properties props)
public static void main(String args[])
All Packages Class Hierarchy This Package Previous Next Index