<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Hi Daniel,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
That sounds good. I like the idea of using a system property to override the defaults just in case. For the starting default values, 2hrs and 1s for idle time and interval time respectively are the officially documented defaults. So, we could start with these. </div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
J<span style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">ust to reiterate, to start off with the prototype:</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<ol data-editing-info="{"orderedStyleType":1,"unorderedStyleType":1}" data-listchain="__List_Chain_202">
<li style="list-style-type: "1. ";"><span>Persist default values at the socket level in either <span style="font-family: "Segoe UI", "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.6667px; text-align: start; display: inline !important; background-color: rgb(255, 255, 255);" class="ContentPasted0">SocketImpl
or NIOSocketImpl</span></span>
<div style="list-style-type: "2. ";">
<div class="_Entity _EType_OWALinkPreview _EId_OWALinkPreview _EReadonly_1"></div>
</div>
</li><li style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; list-style-type: "2. "; color: rgb(0, 0, 0);">
Allow default values to be overridden through system properties</li><li style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; list-style-type: "3. "; color: rgb(0, 0, 0);">
Starting default values for idle time and interval time will be 2hrs and 1s</li></ol>
<div>Let me know if that's acceptable or if there's more to add.</div>
<div><br>
</div>
<div>Thanks,
<div>Terry</div>
</div>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Daniel Fuchs <daniel.fuchs@oracle.com><br>
<b>Sent:</b> June 6, 2023 4:22 AM<br>
<b>To:</b> Terry Chow (Simba Technologies Inc) <v-terrychow@microsoft.com>; Alan Bateman <Alan.Bateman@oracle.com>; net-dev@openjdk.org <net-dev@openjdk.org><br>
<b>Subject:</b> Re: [EXTERNAL] Re: Support for Keepalive Extended Socket Options On Windows</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">[You don't often get email from daniel.fuchs@oracle.com. Learn why this is important at
<a href="https://aka.ms/LearnAboutSenderIdentification">https://aka.ms/LearnAboutSenderIdentification</a> ]<br>
<br>
Hi Terry,<br>
<br>
I'm not sure what would be a good default value, but it could<br>
possibly be controlled by a system property allowing to override<br>
whatever we pick.<br>
<br>
best regards,<br>
<br>
-- daniel<br>
<br>
<br>
On 05/06/2023 20:52, Terry Chow (Simba Technologies Inc) wrote:<br>
> Hi Alan and Daniel,<br>
><br>
> Agreed, having Windows support the keepalive options as it's done on<br>
> other platforms would be the best. But, lobbying them for that change<br>
> would be extremely difficult as it would be very significant change that<br>
> impacts the whole platform.<br>
><br>
> What defaults values do you guys have in mind? I'm still hesitating on<br>
> persisting default values because the default values can vary between<br>
> machines.<br>
><br>
> Thanks,<br>
> Terry<br>
> ------------------------------------------------------------------------<br>
> *From:* Alan Bateman <Alan.Bateman@oracle.com><br>
> *Sent:* June 4, 2023 7:32 AM<br>
> *To:* Daniel Fuchs <daniel.fuchs@oracle.com>; Terry Chow (Simba<br>
> Technologies Inc) <v-terrychow@microsoft.com>; net-dev@openjdk.org<br>
> <net-dev@openjdk.org><br>
> *Subject:* [EXTERNAL] Re: Support for Keepalive Extended Socket Options<br>
> On Windows<br>
> [You don't often get email from alan.bateman@oracle.com. Learn why this<br>
> is important at <a href="https://aka.ms/LearnAboutSenderIdentification">https://aka.ms/LearnAboutSenderIdentification</a><br>
> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Faka.ms%2FLearnAboutSenderIdentification__%3B!!ACWV5N9M2RV99hQ!L3ZqYRNNOoxRi17MfA-Xuhn96mbJFGf8N9hRRT_fKwRroiRBdo_QNCcfm6-S-qa3FXTquasM6y3tpVE_ac_Dl3MS7A%24&data=05%7C01%7Cv-terrychow%40microsoft.com%7C09c9036c5d5d420df86808db668052e1%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638216473566084303%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=CfX27E30RGI%2BOVkENWm1La8JmRs5Qnjc7eNAjplQgZA%3D&reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Faka.ms%2FLearnAboutSenderIdentification__%3B!!ACWV5N9M2RV99hQ!L3ZqYRNNOoxRi17MfA-Xuhn96mbJFGf8N9hRRT_fKwRroiRBdo_QNCcfm6-S-qa3FXTquasM6y3tpVE_ac_Dl3MS7A%24&data=05%7C01%7Cv-terrychow%40microsoft.com%7C09c9036c5d5d420df86808db668052e1%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638216473566084303%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=CfX27E30RGI%2BOVkENWm1La8JmRs5Qnjc7eNAjplQgZA%3D&reserved=0</a>>
]<br>
><br>
> On 04/06/2023 10:49, Daniel Fuchs wrote:<br>
>> Hi,<br>
>><br>
>> Could we maybe cache the values in the SocketImpl/NIOSocketImpl<br>
>> implementation?<br>
>><br>
>> IIRC we do something like that for SO_TIMEOUT already, since this<br>
>> is handled at NIO level.<br>
>><br>
>> If we know the default value then setting one (when the other is<br>
>> not set) could set it with the supplied value for the one, and<br>
>> the default (or cached value) for the other?<br>
>><br>
>> Get would then return the cached value (or possibly default<br>
>> value if not set?)<br>
>><br>
>> We could also potentially set some sensible defaults when creating<br>
>> the socket.<br>
>><br>
> Yes, this is what I was suggesting in PR14232 too but it will likely be<br>
> a disruptive change. It can be prototyped at least, then we can see how<br>
> we could turn it into something that is maintainable. The best outcome<br>
> would of course be for Windows to expose the socket options in the same<br>
> way as Linux, macOS and others.<br>
><br>
> -Alan<br>
<br>
</div>
</span></font></div>
</body>
</html>