---
name: "TAO_ORB_Options"
section: "1"
platform: "linux"
package: "libtao-orbsvcs1.4.7c2a"
version: "5.4.7-12"
release: "Debian 4.0 (Etch)"
platforms: ["linux"]
url: "https://new.carta.tech/TAO_ORB_Options"
---

# TAO\_ORB\_Options(1)

Common options for programs that use TAO

## NAME

TAO\_ORB\_Options — Common options for programs that use TAO

## SYNOPSIS

**tao\_program** \[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

Douglas C. Schmidt \<schmidt@cs.wustl.edu\>
