Options for TAO Components

Overview

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.

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 Variables

The following environment variables are supported by TAO:

Environment Variable Description
NameServiceIOR which Specifies which IOR the Naming Service is listening on.
NameServicePort which Specifies which port the Naming Service is listening on.
TradingServiceIOR which Specifies which IOR the Trading Service is listening on.
TradingServicePort which Specifies which port the Trading Service is listening on.
TAO_ORB_DEBUG which Enables TAO debugging mode.


Types of Options

The following components can be tuned via options:

CORBA::ORB

Option Description
-ORBsvcconf config file name Specifies the name of the file from which it will read dynamic service configuration directives ala ACE's Service Configurator.
-ORBsvcconfdirective directivestring Specifies a service configuration directive, which is passed to ACE's Service Configurator.
-ORBdaemon Specifies that the ORB should daemonize itself.
-ORBdebug Turns on the output of debugging messages within ACE's Service Configurator componentry.
-ORBhost hostname Tells the Object Adapter to listen for requests on the interface associated with the host named hostname.
-ORBport portspec Tells the Object Adapter to listen for requests on the port specified by portspec, which can be a name as found in /etc/services or a number. The default is 10013.
-ORBobjrefstyle which Specifies the user-visible style of object references. The range of values is IOR, which is the traditional nonsensical object reference, or URL, which looks more like a URL.
-ORBtablesize object table size Specifies the size of the object table as a positive, non-zero integer. If not specified, the default is 64.
-ORBrcvsock receive buffer size Specify the size of the socket receive buffer as a positive, non-zero integer. If not specified, the system-dependent default is used.
-ORBsndsock send buffer size Specify the size of the socket send buffer as a positive, non-zero integer. If not specified, the system-dependent default is used.
-ORBnameserviceport portspec Specifies which port the Naming Service is listening on.
-ORBnameserviceior ior Specifies the IOR for the Naming Service.
-ORBcollocation yes/no Specifies the use of collocation object optimization. Default is yes.
-ORBpreconnect host:port[,host:port...] Pre-establishes a blocking connection to each listed host:port combination. If a connection cannot be established, a warning is announced and it continues with the next listed. Listing the same combination multiple times will properly establish multiple connections to that endpoint.
-ORBCDRtradeoff maxsize Control the strategy to tradeoff between copy vs no copy marshalling of octet sequences. If an octet sequence is smaller than maxsize and the current message block contains enough space for it the octet sequence is copied instead of appended to the CDR stream.
-ORBiioplite Enable a lightweight version of the IIOP protocol. This protocol removes some of the fields in the GIOP and the Request header. It only works on homogenous environments..
-ORBdotteddecimaladdresses boolean (0 / 1) Use the dotted decimal notation for addresses.

CORBA::POA

Option Description
-OAid OA Identifier Associates OA Identifier with the Object Adapter.

TAO_Resource_Factory

Option Description
-ORBresources which Specify whether each thread uses a global (which = global) or a thread-specific (which = tss) instance for the resources it returns.
-ORBpoa which Specify whether each thread uses a global (which = global) or a thread-specific (which = tss) instance for the Root POA.
-ORBreactorlock which Specify whether the ORB reactor is thread-safe (which = token) or not (which = null). Default is token
-ORBcoltable which Specify whether each ORB uses a global (which = global) or a per-ORB (which = orb) collocation table.
-ORBinputcdrallocator which Specify whether the ORB uses a global (which = global) or a per-thread (which = tss) allocator for the incoming CDR buffers. The default is tss and should give the optimal performance; unless the user takes advantage of the features in TAO to keep the CDR stream buffer after the upcall.

TAO_Default_Server_Strategy_Factory

Option Description
-ORBconcurrency which Specify which concurrency strategy to use. Range of values is reactive for a purely Reactor-driven concurrency strategy or thread-per-connection for creating a new thread to service each connection.
-ORBtablesize object table size Specify the size of the object table. If not specified, the default value is 64.
-ORBuseridpolicydemuxstrategy user id policy based demultiplexing strategy Specify the demultiplexing lookup strategy to be used with the user id policy. The demultiplexing strategy can be one of dynamic, linear, or user. This option defaults to use the dynamic strategy.
-ORBsystemidpolicydemuxstrategy system id policy based demultiplexing strategy Specify the demultiplexing lookup strategy to be used with the system id policy. The demultiplexing strategy can be one of dynamic, linear, active, or user. This option defaults to use the active strategy.
-ORBuniqueidpolicyreversedemuxstrategy unique id policy based reverse demultiplexing strategy Specify the reverse demultiplexing lookup strategy to be used with the unique id policy. The reverse demultiplexing strategy can be one of dynamic or user. This option defaults to use the dynamic strategy.
-ORBthreadflags thread flags Specify 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 type Specify 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, and null, which specifies that no locking be performed. The default is thread.
-ORBcoltbllock lock type Specify 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, and null, which specifies that no locking be performed. The default is thread.
-ORBconnectorlock lock type Specify 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, and null, which specifies that no locking be performed. The default is thread.
-ORBpoamgrlock lock type Specify the type of lock to be used for POA Manager accesses. Possible values for lock type are thread, which specifies that an inter-thread mutex is used to guarantee exclusive acccess, and null, which specifies that no locking be performed. The default is null.

TAO_Default_Client_Strategy_Factory

Option Description
-ORBiiopprofilelock which Specify, 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 is null, 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 ST means use the single-threaded client connection handler and MT means use the multi-threaded client connection handler .


Back to the TAO components documentation.