Oh, sorry, my fault - for some reason I understood that we're talking
about soTimeout.
Currently we don't have a good way how to specify socket keepalive
timeout, though we can easily add it to 1.9.19 version (trunk).
If you use GWS - there is no way to customize socket keepalive timeout
at all. In case you use SelectorThread approach - it's possible to
gain this.
selectorThread = new SelectorThread() {
/**
* Create {_at_link TCPSelectorHandler}
*/
@Override
protected TCPSelectorHandler createSelectorHandler() {
return new SelectorThreadHandler(this) {
@Override
public void configureChannel(SelectableChannel channel) throws
IOException{
super.configureChannel(channel);
channel.setKeepAlive(true);
}
}
}
}
WBR,
Alexey.
On Mar 30, 2010, at 17:40 , Ray Racine wrote:
> Oleksly,
>
> Thanks for the fast replies.
>
> From SelectorThread.java
>
> /**
> * Sets the number of seconds before a keep-alive connection
> that has
> * been idle times out and is closed.
> *
> * @param timeout Keep-alive timeout in number of seconds
> */
> public void setKeepAliveTimeoutInSeconds(int timeout) {
> keepAliveStats.setKeepAliveTimeoutInSeconds(timeout);
> if (keyHandler != null) {
> keyHandler.setTimeout(timeout == -1
> ? SelectionKeyAttachment.UNLIMITED_TIMEOUT:
> timeout * 1000L);
> }
> }
>
> Between the client and the server is a NATing Load Balancer. This
> appliance _will_ timeout and sever an idle connection unless some
> activity is induced, e.g., a zero data packet. See http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/overview.html
> Section 2.4 as the use-case.
>
> Say I use the above code and setKeepAliveTimeoutInSeconds(-1) //
> infinite
> Will Grizzly send some sort of nuance packet to prevent the NAT/Load
> Balancer from timing out my idle TCP connection?
>
> I know adjustments can be done directly on the NATing appliance but
> I'd still like to do it at the code level.
>
> In other words, does setting the above achieve the same effect as http://java.sun.com/javase/6/docs/api/java/net/Socket.html#setKeepAlive(boolean)
> ?
>
> Sorry for so many questions today :)
>
> Thanks,
>
> Ray
>
> On Tue, Mar 30, 2010 at 11:15 AM, Oleksiy Stashok <Oleksiy.Stashok_at_sun.com
> > wrote:
> Ok, so to set idle timeout please use:
> gws.getSelectorThread().setKeepAliveTimeoutInSeconds(timeout);
>
> if you want to disable timeout - set "-1".
>
> WBR,
> Alexey.
>
> On Mar 30, 2010, at 16:59 , Ray Racine wrote:
>
>> I'm configuring everything directly at the SelectorThread API using
>> examples like GrizzlyWebServer.java, GrizzlyEmbeddedHttp.java etc.
>>
>> Ray
>>
>> On Tue, Mar 30, 2010 at 9:22 AM, Oleksiy Stashok <Oleksiy.Stashok_at_sun.com
>> > wrote:
>> Hi Ray,
>>
>> in Grizzly we don't turn on standard socket keepalive mechanism,
>> but use our own (via SelectionKeyHandler API).
>>
>> If you'd share your Grizzly initialization code - I'll help to
>> change keep alive settings.
>>
>> WBR,
>> Alexey.
>>
>>
>>
>> On Mar 30, 2010, at 14:12 , Ray Racine wrote:
>>
>> I notice a number of KeepAlive values in Grizzly, however, I've
>> been unable to find where in Grizzly at the socket level where
>> Socket s, s.setKeepAlive (true) is invoked. My use case is to
>> prevent the NAT from timing out an idle TCP/IP connection.
>>
>> In this case I'm seeking to sustain a dedicated connection between
>> client and server with basic HTTP req/resp. I'd like to set the
>> socket TCP keep alive but I don't see where to do it.
>>
>> Thanks,
>>
>> Ray
>>
>> --
>> The object of life is not to be on the side of the majority, but to
>> escape finding oneself in the ranks of the insane. - Marcus Aurelius
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>
>>
>>
>>
>> --
>> The object of life is not to be on the side of the majority, but to
>> escape finding oneself in the ranks of the insane. - Marcus Aurelius
>
>
>
>
> --
> The object of life is not to be on the side of the majority, but to
> escape finding oneself in the ranks of the insane. - Marcus Aurelius