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;