TAO_ORB_OPTIONS
1

# &applname;

Common options for programs that use TAO

## SYNOPSIS

          &progname;
          ORB_options
          program_options

## DESCRIPTION

All programs relying on TAO understand the same set of parameters: the -ORB options that affect the ORB behaviour.

This manual page describe these parameters. Please note that the ORB behaviour can also be altered using a `svc.conf`. See TAO's documentation for help on that topic.

## OPTIONS

`-ORBSvcConf` configfilename

  Specifies the name of the file used to read service configuration directives via the Service Configurator framework. By default, a service configurator-based application will look for a file named `svc.conf` in the current directory.

`-ORBSvcConfDirective` directivestring

  Specifies a service configuration directive, which is passed to the Service Configurator. You can pass multiple of these options on the same command-line.

`-ORBDebug`

  Instructs the ORB to print debugging messages from the service configurator framework. This option does not have a value but is used as a toggle to enable or disable debugging messages.

`-ORBDebugLevel` level

  Control the level of debugging in the ORB. Higher numbers generate more output (try 10). The default value of this option is 0.

`-ORBVerboseLogging {0,1,2}`

  Controls the amount of status data printed on each line of the debug log. Higher numbers generate more output. The default value of this option is `0`.

`-ORBLogFile` logfilename

  Causes all `ACE_DEBUG` and `ACE_ERROR` output to be redirected to the designated filename.

`-ORBObjRefStyle {IOR,URL}`

  Specifies the user-visible style of object references. The `IOR` style (default) is the conventional CORBA object reference, whereas the `URL` style looks more like a URL.

`-ORBCDRTradeoff` maxsize

  Control the strategy to tradeoff between copy vs. no copy marshaling of octet sequences. If an octet sequence is smaller than maxsize (which defaults to `ACE_DEFAULT_CDR_MEMORY_TRADEOFF`) -- and the current message block contains enough space for it -- the octet sequence is copied instead of appended to the CDR stream.

`-ORBCollocation {global,per-orb,no}`

  Specifies the use of collocation object optimization. If `global` is specified (default), objects in the same process will be treated as collocated. If `per-orb` is specified, only objects in the same ORB are treated as collocated. When `no` is specified, no objects are treated as collocated.

`-ORBCollocationStrategy {thru_poa,direct}`

  Specifies what type of collocated object to use. If the `thru_poa` (default) 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, which can increase performance. If you use the `direct` strategy, your interfaces must be compiled with the `-Gd` IDL compiler option.

`-ORBNodelay {0,1}`

  Enable or disable the `TCP_NODELAY` option (Nagle's algorithm). By default, `TCP_NODELAY` is enabled.

`-ORBRcvSock` recv_size

  Specify 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` snd_size

  Specify 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.

`-ORBStdProfileComponents {0,1}`

  If `0` then the ORB does not generate the OMG standardized profile components, such as the ORB type and code sets. 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`).

`-ORBSingleReadOptimization {0,1}`

  This option controls whether TAO's ``single read optimization'' is used when receiving requests. If this option is disabled (`0`), the ORB will do two reads to read a request: one reads the request header and the other reads the request payload. If this option is enabled (`1`), the ORB will do a read of size `TAO_MAXBUFSIZE`, hoping to read the entire request. If more than one request is read they will be queued up for processing later.

  This option defaults to `1` because it can provide better performance. However, in the case of RT-CORBA, this option should be set to `0`. Consider the following scenario:

  - two requests are read from one socket,

  - the additional request is queued, and

  - the ORB uses its Reactor's notification mechanism to wake up the follower threads.

  If at the same time, however, new requests arrive on others sockets of higher priority the lower priority queued message will be processed before the newly arrived higher priority request since Reactor notifications are given preferences over normal I/O, thereby causing priority inversion.

`-ORBDisableRTCollocation {0,1}`

  This option controls whether the application wants to use or discard RT collocation decisions made by the RT ORB. A value of `1` disables RT collocation decisions and falls back on the default collocation decisions implemented in the default ORB. This is very useful for applications using the RT ORB and doesn't want to use the RT collocation decisions but fallback on the default decisions for better performance. The default value is `0`.

`-ORBDefaultInitRef` ior_prefix

  This argument allows resolution of initial references not explicitly specified with `-ORBInitRef`. It requires a URL prefix that, after appending a slash `/' (`|' for the UIOP pluggable protocol) and a simple object key, forms a new URL to identify an initial object reference. The URL prefix format currently supported is based on the standard corbaloc mechanism in the CORBA Interoperable Naming Service.

`-ORBDottedDecimalAddresses {0,1}`

  Use the dotted decimal notation for addresses. This option can be used to workaround broken DNS implementations and may also reduce the time spent resolving IP addresses. By default, this option is disabled (`0`) since domain names are the standard address notation for IORs.

`-ORBEndpoint` endpoint

  This option is similar to the `-ORBListenEndPoints` option described below. This option will be deprecated in later versions on TAO since the CORBA specification now defines the `-ORBListenEndpoints` option instead.

`-ORBListenEndpoints` endpoint

  This option was introduced with the CORBA ORT (Object Reference Template) specification. It instructs a server ORB to listen for requests on the interface specified by endpoint. TAO endpoints are specified using a URL style format. An endpoint has the form: `protocol://V.v@addr1,...,W.w@addrN' where V.v and W.w are optional protocol versions for each address. An example of an IIOP endpoint is: `iiop://hostname:port'

  Sets of endpoints may be specified using multiple `-ORBEndpoint` options or by delimiting endpoints with a semi-colon (`;'). For example,

  `-ORBEndpoint iiop://localhost:9999 -ORBEndpoint uiop:///tmp/mylocalsock -ORBEndpoint shmiop://10002'

  is equivalent to:

  `-ORBEndpoint 'iiop://localhost:9999;uiop:///tmp/mylocalsock;shmiop://10002''

  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.

  If an endpoint is specified without an addr such as the following:

  `-ORBEndpoint uiop:// -ORBEndpoint shmiop://'

  then a default endpoint will be created for the specified protocol.

`-ORBImplRepoServicePort` portspec

  Specifies which port the Implementation Repository is listening on for multicast requests. By default, the `TAO_DEFAULT_IMPLREPO_SERVER_REQUEST_PORT` (10018) is used.

`-ORBInitRef` ObjectId=IOR

  Allows specification of an arbitrary object reference for an initial service. The IOR could be in any one of the following formats: OMG IOR, URL, corbaloc (including uioploc) or file. corbaloc is a multiple end-point IOR understood by `ORB::string_to_object()` and used as a boot-strapping mechanism by the `ORB::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.

`-ORBMulticastDiscoveryEndpoint` endpoint

  Specifies the endpoint that should be used for locating the Naming Service through multicast. endpoint is of the form ip-number:port-number (e.g., "tango.cs.wustl.edu:1234" or "128.252.166.57:1234"). If there is no `:' in the endpoint it is assumed to be a port number, with the IP address being `INADDR_ANY`.

`-ORBNameServicePort` portspec

  Specifies which port the Naming Service is listening on for multicast requests. By default, the `TAO_DEFAULT_NAME_SERVICE_REQUEST_PORT` (10013) value is used.

`-ORBTradingServicePort` portspec

  Specifies to which port the Trading Service is listening on for multicast requests. By default, the `TAO_DEFAULT_TRADING_SERVICE_REQUEST_PORT` (10016) value is used.

`-ORBUseIMR {0,1}`

  This argument specifies that for POAs with the PERSISTENT policy, that the TAO Implementation Repository should be used for notification of startup and shutdown and object references should be changed to use the Implementation Repository also.

`-ORBId` orb_name

  This option allows the name of an ORB to be set to orb_name. The ORBId will be passed to the `ORB_init()` method to differentiate coexisting ORBs (when there are more than one ORBs).

`-ORBServerId` server_id

  This option allows setting a name/id to a server to uniquely identify a server to TAO's Implementation Repository.

`-ORBDaemon`

  Specifies that the ORB should daemonize itself, i.e., run as a background process. This option is only meaningful on OS platforms that support daemonization.

## ENVIRONMENT VARIABLES

Environment variables have a limited use in TAO ORB configuration. The currently supported environment variables are listed below. They are used to specify the IOR and port numbers for three of TAO's ORB services.

`NameServicePort`

  Specifies which port the Naming Service is listening on for multicast requests.

`TradingServicePort`

  Specifies which port the Trading Service is listening on for multicast requests.

`ImplRepoServicePort`

  Specifies which port the Implementation Repository is listening on for multicast requests.

In addition to being able to define the port where these known services are listening for multicast requests, as above, it is possible to set an environment variable that specifies the IOR of any named service. For example NameServiceIOR=which, TradingServiceIOR=which, ImplRepoServiceIOR=which, MyServiceIOR=which. This will have a similar effect to defining an `-ORBInitRef` value on the command line (see above). Any value set as a command line `-ORBInitRef` option will override any value set as an environment variable for the same service name.

In general, setting environment variables is not particularly portable or convenient, which is why users can also set these options via command-line options.

## AUTHOR

&username; &useremail;