ORB properties file

The orb.properties file is used to pass the properties that are used by the Object Request Broker (ORB) to modify the transport behavior of the grid.

Location

The orb.properties file is in the java/jre/lib directory. When you modify the file in a WebSphere® Application Server java/jre/lib directory, the application servers that are configured under that installation also use the settings from the file.

Baseline settings

The following settings are a good baseline but not necessarily the best settings for every environment. You should understand the settings to help make a good decision on what values are appropriate in your environment.
com.ibm.CORBA.RequestTimeout=30 
com.ibm.CORBA.ConnectTimeout=10 
com.ibm.CORBA.FragmentTimeout=30 
com.ibm.CORBA.ThreadPool.MinimumSize=256 
com.ibm.CORBA.ThreadPool.MaximumSize=256 
com.ibm.CORBA.ThreadPool.IsGrowable=false 
com.ibm.CORBA.ConnectionMultiplicity=1 
com.ibm.CORBA.MinOpenConnections=1024 
com.ibm.CORBA.MaxOpenConnections=1024 
com.ibm.CORBA.ServerSocketQueueDepth=1024 
com.ibm.CORBA.FragmentSize=0 
com.ibm.CORBA.iiop.NoLocalCopies=true 
com.ibm.CORBA.NoLocalInterceptors=true

Property descriptions

Timeout Settings

The following settings relate to the amount of time that the ORB waits before giving up on request operations.

Request timeout

Property name: com.ibm.CORBA.RequestTimeout

Value: Integer value for number of seconds.

Description: Indicates how many seconds any request should wait for a response before giving up. This property influences the amount of time a client takes to fail over if a network outage failure occurs. If you set this property too low, requests might time out inadvertently. Carefully consider the value of this property to prevent inadvertent time-outs.

Connect timeout

Property name: com.ibm.CORBA.ConnectTimeout

Value: Integer value for number of seconds.

Description: Indicates how many seconds a socket connection attempt should wait before giving up. This property, like the request timeout, can influence the time a client takes to fail over if a network outage failure occurs. In general, set this property to a smaller value than the request timeout value because the amount of time to establish a connections should be relatively constant.

Fragment timeout

Property name: com.ibm.CORBA.FragmentTimeout

Value: Integer value for number of seconds.

Description: Indicates how many seconds a fragment request should wait before giving up. This property is similar to the request timeout property.

Thread Pool Settings

These properties constrain the thread pool size to a specific number of threads. The threads are used by the ORB to spin off the server requests after they are received on the socket. Setting these property values too low results in an increased socket queue depth and possibly time-outs.

Connection multiplicity

Property name: com.ibm.CORBA.ConnectionMultiplicity

Value: Integer value for the number of connections between the client and server. The default value is 1. Setting a larger value sets multiplexing across multiple connections.

Description: Allows the ORB to use multiple connections to any server. In theory, setting this value should promote parallelism over the connections. In practice, performance does not benefit from setting the connection multiplicity. Do not set this parameter.
Open connections

Property names: com.ibm.CORBA.MinOpenConnections, com.ibm.CORBA.MaxOpenConnections

Value: An integer value for the number of connections.

Description: Specifies a minimum and maximum number of open connections. The ORB keeps a cache of connections that have been established with clients. These connections are purged when the com.ibm.CORBA.MaxOpenConnections value is passed. Purging connections might cause poor behavior in the grid.
Is Growable

Property name: com.ibm.CORBA.ThreadPool.IsGrowable

Value: Boolean; set to true or false.

Description: If enabled, allows the thread pool that the ORB uses for incoming requests to grow beyond what the pool supports. If the pool size is exceeded, new threads are created to handle the request but the threads are not pooled.
Server socket queue depth

Property name: com.ibm.CORBA.ServerSocketQueueDepth

Value: An integer value for the number of connections.

Description: Specifies the length of the queue for incoming connections from clients. The ORB queues incoming connections from clients. If the queue is full, then connections are refused. Refusing connections might cause poor behavior in the grid.
Fragment size

Property name: com.ibm.CORBA.FragmentSize

Value: An integer number that specifies the number of bytes. The default is 1024.

Description: Specifies the maximum packet size that the ORB uses when sending a request. If a request is larger than the fragment size limit, then that request is divided into request fragments that are each sent separately and reassembled on the server. Fragmenting requests is helpful on unreliable networks where packets might need to be resent. However, if the network is reliable, dividing the requests into fragments might cause overhead.
No local copies

Property name: com.ibm.CORBA.iiop.NoLocalCopies

Value: Boolean; set to true or false.

Description: Specifies whether the ORB passes by reference. The ORB uses pass by value invocation by default. Pass by value invocation causes extra garbage and serialization costs to the path when an interface is invoked locally. By setting this value to true, the ORB uses a pass by reference method that is more efficient than pass by value invocation.
No Local Interceptors

Property name: com.ibm.CORBA.NoLocalInterceptors

Value: Boolean; set to true or false.

Description: Specifies whether the ORB invokes request interceptors even when making local requests (intra-process). The interceptors that WebSphere eXtreme Scale uses are for security and route handling, which are not required if the request is handled the process in which it is running. Interceptors that go between processes are only required for Remote Procedure Call (RPC) operations. By setting the no local interceptors, you can avoid the extra overhead that using local interceptors introduces.
When you want to enforce transport security between ObjectGrid clients and servers, you have to add more properties to the orb.properties file. For more information about these properties, see the section about the orb.properties file for transport security support in Transport layer security and secure sockets layer.