Deadlock in TAO when colocated
I have a CORBA server that makes a twoway call to another server from a n开发者_运维技巧otification thread that is created in the servant. This works fine normally. I have just modified the server to be co-located with its client (both are DLLs in a host app), and now it deadlocks waiting for the reply. The offending call is to outside the colocated servers (to the naming service in fact). I am using TAO 1.6 with default policies.
The problem appears to be related to the leader-follower implementation; it is blocking waiting for the existing leader, whereas when it works there is no leader.
Thanks Pete.
For the record, I got round it by using thread-per-connection configuration, following the advice here http://www.theaceorb.com/faq/index.html#configure_tpc and putting the optoins in a service configuration file as described here http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/TAO/docs/Options.html#SVC (what that doesn't make entirely clear is that all you need is a file called svc.conf in the working directory). Not surprisingly, all those options are necessary to fix the problem I had.
精彩评论