[omniORB] bidirectional omniORB, NAT and idle timeouts
Michael Teske
subscribe at teskor.de
Thu Aug 13 13:42:28 UTC 2026
Hi,
since a while we tested omniORB with bidirectional switched on.
Our architecture heavily relies on callback object, and with bidirectional we don't need to
keep a listen port on the client open - which often leads to security discussions these days.
So we finally went live with this configuration, and all worked fine, except: The connections
from the client to the server processes goes over NAT, and the NAT server they use disables idle connections
after about 45 minutes.
Without bidir, omniORB itself closes idle connections after a while an transparently opens them, if a call
has to be made. Obviously this cannot be done in the bidirectional scenario, so if a connection from client to server
is idle for a longer time, gets disabled and then the server wants to call a callback, it sends something and
gets a recv error afterward, which leads to an exception (of course it cannot re-open the connection) like this
omniORB: (53) 2026-08-12 16:00:00.959212: Error in network receive (start of message): giop:ssl:[::ffff:10.49.64.240]:52284
omniORB: (53) 2026-08-12 16:00:00.959225: throw giopStream::CommFailure from giopStream.cc:857(0,NO,COMM_FAILURE_UnMarshalArguments)
omniORB: (53) 2026-08-12 16:00:00.959333: Bi-directional strand 0x7f71ec00e950 is dying after handling a callback.
omniORB: (55) 2026-08-12 16:00:00.959346: Reset rope addresses (current address giop:ssl:[::ffff:10.49.64.240]:52284)
omniORB: (55) 2026-08-12 16:00:00.959356: Connection closed while waiting for a reply on a bidirectional connection: giop:ssl:[::ffff:10.49.64.240]:52284
omniORB: (55) 2026-08-12 16:00:00.959359: throw giopStream::CommFailure from giopImpl12.cc:581(0,MAYBE,COMM_FAILURE_WaitingForReply)
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.
Any help appreciated.
Regards,
Michael
More information about the omniORB-list
mailing list