RFR:8194298 Add support for per Socket configuration of TCP keepalive
vyom tewari
vyom.tewari at oracle.com
Wed Apr 18 15:01:29 UTC 2018
Hi Chris,
On Wednesday 18 April 2018 07:44 PM, Chris Hegarty wrote:
> Vyom,
>
> On 13/04/18 10:50, vyom tewari wrote:
>> Hi All,
>>
>> Please review the below code.
>>
>> BugId : https://bugs.openjdk.java.net/browse/JDK-8194298
>>
>> webrev :
>> http://cr.openjdk.java.net/~vtewari/8194298/webrev0.0/index.html
>
> Here is some proposed wording for the JDK-specific extended socket
> options specification.
>
> 1) Uses a consistent style across all three new options,
> and is in line with existing extended options.
> 2) Renamed the options slightly, to improve readability
> ( they don't need to conform to the native option names )
> 3) Reordered them so the build up is more logical
> 4) Removed inheritance from server sockets
> 5) Added standard verbiage about being "platform and
> system dependent
> 6) Added typical values. I think this is useful, as it
> gives an idea to the developer, but maybe it could be
> misleading. Can be dropped if there are concerns.
>
> Can you please confirm that this is accurate, and also
> will leave enough "wriggle" room when additional platform
> support is added.
>
yes, below is perfect i will do the changes and send the updated webrev
soon. Thanks for help, writing Java doc is always harder(4x) than
writing code.
Vyom
> ---
>
> /**
> * Keep-Alive idle time.
> *
> * <p> When the {@link java.net.StandardSocketOptions#SO_KEEPALIVE
> * SO_KEEPALIVE} option is enabled, TCP probes a connection that
> has been
> * idle for some amount of time. The default value for this idle
> period is
> * system dependent, but is typically 2 hours. The {@code
> TCP_KEEPIDLE}
> * option can be used to affect this value for a given socket.
> *
> * <p> The value of this socket option is an {@code Integer} that
> is the
> * number of seconds of idle time before keep-alive initiates a
> probe. The
> * socket option is specific to stream-oriented sockets using the
> TCP/IP
> * protocol. The exact semantics of this socket option are socket
> type and
> * system dependent.
> *
> * @since 11
> */
> public static final SocketOption<Integer> TCP_KEEPIDLE
> = new ExtSocketOption<Integer>("TCP_KEEPIDLE",
> Integer.class);
>
> /**
> * Keep-Alive retransmission interval time.
> *
> * <p> When the {@link java.net.StandardSocketOptions#SO_KEEPALIVE
> * SO_KEEPALIVE} option is enabled, TCP probes a connection that
> has been
> * idle for some amount of time. If the remote system does not
> respond to a
> * keep-alive probe, TCP retransmits the probe after some amount
> of time.
> * The default value for this retransmition interval is system
> dependent,
> * but is typically 75 seconds. The {@code TCP_KEEPINTERVAL}
> option can be
> * used to affect this value for a given socket.
> *
> * <p> The value of this socket option is an {@code Integer} that
> is the
> * number of seconds to wait before retransmitting a keep-alive
> probe. The
> * socket option is specific to stream-oriented sockets using the
> TCP/IP
> * protocol. The exact semantics of this socket option are socket
> type and
> * system dependent.
> *
> * @since 11
> */
> public static final SocketOption<Integer> TCP_KEEPINTERVAL
> = new ExtSocketOption<Integer>("TCP_KEEPINTERVAL",
> Integer.class);
>
> /**
> * Keep-Alive retransmission maximum limit.
> *
> * <p> When the {@link java.net.StandardSocketOptions#SO_KEEPALIVE
> * SO_KEEPALIVE} option is enabled, TCP probes a connection that
> has been
> * idle for some amount of time. If the remote system does not
> respond to a
> * keep-alive probe, TCP retransmits the probe a certain number of
> times
> * before a connection is considered to be broken. The default
> value for
> * this keep-alive probe retransmit limit is system dependent, but is
> * typically 8. The {@code TCP_KEEPCOUNT} option can be used to
> affect
> * this value for a given socket.
> *
> * <p> The value of this socket option is an {@code Integer} that
> is the
> * maximum number of keep-alive probes to be sent. The socket
> option is
> * specific to stream-oriented sockets using the TCP/IP protocol.
> The exact
> * semantics of this socket option are socket type and system
> dependent.
> *
> * @since 11
> */
> public static final SocketOption<Integer> TCP_KEEPCOUNT
> = new ExtSocketOption<Integer>("TCP_KEEPCOUNT",
> Integer.class);
>
> -Chris.
More information about the net-dev
mailing list