[omniORB] large messages -> WSAENOBUFS

Renzo Tomaselli renzo.tomaselli@tecnotp.it
Tue Sep 17 10:40:01 2002


Hi all,
    we just ported an OmniORB 3.04 based application to Windows XP SP1.
Things run well except when large messages are involved (say 140 Mb for a
practical failure). In such case socket send fails and winsock LastError
reports WSAENOBUFS. And yes, before anybody asks, omniORB::MaxMessageSize
was set pretty high.
While I understand this issue is a bit off topic here (and I apologize for
that) since it's not a direct OmniORB issue, I wonder if anybody else had
similar troubles.
MSDN reports this as being a known bug for NT. They also suggest to set
socket option SO_SNDBUF to 0 so that application buffer is used directly
instead of making an internal transport stack copy. I don't know whether
this affects performance, but it might be of intererest for the forthcoming
4.0 version.
Unfortunately, there is no further info about any specific datasize
threshold (my host has 512 Mb of memory) to limit message size. But I cannot
control message size at application level since it comes from a (possibly
large) commit of a db transaction.
Furthermore image-oriented applications are likely to find this trouble as
well.
Thanks,

Renzo Tomaselli