[Ace-users] Re: [tao-users] TAO Concurrency

Steve Totten totten_s at ociweb.com
Fri Sep 7 13:53:38 CDT 2007

Hi Doug, Hector,

Douglas C. Schmidt wrote:

>> ORBConnectStrategy => I guess it's a similar concept to
>> ORBClientConnectionHandler but referred to (GIOP) Connect message
>> process. 
> Yes, that's correct.
>> However, it looks that options are mapped one to one (I mean, for
>> example, setting RW wait strategy involves selecting BLOCKED Connect
>> Strategy and so on). I don't know what's the exactly meaning of this
>> configuration parameter. Could someone give an idea?
> As you said above, this strategy deals with calls to connect(), e.g.,
> whether they are blocking or not.  It should be orthogonal to the
> ORBClientConnectionHandler, which deals with GIOP requests/responses.

Unless, of course, the invocation of a GIOP request requires
a new connection to be established, in which case the
ORBConnectStrategy is used to determine how the invoking thread
waits for the connection to be established.  The default is for
the thread to be made available to the ORB for possible use in
handling events, such as incoming requests (thereby leading to
a nested upcall).

>> Server Strategy:
>> I guess you can choose among concurrency architectures setting
>> different
>> ORBConcurrency and ORBReactorType parameters. 
> Yes, that's correct.
>> But is it ok if I set Thread-per-connection and select_st option? 
> I think this will be ok, but only if the threads that are spawned by the
> main (reactor) thread don't try to call back into the reactor for some
> reason (e.g., to set reactor timers or other event handlers).
> OCI, is this topic covered in the TAO Developer's Guide in more depth?
> If so, it might be useful to add this stuff to the FAQ!

I'm not sure which topic you mean by "this topic", but I think
the answer is yes.  The TAO Developer's Guide covers TAO's ORB
server concurrency models, reactor types, and the various other
strategies (wait strategy, connect strategy, etc.) that can have
an affect on concurrency.  The Multithreading with TAO chapter
is a good place to start, but other sections also delve into the
gory details of each option/strategy.

The TAO FAQ also covers some of the same information, including
strategies for preventing nested upcalls.  See, for example:


The Dev Guide's chapter on Asynchronous Method Handling (AMH)
also presents a good example of how to build a completely
asynchronous middle-tier server to avoid the complexities of
nested upcalls.

Good luck, Hector!

  Steve Totten, Principal Software Engineer and Partner
  Object Computing, Inc. (OCI), St. Louis, MO, USA
  http://www.ociweb.com/  http://www.theaceorb.com/

More information about the Ace-users mailing list