Certain components in TAO such as the ORB Core or Object Adapter can be tuned by users by providing value for options or environment variables to them. These options are commonly specified as (1) environment variables or (2) strings passed on the command-line. They are generally passed to component initialization methods for consumption.
Both command-line options and environment variables are used to control the global ORB features like the IOR format or ORB's bootstraping methods. Options in
svc.conf
file on the other hand provides a mechanism to fine-tune the internal components in TAO and they are specific to individual components.svc.conf
files are not required to run TAO programs. However, if you know the behavior of your programs, you can tune-up your programs and use various optimization provided by TAO thru the use of svc.conf files.Programmer's Note: the internal structure for options is the traditional
argc
/argv
vector of strings style popularized by C and Unix. By convention, an initialization method will consume, i.e., remove from the vector, any options that it recognizes.
Environment Variable Description NameServiceIOR
whichSpecifies which IOR the Naming Service is listening on. NameServicePort
whichSpecifies which port the Naming Service is listening on. TradingServiceIOR
whichSpecifies which IOR the Trading Service is listening on. TradingServicePort
whichSpecifies which port the Trading Service is listening on.
The following components can be tuned via options:
Typically, CORBA::ORB options are set via command line parameters, while the rest of the options are set via the service configurator (svc.conf) file.
CORBA::ORB
TAO_Resource_Factory
TAO_Default_Server_Strategy_Factory
Note:
-ORBdemuxstrategy
flag has been changed to-ORBsystemidpolicydemuxstrategy
and-ORBuseridpolicydemuxstrategy
.Note:
-ORBtablesize
flag has been changed to-ORBactiveobjectmapsize
.
Option Description -ORBconcurrency
whichSpecify which concurrency strategy to use. Range of values is reactive
for a purely Reactor-driven concurrency strategy orthread-per-connection
for creating a new thread to service each connection.-ORBactiveobjectmapsize
active object map sizeSpecify the size of the active object map. If not specified, the default value is 64. -ORBuseridpolicydemuxstrategy
user id policy based demultiplexing strategySpecify the demultiplexing lookup strategy to be used with the user id policy. The demultiplexing strategy can be one of dynamic
orlinear
. This option defaults to use thedynamic
strategy.-ORBsystemidpolicydemuxstrategy
system id policy based demultiplexing strategySpecify the demultiplexing lookup strategy to be used with the system id policy. The demultiplexing strategy can be one of dynamic
,linear
, oractive
. This option defaults to use theactive
strategy.-ORBuniqueidpolicyreversedemuxstrategy
unique id policy based reverse demultiplexing strategySpecify the reverse demultiplexing lookup strategy to be used with the unique id policy. The reverse demultiplexing strategy can be one of dynamic
orlinear
. This option defaults to use thedynamic
strategy.-ORBallowreactivationofsystemids
allows reactivation of system idsSpecify whether system ids can be reactivated, i.e., once an id that was generated by the system has be deactivated, will the user reactivate a new servant using the old id. If the user is not going to use this feature, the IORs can be shortened, an extra comparison in the critical upcall path removed, and some memory on the server side can be saved. The ORBallowreactivationofsystemids
can be0
or1
. This option defaults to1
.-ORBactivehintinids
adds an active hint in idsSpecify whether an active hint should be added to ids. With active hints, ids can be found quickly. However, they lead to larger IORs. Note that this option is disregarded -ORBallowreactivationofsystemids
is set to0
. The -ORBactivehintinids can be0
or1
. This option defaults to1
.-ORBpoamapsize
poa map sizeSpecify the size of the poa map. If not specified, the default value is 24. -ORBpersiententidpolicydemuxstrategy
persistent id policy based demultiplexing strategySpecify the demultiplexing lookup strategy to be used with the persistent id policy. The demultiplexing strategy can be one of dynamic
orlinear
. This option defaults to use thedynamic
strategy.-ORBtransientidpolicydemuxstrategy
transient id policy based demultiplexing strategySpecify the demultiplexing lookup strategy to be used with the transient id policy. The demultiplexing strategy can be one of dynamic
,linear
, oractive
. This option defaults to use theactive
strategy.-ORBactivehintinpoanames
adds an active hint in poa namesSpecify whether an active hint should be added to poa names. With active hints, poa names can be found quickly. However, they lead to larger IORs. The -ORBactivehintinpoanames can be 0
or1
. This option defaults to1
.-ORBthreadflags
thread flagsSpecify the flags used for thread creation. Flags can be any logical-OR combination of THR_DETACHED
,THR_BOUND
,THR_NEW_LWP
,THE_SUSPENDED
.-ORBpoalock
lock typeSpecify the type of lock to be used for POA accesses. Possible values for lock type are thread
, which specifies that an inter-thread mutex is used to guarantee exclusive acccess, andnull
, which specifies that no locking be performed. The default isthread
.-ORBcoltbllock
lock typeSpecify the type of lock to be used for the global collocation table. Possible values for lock type are thread
, which specifies that an inter-thread mutex is used to guarantee exclusive acccess, andnull
, which specifies that no locking be performed. The default isthread
.-ORBconnectorlock
lock typeSpecify the type of lock to be used by the connector. Possible values for lock type are thread
, which specifies that an inter-thread mutex is used to guarantee exclusive acccess, andnull
, which specifies that no locking be performed. The default isthread
.
TAO_Default_Client_Strategy_Factory
Option Description -ORBiiopprofilelock
whichSpecify, whether to use a lock for accessing the IIOP Profile or not. Default is thread
, which means that a lock is used. The second option isnull
, which means a null lock is used. This makes sense in case of optiziations and is allowed when no forwarding is used or only a single threaded client.-ORBclientconnectionhandler
MT / ST / RWST means use the single-threaded client connection handler, i.e., the leader follower model will not be used. However, ST does support nested upcalls and handling of new requests while waiting for the reply from a server. MT means use the multi-threaded client connection handler which uses the leader follower model. This model allows the use of multiple threads with a single Reactor.
RW selects a strategy that simply blocks in recv() when waiting for a response from the server instead of waiting in the Reactor. The RW strategy only works when the application does not have to worry about new request showing up when waiting for a response. Therefore, this strategy is appropriate only for "pure" clients. Note that applications with nested upcalls are not "pure" clients. Also note that this strategy will only effect two way calls, since there is no waiting for one way calls. This strategy can also be used in an application that is both a client and a server if the server side is handled by a separate thread and the client threads are "pure" clients.
Default for this option is MT.
Back to the TAO components documentation.