Per-Connection TCP keepalive parameters and application-wide keepalive enforcement.
Alan Bateman
Alan.Bateman at oracle.com
Fri Nov 10 06:16:25 UTC 2017
On 10/11/2017 06:09, Bernd Eckenfels wrote:
>
> Hello,
>
> TCP keepalive is a rather elegant mechanism to detect abandoned TCP
> Connections. With increased distribution of components and inclusion
> of Cloud based services I have the feeling it has become more important.
>
> Yet it is rather clumsy to use, because in addition to actually
> enabling it in the application for every generated socket it also
> typically requires reconfiguration of the OS Settings, since the
> Defaults like 2h (Linux) to start the detection are nowhere near a
> useful short detection time.
>
> On native applications there is therefore a trend to configure the
> times on a per-connection base with the appropriate APIs. For example
> a Oracle Database 12c reconfigures the TCP keepalive settings when the
> sqlnet.expire_time* setting is used.
>
> For sockets used in OpenJDK/Oracle jvm there seems to be no way to
> configure per-connection Settings and there is also no global option
> to turn on keep-alive for Java applications which do not contain
> specific code. (This is especially a problem since there is also no OS
> switch to turn this on, so solutions like pre-loaded shared libraries
> have to be used, which is rather ugly)
>
> -Djdk.net.tcpkeepalive=true ; set the keepalive option on all new
> sockets, allow the API to unset it selectively
>
> I wonder what the idea here on the list is, would this be a
> interesting Addition to the socket Option API and a good System property?
>
>
I don't recall this coming up before. If it were to go ahead then it may
have some spec implications, e.g. TCP_NODELAY is specified to be false
by default in the API specs.
-Alan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/net-dev/attachments/20171110/4e39e9af/attachment.html>
More information about the net-dev
mailing list