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 for multicast requests. TradingServiceIOR
whichSpecifies which IOR the Trading Service is listening on. TradingServicePort
whichSpecifies which port the Trading Service is listening on for multicast requests.
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
Option Description -ORBSvcConf
config file nameSpecifies the name of the file from which it will read dynamic service configuration directives ala ACE's Service Configurator. -ORBSvcConfDirective
directivestringSpecifies 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. -ORBDebugLevel
levelControl the level of debugging in the ORB. Higher number produce more output (try 10). -ORBEndpoint
endpointTells the ORB to listen for requests on the interface specified by endpoint. Endpoints are specified using a URL style format. An endpoint has the form: whereprotocol://V.v@addr1,...,W.w@addrN
V.v
andW.w
are optional protcol versions for each address. An example of an IIOP endpoint is:Sets of endpoints may be specified using multipleiiop://hostname:port
-ORBEndpoint
options or by delimiting endpoints with a semi-colon (;). For example,is equivalent to:-ORBEndpoint iiop://localhost:9999 -ORBEndpoint uiop:///tmp/mylocalsock
Notice the single quotes (') in the latter option specification. Single quotes are needed to prevent the shell from interpreting text after the semi-colon as another command to run.-ORBEndpoint 'iiop://localhost:9999;uiop:///tmp/mylocalsock'
If an endpoint is specified without an
addr
such as the following:then a default endpoint will be created for the specified protocol.-ORBEndpoint uiop://
-ORBHost
hostnameTells the ORB to listen for requests on the interface associated with the host named hostname. This option is valid only for IIOP endpoints.
NOTE: This option has been superceded by the-ORBEndpoint
option. It will not be supported in the future.-ORBPort
portspecTells the ORB to listen for requests on the port specified by portspec. If not specified, the OS gets to choose a random empty port. This option is valid only for IIOP endpoints.
NOTE: This option has been superceded by the-ORBEndpoint
option. It will not be supported in the future.-ORBObjRefStyle
whichSpecifies the user-visible style of object references. The range of values is IOR
, which is the traditional nonsensical object reference, orURL
, which looks more like a URL.-ORBRcvSock
receive buffer sizeSpecify the size of the socket receive buffer as a positive, non-zero integer. If not specified, the ACE_DEFAULT_MAX_SOCKET_BUFSIZ default is used. -ORBSndSock
send buffer sizeSpecify the size of the socket send buffer as a positive, non-zero integer. If not specified, the ACE_DEFAULT_MAX_SOCKET_BUFSIZ default is used. -ORBNameServicePort
portspecSpecifies which port the Naming Service is listening on for multicast requests. -ORBNameServiceIOR
iorSpecifies the IOR for the Naming Service. -ORBTradingServiceIOR"
iorSpecifiles the IOR for the Trading Service. -ORBTradingServicePort"
portspecSpecifies to which port the Trading Service is listening on for multicast requests. -ORBCollocation
yes/noSpecifies the use of collocation object optimization. Default is yes. -ORBCollocationStrategy
thru_poa/directSpecifies what kind of collocated object to use. If the thru_poa strategy is used, TAO uses the collocation object implementation that respects POA's current state and policies. When using the direct strategy, method invocations on collocated objects become direct calls to servant without checking POA's status. Default is thru_poa. -ORBGlobalCollocation
yes/noSpecifies whether objects from different ORBs within the same process can be treated as collocated or not. If no, only objects in the same ORB are treated as collocated. Default is yes. -ORBPreconnect
endpointPre-establishes a blocking connection to each listed endpoint. If a connection cannot be established the failed preconnection will be ignored and the next preconnection in the list will be processed. Successful and unsuccessful preconnections will be displayed if a debugging level greater than or equal to one is specified by using the -ORBDebugLevel
option. Listing the same combination multiple times will properly establish multiple connections to that endpoint. The-ORBPreconnect
option uses the same endpoint format as the-ORBEndpoint
option. Specifying IIOP endpoints using a comma delimited list of host:port pairs is deprecated and will not be supported in the future.-ORBCDRTradeoff
maxsizeControl 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. -ORBSkipServiceConfigOpen
Do not call the ACE_Service_Config::open
method, which is necessary if the ORB is being linked dynamically via the ACE Service Configurator which is not reentrant.-ORBGIOPlite
Enable a lightweight version of the GIOP 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. -ORBInitRef
ObjectId=IORAllows specification of an arbitrary object reference for an initial service. The IOR could be in any one of the following formats : OMG IOR, URL, iioploc or file. iioploc is a multiple end-point IOR understood by the string_to_object () and used as a boot-strapping mechanism by the resolve_initial_references (). The mappings specified through this argument override the orb-install-time defaults. The file://pathname interprets the contents of the pathname file as an object reference in any of the above formats. -ORBDefaultInitRef
IOR prefixThis argument allows resolution of initial references not explicitly specified with -ORBInitRef. It requires a URL prefix that, after appending a slash '/' and a simple object key, forms a new URL to identify an initial object reference. The URL prefix format currently supported is iioploc. -ORBStdProfileComponents
boolean (0 / 1)If 0 then the ORB does not generate the OMG standarized profile components, such as the ORB type and codesets. Notice that the presence of this components is optional in GIOP 1.1 The default value is controlled by a compile-time flag (check orbconf.h). -ORBResources
whichControl the use of thread specific resources in the ORB. If (which = global
) then the same set of resources are shared by all the threads that use that ORB. If (which =tss
) then each that uses that ORB gets its own set of resources. Currently the resources are limited to the reactor.
TAO_Resource_Factory
Option Description -ORBResources
whichSpecify whether each thread uses a global (which = global
) or a thread-specific (which =tss
) instance for the resources it returns. NOTE: This option has been deprecated, use the same option on the ORB parameters.-ORBReactorLock
whichSpecify whether the ORB reactor is thread-safe (which = token
) or not (which =null
). Default istoken
.This option has been superseeded by
-ORBReactorType
-ORBReactorType
whichSpecify what kind of reactor does the ORB use, the options are: The default is
which Reactor select_mt
Use the ACE_Select_Reactor
with the usual locking mechanism for this platformselect_st
Use the ACE_Select_Reactor
with null locksfl
Use the ACE_FlReactor
only available if ACE was compiled with support for the FL toolkitxt
Use the ACE_FlReactor
only available if ACE was compiled with support for the XWindows Toolkitwfmo
Use the ACE_WFMO_Reactor
only available on Win32 platforms.msg_wfmo
Use the ACE_Msg_WFMO_Reactor
only available on Win32 platforms.tp
Use the ACE_TP_Reactor
, a select based thread-pool reactor.select_mt
-ORBColTable
whichSpecify whether each ORB uses a global (which = global
) or a per-ORB (which =orb
) collocation table.-ORBInputCDRAllocator
whichSpecify whether the ORB uses locked (which = thread
) or lock-free (which =null
) allocators for the incoming CDR buffers. Thoughnull
should give the optimal performance; we made the defaultthread
. TAO optimizations for octet sequences will not work in all cases when if the allocator does not have locks (for example if the octet sequences are part of a return value. Using locked allocators also allows the users to take advantage of the TAO octet sequence extensions to preserve the buffer after the upcall.
TAO_Default_Server_Strategy_Factory
Note:
-ORBDemuxStrategy
flag has been changed to-ORBSystemidPolicyDemuxStrategy
and-ORBUseridPolicyDemuxStrategy
.Note:
-ORBTableSize
flag has been changed to-ORBActiveObjectMapSize
.
TAO_Default_Client_Strategy_Factory
Back to the TAO components documentation.