Re: Help for some technical details
- From: Bowie Owens <bowie owens csiro au>
- To: Yu Jie <webpurchasing yahoo com>
- Cc: orbitcpp-list gnome org
- Subject: Re: Help for some technical details
- Date: Tue, 14 Dec 2004 12:06:04 +1100
Yu Jie wrote:
>Dear, our customers are planning a project for which
>it is necessary to use CORBA and we now decide to
>choose orbitcpp. But as we are new to it and have to
>understand some technical details, hope could be lent
>a hand. Thanks in advance.
>
>1. In orbitcpp, when we use one POA to activate
>multiple servants, the POA thread policy becomes
>'SINGLE_THREAD_MODEL' or 'ORB_CTRL_MODEL'?
>
Looking through the ORBit source I'm pretty sure it is SINGLE_THREAD_MODEL.
> And, when
>we use multiple POAs and each one is set the same
>thread policy, then what will happen?
>
>
I guess that depends on what thread policy they are set to. Perhaps you
can be more specific about the situation.
>2. Can 'const', 'enum', 'abstract' be used in
>Valuetype functionality?
>
>
Valuetype isn't supported at all.
>3. About QoS(Quality of Service), can we use 'oneway'
>operation to set the point which returns the control
>to the Client?
>
>
I'm not familiar with QoS. You can use oneway methods to do non-blocking
communication with an object.
> Can 'SyncScopePolicy' be used?
>
>
I'm not familar with this. But there is no reference to it in the code.
So I assume not.
>4. About Dynamic Interface, could the method
>_get_interface() be used? 'Coz we see that it is
>better to use this method when creating a request
>from the client.
>
>
Dynamic Interface is only implemented at the C level. Not at the C++
level. Patches are, of course, welcome. Can I ask why you need Dynamic
Interfaces rather than static?
>5. About Server Request Model, how does the server
>application receive the request from client? For
>example, Mico seems to use select().
>
You'll have to confirm this with with the ORBit people. I think it is
essentially a select. But I'm not sure.
> And which model
>does it use: 'thread-per-request' or
>'thread-per-session'?
>
>
I'm pretty sure it uses thread-per-session. Unless you set things up to
be multi-threaded you only get single-threaded behaviour. That is no new
threads are created.
> Is it possible to control the number of threads? If
>possible, how do we realize it? For example, OpenORB
>seems to set it in the file default.xml.
>
>
I don't think that you can control the number of threads. Looking
through the C source reveals the following threading options:
typedef enum {
ORBIT_THREAD_HINT_NONE = 0,
ORBIT_THREAD_HINT_PER_OBJECT,
ORBIT_THREAD_HINT_PER_REQUEST,
ORBIT_THREAD_HINT_PER_POA,
ORBIT_THREAD_HINT_PER_CONNECTION,
ORBIT_THREAD_HINT_ONEWAY_AT_IDLE,
ORBIT_THREAD_HINT_ALL_AT_IDLE,
ORBIT_THREAD_HINT_ON_CONTEXT
} ORBitThreadHint;
I don't think threading is exposed in the C++ code. I've added a bug to
remind me to do this.
http://bugzilla.gnome.org/show_bug.cgi?id=161223
>6. How does the message communication perform when
>invocate objects in the same address space? Does it
>use normal method call or other ways, e.g. socket and
>so on?
>
>
It uses normal function calls. There shouldn't be any socket or network
communication for an in-process call.
>Any one or some of the above questions's answers will
>surely be appreciated.
>Hope these won't cost you precious time...
>
>
>
Hope that clears up some of your questions.
--
Bowie Owens
CSIRO Mathematical & Information Sciences
phone : +61 3 9545 8055
fax : +61 3 9545 8080
mobile : 0425 729 875
email : Bowie Owens csiro au
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]