[omniORB] more Questions about oneway and asynchronous messages...
Bruce Visscher
visschb@rjrt.com
Wed, 07 Jul 1999 13:53:59 -0400
Charles W Collins wrote:
> Thanks for the responses I got, but I still have some questions about it...
>
They weren't posted here, so I may be repeating some of the suggestions and
comments.
>
> Unfortunately, I can't just spawn extra threads for handling those
> communications and let them time out because we expect that ultimately
> it may be a very large number of connections that are just open for one
> or two messages. We do not want the overhead of constantly spawning and
> cleaning up those threads.
>
OTOH, unless you try this, you don't know that it's worse performance.
Spawning a thread should be low overhead. We have found that changing one-way
calls to non-one way does not effect performance (in our applications) as much
as might be expected.
There was a thread about this in this list that I found enlightening. Did you
read it? In particular, did you try disabling the scavengers?
What platforms are you using?
>
> I have been told that the problems I've encountered with the oneway
> calls (namely that it will block if the server is down and more than
> about 100 messages are sent to it) are due to the underlying TCP. I've
> heard of non-blocking TCP where you can make your socket not block and
> not really care whether the message gets there, but I don't know very
> much about it. Is anyway that I could change the transport mechanism of
> OmniORB to fit my needs or will I have to write a full set of transport
> and marshalling calls myself and not use the ORB?
>
Yes, you could replace the TCP socket calls with asynchronous calls, but IMHO,
that would be messy and a lot of work. If your platform has decent thread
support it shouldn't be necessary.
Bruce