[Spread-users] 回复: fails to implement ACK machnism in application level

lzhshen 29585543 at qq.com
Mon Nov 3 23:05:32 EST 2008

(sorry to resend it again, just add some "enter" to make it easier to read)

 I try to implement this logic in application level, but it fails.

There is a sender and a receiver in my cases. 
1. Sender will publish a event (A) to spread and subscribe the corresponding ACK event (AC). 
If it can not receive the ACK event (AC) in a short period of time (10 secs) it will resend the 
event (A) and wait for the ACK event (AC) again until it receive the ACK event (AC) successfully.
2. The receiver will send out the ACK event (AC) after receiving the event (A). 

It works in first case: The sender can receive ACK event (A) immediately if receiver is alive 
when sender sends out the event (A) in the first time.

It fails in second case: The receiver is down when the sender sends out the event (A) in 
the first time. When the sender is blocked in receive(), I manually start the receiver.
 10 seconds later, the sender tries to send out the event (A) for the second time. 
Now the receiver is alive and it can receive the the event (A) and send out the ACK event. 
But, the sender still can not receiver the ACK event (AC). The same thing happens for
 next tries.  It stills fails even when sender disconnects and connects each time before
 it sends the event (A) to receiver.

Is it a bug or do I miss something?

Thanks in advance!

------------------ 原始邮件 ------------------
发件人: "Alexey Zakhlestin"<indeyets at gmail.com>;
发送时间: 2008年10月23日(星期四) 凌晨0:28
收件人: "lzhshen"<29585543 at qq.com>; 
抄送: "spread-users"<spread-users at lists.spread.org>; 
主题: Re: [Spread-users] how does Spread make sure that the event is successfully delivered to the subscriber?

  On Wed, Oct 22, 2008 at 12:58 PM, lzhshen <29585543 at qq.com> wrote:
>     When the event publisher sends the event to Spread and the subscriber
> lose the connection with Spread, will this event be lost forever? Will
> Spread sends the same event to the subscriber when it connects to Spread
> again?

it won't.
this kind of logic is supposed to be implemented on application-level.

think of spreas as of "UDP". if you need to verify delievery, you have
to implement "TCP" on top of it

Alexey Zakhlestin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.spread.org/pipermail/spread-users/attachments/20081104/82482dfb/attachment.html 

More information about the Spread-users mailing list