Use this page to configure the Java Object Request Broker (ORB) service.
To view this administrative console page, click Servers > Application Servers > serverName > ORB Service.
Several settings are available for controlling internal Object Request Broker (ORB) processing. You can use these settings to improve application performance in the case of applications containing enterprise beans. You can make changes to these settings for the default server or any application server configured in the administrative domain.
Configuration tab
For use in command-line scripting, the full name of this system property is com.ibm.CORBA.RequestTimeout.
Data type | int |
Units | Seconds |
Default | 180 |
Range | 0 to 300 |
For use in command-line scripting, the full name of this system property is com.ibm.CORBA.requestRetriesCount.
Data type | int |
Default | 1 |
Range | 1 to 10 |
For use in command-line scripting, the full name of this system property is com.ibm.CORBA.requestRetriesDelay.
Data type | int |
Units | Milliseconds |
Default | 0 |
Range | 0 to 60 |
For use in command-line scripting, the full name of this system property is com.ibm.CORBA.MaxOpenConnections.
Data type | Integer |
Units | Connections |
Default | 240 |
Range | 10 - largest integer recognized by Java |
For use in command-line scripting, the full name of this system property is com.ibm.CORBA.MinOpenConnections.
Data type | Integer |
Units | Connections |
Default | 100 |
Range | Any integer that is at least 5 less than the value specified for the Connection cache maximum property. |
This setting affects two system properties: com.ibm.CORBA.Debug and com.ibm.CORBA.CommTrace. If you set these properties through command-line scripting, you must set both to true in order to enable the tracing of GIOP messages.
Data type | Boolean |
Default | Not enabled (false) |
For use in command-line scripting, the full name of this system property is com.ibm.CORBA.LocateRequestTimeout.
Data type | int |
Units | Seconds |
Default | 180 |
Range | 0 to 300 |
For direct access, the full name of this property is com.ibm.CORBA.ForceTunnel.
Data type | String |
Default | NEVER if you are running an application server WHENREQUIRED if you are not running an application server |
Range | Valid values are ALWAYS, NEVER, or WHENREQUIRED. |
Additional information about valid values follows:
This must be a properly formed URL, such as http://w3.mycorp.com:81/servlet/com.ibm.CORBA.services.IIOPTunnelServlet or, for applets, http://applethost:port/servlet/com.ibm.CORBA.services.IIOPTunnelServlet. This field is required if HTTP tunneling is set.
For use in command-line scripting, the full name of this system property is com.ibm.CORBA.TunnelAgentURL.
You can use this option only when the Enterprise JavaBeans (EJB) client and the EJB are on the same classloader. This requirement means that the EJB client and the EJB must be deployed in the same EAR file.
If the EJB client and the EJB server are installed in the same WebSphere Application Server instance, and the client and server use remote interfaces, enabling Pass by reference can improve performance up to 50%. Pass by reference helps performance only where non-primitive object types are passed as parameters. Therefore, int and floats are always copied, regardless of the call model.
Enable this property with caution, because unexpected behavior can occur. If an object reference is modified by the remote method, the caller might change.
For use in command line scripting, the full name of this system property is com.ibm.CORBA.iiop.noLocalCopies.
Data type | Boolean |
Default | Not enabled (false) |
The use of this option for enterprise beans with remote interfaces violates the EJB Specification, Version 2.0 (see section 5.4). Object references passed to EJB methods or to EJB home methods are not copied and can be subject to corruption.
Consider the following example:
Iterator iterator = collection.iterator(); MyPrimaryKey pk = new MyPrimaryKey(); while (iterator.hasNext()) { pk.id = (String) iterator.next(); MyEJB myEJB = myEJBHome.findByPrimaryKey(pk); }
In this example, a reference to the same MyPrimaryKey object passes into WebSphere Application Server with a different ID value each time. Running this code with Pass by reference enabled causes a problem within the application server because multiple enterprise beans are referencing the same MyPrimaryKey object. To avoid this problem, set the system property com.ibm.websphere.ejbcontainer.allowPrimaryKeyMutation to true when Pass by reference is enabled. Setting Pass by reference to true causes the EJB container to make a local copy of the PrimaryKey object. As a result, however, a small portion of the performance advantage of setting Pass by reference is lost.
As a general rule, any application code that passes an object reference as a parameter to an enterprise bean method or EJB home method must be scrutinized to determine if passing that object reference results in loss of data integrity or other problems.