[omniORB] bidirectional omniORB, NAT and idle timeouts
Michael Teske
subscribe at teskor.de
Thu Sep 10 14:06:50 UTC 2026
Hi,
On 8/14/26 7:40 PM, Duncan Grisby wrote:
[...]
>> 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.
>
> 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.
I finally managed to do some tests. I stumbled over libkeepalive, which intercepts
all socket() calls to do exacly this.
When I set these env vars:
LD_PRELOAD=libkeepalive.so
KEEPCNT=10
KEEPIDLE=600
KEEPINTVL=60
Our problems go away (for now, that is :-) )
Of course it would be nicer to not LD_PRELOADing any libs. If I'd send you a patch to
add some parameters to omniORB which optionally set these socket options, is there a chance it would get accepted?
If not, I'll save the work and live with the libkeepalive solution.
> 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.
Of course we have ways to recover from a closed connection but it generates some errors, which
I'd like to prevent, if possible.
Greetings,
Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.omniorb-support.com/pipermail/omniorb-list/attachments/20260910/d10cd739/attachment.htm>
More information about the omniORB-list
mailing list