[JDEV] Keep-Alives

Tijl Houtbeckers tijl at druppel.nl
Thu Jul 4 14:12:41 CDT 2002


Matthias Wimmer <m at tthias.net> wrote

>Hi Tijl!
>
>Tijl Houtbeckers wrote:
>
>>A few problems I see with using keep-alives (as far as I understand them) 
>>1. It is very low level, not all programming languages / devices will have acces to it.
>>
>It's right that not every programming language support activating 
>keep-alives, but:
>- you only have to activate it at the server
>- you don't have to do anything on the client it's completely 
>transparent to it
>- it's accessible by much more programming languages then the OOB data

True, I never considered OOB data though..

>>2. It is bound to TCP/IP, I could for example use a bluetooth link or a serial link 
instead 
>>of TCP/IP. Jabber over HTTP also sort of falls into this catagory.
>>
>TCP keep-alives aren't and won't be needed by the Jabber protocol. It 
>just solves some problems we have with TCP. Therefore we only need it 
>with TCP.

Well, it's a problem in manny connection oriented enviroment, not just TCP/IP.. if we 
start using keepalive will people say: we've got the solution now, so why bother on 
making something on the jabber protocol level (or support it)? 

>>3. keep alive is OS dependant. Not all OSes provide acces to it, and some let you 
set 
>>it only for all applications, not specific ones (as I understand from earlyer postings).
>>
>On the one hand I know no operating system that doesn't support it, on 
>the other hand you only need support for it on the server side.

Hm, I suppose you're right here, there's not manny operating systems left that don't 
support it, and the ones I can think of you probably would not want to run a jabber 
server on anyway.

>>4 I asume keep-alives will be for *all* user that log into jabber, some might not 
want 
>>keep-alives or anything like it at all for their clients.
>>
>As I told: It's completely transparent to the client. The only thing why 
>he couldn't like it is that the client has very expensive metered 
>traffic. For this clients would be possible to include some way to 
>disable keep-alives (the server can activate and deactivate keep-alives 
>per connection). 
> But as I wrote above: It is a very small amount of 
>additional traffic and it's only generated on idle connections. Every 
>other way to fix our TCP problems will generate more traffic.
>
>>A few of these problems came up before on the mailinglist, and I haven't yet heard 
a 
>>solution for them. It might not hinder any implemention for this on *nix, but the 
>>problem will still remain for the platforms/implementations that can not use this.
>>
>We have servers on Unix, Windows and Java. All of this three platforms 
>support keep-alives (Java since version 1.3). The client side is 
>supported by every platform/language that supports TCP/IP.

I suppose my worries were a bit overstated, keepalives sound like a good solution 
(should they be opt-in or opt-out?). I hope they won't screw up my GPRS links but I 
don't think so.. I doubt there that manny implementations of jabber over something 
else as TCP/IP anyway, we'll just have to cross that bridge when we get there..


-- 
Tijl Houtbeckers
JAVA/J2ME/GPRS Programmer @ Splendo 




More information about the JDev mailing list