[omniORB] Problem with large requests (WinNT)

Clarke Brunt clarke.brunt at yeomannavigation.co.uk
Wed Aug 18 18:45:05 BST 2004


----- Original Message -----
From: "Duncan Grisby" <duncan at grisby.org>
To: "Clarke Brunt" <clarke.brunt at yeomannavigation.co.uk>
Cc: "Omniorb-Mail-List (E-mail)" <omniorb-list at omniorb-support.com>
Sent: Tuesday, August 17, 2004 4:45 PM
Subject: Re: [omniORB] Problem with large requests (WinNT)


> On Monday 19 July, "Clarke Brunt" wrote:
>
> > Following up my own message (failure in tcpConnection.cc on WinNT
attempting
> > to call :send with a size of >12Mb approx):
> >
> > I've experimentally added:
> >
> > #ifdef __WIN32__
> >   // Clarke Brunt, 19/7/2004, try smaller chunks
> >   if (sz >= 0x400000) sz = 0x400000 - 8;
> > #endif
> >
> > i.e. similar to the #ifdef __VMS code that is there already, to make it
send
> > in 4Mb chunks. I'd never built OmniORB from source on Windows before,
but
> > was relatively painless. It now works fine.
> >
> > Still, I'd appreciate knowing whether the failure I observed is due to
some
> > limitation on NT, or the confuguration of my machine, or what? If it
> > _always_ happens, then something like my added code might usefully be
> > included in the official source.
>
> Can anyone confirm or deny that Windows has this limitation?

So far, we seem to have Grzegorz Makarewicz saying that the problem is
consistent, and Vitaly Prapirny who never observes such a problem.

Although I applied the above patch to omniORB running on my own desktop
machine, it proved _not_ to be necessary when I ran the same software on
some better-equipped server machines (in particular, perhaps it's having
512MB or more memory, rather than the 256MB on my desktop which makes the
difference).

The ::send call which was failing was in a server attempting to return a
large response to a client. I've also observed failures where I can run one
instance of a client receiving this stuff, but running a second instance of
the same client gets CORBA exceptions in the request. I haven't yet
investigated whether perhaps these happen in a ::recv matching the ::send at
the other end. Again I can't help but suspect that this is something that
happens when Windows is feeling a bit short of memory (though not, I think,
completely out of memory, when allowing for the pagefile).

As Vitaly suggests, "Maybe WSAGetLastError could explain the reason of error
from original report.". I'll give it a try if I get back to worrying about
this.

--
Clarke Brunt, Principal Software Engineer, Yeoman Navigation




More information about the omniORB-list mailing list