<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi,</p>
    <div class="moz-cite-prefix">On 8/14/26 7:40 PM, Duncan Grisby
      wrote:</div>
    <div class="moz-cite-prefix">[...]</div>
    <blockquote type="cite"
cite="mid:2d601ca43319cc858cd08c3d3772e6fdc6e7417b.camel@grisby.org">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Is there any solution for this available yet? I thought about
hacking TCP_KEEPIDLE on linux into the socket options, but before
doing that I thought I ask here first.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">

I don't think you are likely to have much luck with doing that. It
might make it somewhat less likely for the NAT server to drop your
connection, but sooner or later something will cause the connection to
drop.</pre>
    </blockquote>
    <p>I finally managed to do some tests. I stumbled over libkeepalive,
      which intercepts</p>
    <p>all socket() calls to do exacly this.</p>
    <p>When I set these env vars:</p>
    <p>LD_PRELOAD=libkeepalive.so<br>
      KEEPCNT=10<br>
      KEEPIDLE=600<br>
      KEEPINTVL=60</p>
    <p>Our problems go away (for now, that is :-) )</p>
    <p>Of course it would be nicer to not LD_PRELOADing any libs. If I'd
      send you a patch to</p>
    <p>add some parameters to omniORB which optionally set these socket
      options, is there a chance it would get accepted?</p>
    <p>If not, I'll save the work and live with the libkeepalive
      solution.</p>
    <p><span style="white-space: pre-wrap">
</span></p>
    <blockquote type="cite"
cite="mid:2d601ca43319cc858cd08c3d3772e6fdc6e7417b.camel@grisby.org">
      <pre wrap="" class="moz-quote-pre">A more robust solution would be to periodically make an explicit CORBA
call from the client to the server, re-sending the callback object
reference. Normally that periodic call would reuse the existing
connection, but if the connection is dropped for any reason, a new one
will be opened. It is important to re-send the callback because
bidirectional callbacks are only allowed on the same connection that
was used to receive the object reference.
</pre>
    </blockquote>
    <p>Of course we have ways to recover from a closed connection but it
      generates some errors, which</p>
    <p>I'd like to prevent, if possible. </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p>Greetings,</p>
    <p>  Michael</p>
    <p><br>
    </p>
  </body>
</html>