There are several ways to configure an ORB. For example, you can use ORB custom property settings, or system property settings to configure an ORB, or you can provide objects during ORB initialization. If you use the following ORB custom properties to configure an ORB, you must understand that there are two types of default values for some of these properties: JDK default values and WebSphere® Application Server default values.
Because WebSphere Application Server explicitly sets its default value, if both a WebSphere Application Server and a JDK default value is defined for a property, the WebSphere Application Server default takes precedence over the JDK default.
For more information about the different ways to specify ORB properties and the precedence order, see the JDK Diagnostic Guide for the version of the JDK that you are using. These guides are available at http://www.ibm.com/developerworks/java/jdk/diagnosis/.
The WebSphere Application Server orb.properties file, that is located in the WebSphere Application Server was_home/java/jre/lib directory, contains WebSphere Application server ORB custom properties that are initially set to WebSphere Application Server default values during the WebSphere Application Server installation process.
You can specify new values for the ORB custom properties in the administrative console. Any value you specify takes precedence over any JDK or WebSphere Application Server default values for these properties. The ORB custom properties settings that you specify in the administrative console are stored in the WebSphere Application Server server.xml system file and are passed to an ORB in a properties object whenever an ORB is initialized.
To use the administrative console to set ORB custom properties, click Servers > Application servers > server_name > Container services > ORB service > Custom properties. You can then change the setting of one of the listed custom properties or click New to add a new property to the list. Then click Apply to save your change. When you finish making changes, click OK and then click Save to save your changes.
java -Dcom.ibm.CORBA.propname1=value1 -Dcom.ibm.CORBA.propname2=value2 ... application name
launchclient yourapp.ear -CCDcom.ibm.CORBA.propname1=value1 -CCDcom.ibm.CORBA.propname2=value2 ... optional application arguments
The Custom properties page might already include Secure Sockets Layer (SSL) properties that were added during WebSphere Application Server installation. A list of additional properties associated with the Java™ ORB service follows. Unless otherwise indicated, the default values provided in the descriptions of these properties are the JDK default values.
Specifies the domain name service (DNS) host name or IP address of the machine on which initial server contact for this client resides. This setting is deprecated and is scheduled for removal in a future release.
For a command-line or programmatic alternative, refer to Client-side programming tips for the Java Object Request Broker service.
Specifies the port to which the ORB connects for bootstrapping, the port of the machine on which the initial server contact for this client listens. This setting is deprecated and is scheduled for removal in a future release.
For a command-line or programmatic alternative, refer to Client-side programming tips for the Java Object Request Broker service.
Default | 2809 |
The com.ibm.CORBA.ConnectTimeout property specifies the maximum time in seconds that the client ORB waits before timing out when attempting to establish an IIOP connection with a remote server ORB. Generally, client applications use this property. The property is not used by the application server by default. However, if necessary, you can specify the property for each individual application server through the administrative console.
launchclient clientapp.ear -CCDcom.ibm.com.CORBA.ConnectTimeout=10...
Begin by setting your timeout value to 20-30 seconds, but consider factors such as network congestion and application server load and capacity. Lower values can provide better failover performance, but can result in exceptions if the remote server does not have enough time to complete the connection.
Valid Range | 0-300 (seconds) |
Default | 0 (the client ORB waits indefinitely) |
Specifies the connection interceptor class that is used to determine the type of outbound IIOP connection to use for a request, and if secure, the quality of protection characteristics associated with the request.
WebSphere Application Server default | com.ibm.ISecurityLocalObjectBaseL13Impl.SecurityConnectionInterceptor |
JDK default | None. |
Specifies whether the ORB uses the locate request mechanism to find objects in a WebSphere Application Server cell. Use this property for performance tuning.
When this property is set to true, the ORB first sends a short message to the server to find the object that it needs to access. This first contact is called the locate request. If most of your initial method invocations are very small, setting this property to false might improve performance because this setting change can reduce the GIOP traffic by as much as half. If most of your initial method invocations are large, you should set this property to true so that the small locate request message is sent instead of the large message. The large message is then sent to the proper target after the desired object is found.
WebSphere Application Server default | true |
JDK default | false |
Specifies the size of General Inter-ORB Protocol (GIOP) fragments used by the ORB. If the total size of a request exceeds the set value, the ORB breaks up and sends multiple fragments until the entire request is sent. Set this property on the client side with a -D system property if you use a stand-alone Java application.
Adjust the com.ibm.CORBA.FragmentSize property if the amount of data that is sent over Internet Inter-ORB Protocol (IIOP) in most General Inter-ORB Protocol (GIOP) requests exceeds one kilobyte or if thread dumps show that most client-side threads seem to be waiting while sending or receiving data. Adjust this property so that most messages have few or no fragments.
If you want to instruct the ORB not to break up any of the requests or replies it sends, set this property to 0 (zero). However, setting the value to zero does not prevent the ORB from receiving GIOP fragments in requests or replies sent by another existing ORB.
Units | Bytes. |
Default | 1024 |
Range | From 64 to the largest value of a Java integer type that is divisible by 8 |
Specifies the port on which this server listens for incoming requests. The setting of this property is valid for client-side ORBs only.
Default | Next available system-assigned port number |
Range | 0 to 2147483647 |
Specifies the host name or IP address of the system on which the application server or client application ORB is running.
Specifies the number of JNI reader threads to be allocated in the ORB's JNI reader thread pool. Each thread can handle up to 1024 connections.
Valid Range | 1-2147483647 |
Default | 4 |
Specifies that JNI reader threads will be used. The property name specifies the class name of the ORB component that manages the pool of JNI reader threads and interacts with the native OS library used to process multiple connections simultaneously.
For an Intel® platform, the library is Selector.dll and for a UNIX® platform, it is libSelector.a or libSelector.so.
For the UNIX platform, if the prefix "lib" is missing, the file should be renamed.
-Dcom.ibm.CORBA.ORBPluginClass.com.ibm.ws.orbimpl.transport.JNIReaderPoolImpl
Valid Range | not applicable |
Default | none |
Specifies an alternative to the default RAS manager of the ORB. This property must be set to com.ibm.websphere.ras.WsOrbRasManager before the ORB can be integrated with the rest of WebSphere Application Server RAS processing.
WebSphere Application Server default | com.ibm.websphere.ras.WsOrbRasManager |
JDK default | None. |
Specifies whether or not all of the connection contexts, such as Partner Version, Sending Context Runtime, and Codebase contexts, are added to every GIOP request and every GIOP response that is sent from an application server that is running on a distributed operating system.
When this property is set to always, all of the connection contexts are added to every GIOP request and every GIOP response.
When this property is set to once, the connection contexts are only added to the initial request.
Default | once |
Specifies the maximum number of connection requests that can remain unhandled by the WebSphere Application Server ORB before the Application Server starts to reject new incoming connection requests. This property corresponds to the backlog argument to a ServerSocket constructor and is handled directly by TCP/IP.
If you see a "connection refused" message in a trace log, usually either the port on the target machine isn't open, or the server is overloaded with queued-up connection requests. Increasing the value specified for this property can help alleviate this problem if there does not appear to be any other problem in the system.
Default | 50 |
Range | From 50 to the largest value of the Java int type |
Specifies that the exception detail message that is returned whenever the server ORB encounters a CORBA system exception contains a short description of the exception as returned by the toString method of java.lang.Throwable class. Otherwise, the message contains the complete stack trace as returned by the printStackTrace method of java.lang.Throwable class.
Specifies the class that the ORB uses to create SSL sockets for secure outbound IIOP connections.
WebSphere Application Server default | com.ibm.ws.security.orbssl.WSSSLClientSocketFactoryImpl |
JDK default | None. |
Specifies the class that the ORB uses to create SSL sockets for inbound IIOP connections.
WebSphere Application Server default | com.ibm.ws.security.orbssl.WSSSLServerSocketFactoryImpl |
JDK default | None. |
Use this custom property to specify the length of time in which the object request broker (ORB) waits for an available thread from the ORB thread pool before rejecting a request.
When the ORB receives an incoming request, the request is read by an ORB reader thread. The ORB reader thread attempts to hand off the request for processing by a worker thread in the ORB thread pool. When all the worker threads are handling other requests, the reader thread waits until a worker thread becomes available. While the reader thread is waiting, new requests are not processed by that particular reader thread. This situation can lead to deadlocks between the ORB thread pools on two different Java virtual machine (JVM) processes. The deadlocks are prominent when the ORB in one JVM process must call back to the ORB in the other JVM process to complete its request. Therefore, it is highly advisable to set this property to a positive non-zero value, which configures a finite wait period and can limit deadlock situations. However, configure the value for this custom property based on its effect on the average request processing time, the ORB request timeout value, and whether servers are making additional circular or backend calls.
Data type | Integer |
Units | Milliseconds |
Default | 0 |
Range | 0 - largest integer that is recognized by the Java run time |
This custom property is available with Version 6.0.2.19 and later.
Specifies the logical pool distribution (LPD) thread pool strategy the next time you start the application server, and is enabled if set to com.ibm.ws.threadpool.strategy.LogicalPoolDistribution.
Some requests have shorter start times than others. LPD is a mechanism for providing these shorter requests greater access to start threads. For more information, see Logical pool distribution.
Specifies how often the logical pool distribution (LPD) mechanism readjusts the pool start target times. This property cannot be turned off after this support is installed.
LPD must be enabled (see com.ibm.websphere.threadpool.strategy.implementation).
Data type | Integer |
Units | Milliseconds |
Default | 30 |
Range | 20,000 milliseconds minimum |
Specifies how long the logical pool distribution internal data is kept for inactive requests. The mechanism tracks several statistics for each request type that is received. Consider removing requests that have been inactive for awhile.
LPD must be enabled (see com.ibm.websphere.threadpool.strategy.implementation).
Data type | Integer |
Units | Milliseconds |
Default | 300,000 (5 minutes) |
Range | 60,000 (1 minute) minimum |
Specifies how many pools are created and how many threads are allocated to each pool in the logical pool distribution mechanism.
The ORB parameter for max threads controls the total number of threads. The outqueues parameter is specified as a comma separated list of percentages that add up to 100. For example, the list 25,25,25,25 sets up 4 pools, each allocated 25% of the available ORB thread pool. The pools are indexed left to right from 0 to n-1. Each outqueue is dynamically assigned a target start time by the calculation mechanism. Target start times are assigned to outqueues in increasing order so pool 0 gets the requests with the least start time and pool n-1 gets requests with the highest start times.
LPD must be enabled (see com.ibm.websphere.threadpool.strategy.implementation).
Data type | Integers in comma separated list |
Default | 25,25,25,25 |
Range | Percentages in list must total 100 percent |
Specifies that statistics are dumped to stdout after this interval expires, but only if requests are processed. This process keeps the mechanism from filling the log files with redundant information. These statistics are beneficial for tuning the logical pool distribution mechanism.
LPD must be enabled (see com.ibm.websphere.threadpool.strategy.implementation).
Data type | Integer |
Units | Milliseconds |
Default | 0 (off) |
Range | 30,000 (30 seconds) minimum |
Specifies the size of a new queue where incoming requests wait for dispatch. Pertains to the logical pool distribution mechanism.
LPD must be enabled (see com.ibm.websphere.threadpool.strategy.implementation).
Data type | Integer |
Default | 96 |
Range | 10 minimum |
Specifies the maximum number of connections that the IIOP Tunnel Servlet should maintain in its connection cache for each target host and port. If the number of concurrent client requests to a single host and port exceeds the setting for this property, the IIOP Tunnel Servlet opens a temporary connection to the target server for each extra client request, and then closes the connection after it receives the reply. Connections that are opened, but not used within five minutes, are removed from the cache for the IIOP Tunnel Servlet.
WebSphere Application Server default | 3 |
JDK default | Not applicable |
Range | 0 - largest integer recognized by Java |
Specifies the number of seconds that the IIOP Tunnel Servlet waits for a reply from the target server on behalf of a client before timing out. If a value is not specified for this property, or is improperly specified, the com.ibm.CORBA.RequestTimeout property setting for the application server on which the IIOP Tunnel Servlet is installed is used as the setting for the com.ibm.ws.orb.services.redirector.RequestTimeout property.
The value you specify for this property should be at least as high as the highest client setting for the com.ibm.CORBA.RequestTimeout property, otherwise the IIOP Tunnel Servlet might timeout more quickly than the client would normally timeout while waiting for a reply. If this property is set to zero, the IIOP Tunnel Servlet does not time out.
WebSphere Application Server default | com.ibm.CORBA.RequestTimeout property setting for the application server on which the IIOP Tunnel Servlet is installed. |
JDK default | Not applicable |
Range | 0 - largest integer recognized by Java |
Specifies whether the WebSphere Application Server ORB binds to all network interfaces in the system. If true is specified, the ORB binds to all network interfaces that are available to it. If false is specified, the ORB only binds to the network interface specified for the com.ibm.CORBA.LocalHost system property.
WebSphere Application Server default | true |
JDK default | true |
Specifies whether the ORB marshals arguments (pasess by value) or returns objects by reference.
This property supports delegation for method implementations in the javax.rmi.CORBA.Util class. The javax.rmi.CORBA.Util class provides utility methods that can be used by stubs and ties to perform common operations. The delegate is a singleton instance of a class that implements this interface and provides a replacement implementation for all of the methods of javax.rmi.CORBA.Util. To enable a delegate, provide the class name of the delegate as the value of the javax.rmi.CORBA.UtilClass system property. The default value provides support for the com.ibm.CORBA.iiop.noLocalCopies property.
WebSphere Application Server default | com.ibm.ws.orb.WSUtilDelegateImpl |
JDK default | None. |