[omniORB] PingPong - Callback - Problem

Duncan Grisby dgrisby@uk.research.att.com
Thu, 01 Feb 2001 11:20:06 +0000


On Wednesday 31 January, Bernd Varga wrote:

> Why does the program stop after the "C++ pong: 10"? Is any thing
> wrong in the source - code? Or has CORBA a maximum sum of
> callback - functions?

I didn't read all your code -- please try to send a minimal bit of
code which explains what you are doing, not the entire thing. Anyway,
it looks like you are doing recursive call-backs.

The problem is that none of you CORBA calls ever complete. This means
that, on each call, omniORB finds that its existing connection to the
object is in use (since the previous call has not completed), so it
opens a new TCP connection to do the call. omniORB limits the number
of connections which can be opened to any particular address space.
The default limit is 5. That explains why your program freezes after 5
goes around the recursion.

You can increase the limit with omniORB::maxTcpConnectionPerServer. It
is rare to need to do that in real applications, rather than contrived
examples like yours.

Cheers,

Duncan.

-- 
 -- Duncan Grisby  \  Research Engineer  --
  -- AT&T Laboratories Cambridge          --
   -- http://www.uk.research.att.com/~dpg1 --