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