[omniORB] Nested call blocked
Sai-Lai Lo
S.Lo@uk.research.att.com
24 Jan 2001 12:51:25 +0000
Your scenerio is different. As a client, omniORB do not let more that one
call outstanding per connection. If it needs to dispatch 2 calls to the
same address space, it opens 2 connection if necessary.
In the previous mail, the client is not omniORB, hence the difference.
Sai-Lai
>>>>> Rob van der Leek writes:
> My problem is kind of similar to the one Peter reported. I have already
> posted a msg to the list about it. In short this is my situation:
> 1. Client1 -- push(event) --> EventChannel --- push(event) --> Server
> 2. Server incarnates an object factory, the server's push handler
> creates a new object and calls some methods on that object. The method
> invocations take some time to complete.
> 3. Client2 -- push(event) --> EventChannel --- push(event) --> Server
> 4. Now Client2 has to wait for the push handler to return (since the ORB
> controlled thread policy in OmniORB is implemented as thread-per-object,
> and there's only one server object).
> Duncan Grisby corrected my assumptions in step 4 and told me OmniORB's
> thread policy is thread per connection. Duncan also told me that the
> EventChannel should open a new connection, so the server will use a
> different thread. This thread model is exactly what I'm looking for
> since I try to avoid threading as much as possible in my own apps...
> _but_, my push server still blocks on the method invocation after
> receiving a push event, other push events are queued untill the server
> returns from the push handler. What am I missing here? Could it be
> possible that all push events for a server are send from the
> EventChannel using the same tcp connection (wild guess)?
> Please let me know if you need a small test implementation to see how I
> did things.
> I'm using OmniORB 3.02 + OmniNotify 1.1b1 on a RH 6 Linux system.
--
Sai-Lai Lo S.Lo@uk.research.att.com
AT&T Laboratories Cambridge WWW: http://www.uk.research.att.com
24a Trumpington Street Tel: +44 1223 343000
Cambridge CB2 1QA Fax: +44 1223 313542
ENGLAND