Mark,

Looking in orb.cc, I found:

428 #ifdef HAVE_THREADS
3429         else if (arg == "-ORBThreadPool") {
3430       thread_pool = TRUE;
3431       thread_per_connection = FALSE;
3432       thread_per_request = FALSE;
3433       if (conn_limit != 0)
3434     conn_limit = 0;
3435   } else if (arg == "-ORBThreadPerConnection") {
3436       thread_pool = FALSE;
3437       thread_per_connection = TRUE;
3438       thread_per_request = FALSE;
3439       if (conn_limit < 1)
3440     conn_limit = 10;
3441   } else if (arg == "-ORBThreadPerRequest") {
3442       thread_pool = FALSE;
3443       thread_per_connection = FALSE;
3444       thread_per_request = TRUE;
3445       if (conn_limit < 1)
34446       conn_limit = 10;
3447   } else if (arg == "-ORBConnLimit") {
3448       conn_limit = atoi (val.c_str ());
3449   } else if (arg == "-ORBRequestLimit") {
3450       request_limit = atoi (val.c_str ());
3451   } else if (arg == "-ORBClientReactive") {
3452 client_concurrency_model = MICO::MTManager::_S_reactive_client;
3453   } else if (arg == "-ORBClientThreaded") {
3454 client_concurrency_model = MICO::MTManager::_S_threaded_client;
3455   } else if (arg == "-ORBClientThreadedBlocking") {
3456 client_concurrency_model = MICO::MTManager::_S_blocking_threaded_client;
3457    }

It appears that ClientReactive and ClientThreadedBlocking imply two different concurency models that are exclusive of each other. They effect reader thread creation and dispatcher blocking settings in the iop.cc code. I haven't had a chance to follow all the logic yet.

Karl, would you enlighten us? :-)

Thanks,

Rob


Mark Richardson wrote:
Thanks for responding Rob.
Yes, I did specify SINGLE_THREAD_MODEL on the client (The server is running mico 2.3.11 single thread - so no issue there). I also used -ORBThreadPerConnection in conjunction with SINGLE_THREAD_MODEL on the client. However, a coworker of mine searched the web and found the arguments
-ORBClientReactive -ORBClientThreadedBlocking.
When I use these in conjunction with -ORBThreadPerConnection, I get the response I want. I haven't looked into what these arguments do yet. Maybe you could shed some light on this? I tried so many things, that my code is a little sloppy (gasp!). I may be creating the custom POA twice. What I am trying to do is have the client create its own servant, connect to the server and pass its servant id to the server. Then the server can callback to the client whenever it wants. But I can still call to the server for something like disconnect(), log(), etc. Thanks again for your help,
Mark

*//*

_______________________________________________
Mico-devel mailing list
Mico-devel@mico.org
http://www.mico.org/mailman/listinfo/mico-devel

Reply via email to