[omniORB] Single-threaded behaviour changed between omniORB3 & omniORB4?
baileyk@schneider.com
baileyk@schneider.com
Thu Feb 6 13:58:01 2003
All of this is spelled out pretty well in the docs, but I'd like to point
one more thing out.
It sound like an assumption of 1 connection per client is made in the
discussion below. That may be the case for some client ORBs (notably I've
seen this with some Java ORBs). But I understand that omniORB itself, when
used as a client will open additional connections from a multithreaded
client that is doing concurrent calls on the same server, even if those
calls are on the same object. That should apply to v3 and v4 of omniORB.
In general, don't make assumptions about the concurrency or lack thereof
that the clients may trigger. The server needs to enable policies that
guarantee proper synchronization. In some cases a single thread POA is the
right thing, in other cases a servant and the application code should have
it's own synchronization logic to protect critical areas.
Perhaps if Donnacha can explain exactly what sort of concurrency needs to
be prevented, the group here can help. It doesn't sound to me like
modifying configuration options is the right solution. I think a minor
redesign of the app is in order.
Kendall
jorgefm@cirsa.com
Sent by: To: Donnacha Forde <dmf2k2@yahoo.com>
omniorb-list-admin@omniorb-s cc: omniorb-list@omniorb-support.com
upport.com Fax to:
Subject: Re: [omniORB] Single-threaded behaviour changed
between omniORB3 & omniORB4?
02/06/2003 05:51 AM
Hi Donnacha,
>Note also that, while your solution will solve the
>problem when a single client sends multiple requests,
>it will not protect against the scenario where
>multiple clients are connected. Each connection will
>have its own thread which still means that you might
>have unexpected concurrency. Correct?
Yes, it's correct. It was the behaviour i was looking for.
I only wanted to assure that different calls from different
threads of a client were processed in sequence. The
'unexpected' concurrency is easily managed by the server
with mutual exclusion, etc if you have one server and
multiple clients. I don't know if there is another an option
to create only one thread per server object, maybe playing with
'threadPerConnectionPolicy=0' and 'maxServerThreadPoolSize=1' ?
Take a look at chapter 4 and 8 from omniOrb manual.
Hope this helps,
Jorge
_______________________________________________
omniORB-list mailing list
omniORB-list@omniorb-support.com
http://www.omniorb-support.com/mailman/listinfo/omniorb-list