Object Request Broker service settings

Use this page to configure the Java™ Object Request Broker (ORB) service and adjust settings that control internal Object Request Broker (ORB) processing.

To view this administrative console page:
  • For an application server, click Servers > Server Types > WebSphere application servers > server_name > Container services > ORB service.
  • For a deployment manager, click System administration > Deployment manager > ORB service.

Several settings are available for controlling internal Object Request Broker (ORB) processing. You can use these settings to improve application performance for applications that contain enterprise beans. You can change these settings for the default server or any application server that is configured in the administrative domain.

Request timeout

Specifies the number of seconds to wait before timing out on a request message.

If you use command-line scripting, the full name of this system property is com.ibm.CORBA.RequestTimeout.

Information Value
Data type int
Units Seconds
Default 180
Range 0 - largest integer recognized by Java
[IBM i]

Request retries count

Specifies the number of times that the ORB attempts to send a request if a server fails. Retrying sometimes enables recovery from transient network failures. This field is ignored for z/OS®.

If you use command-line scripting, the full name of this system property is com.ibm.CORBA.requestRetriesCount.

Information Value
Data type int
Default 1
Range 1 to 10
[IBM i]

Request retries delay

Specifies the number of milliseconds between request retries. This field is ignored for z/OS.

If you use command-line scripting, the full name of this system property is com.ibm.CORBA.requestRetriesDelay.

Information Value
Data type int
Units Milliseconds
Default 0
Range 0 to 60,000
[IBM i]

Connection cache maximum

Specifies the maximum number of entries that can occupy the ORB connection cache before the ORB starts to remove inactive connections from the cache. This field is ignored for z/OS.

It is possible that the number of active connections in the cache can temporarily exceed this threshold value. If necessary, the ORB can continue to add connections if resources are available.

For use in command-line scripting, the full name of this system property is com.ibm.CORBA.MaxOpenConnections.

Information Value
Data type Integer
Units Connections
Default 240
Range 0 - largest integer recognized by Java
[IBM i]

Connection cache minimum

Specifies the minimum number of entries in the ORB connection cache. This field is ignored for z/OS.

The ORB does not remove inactive connections when the number of entries does not meet this value.

For use in command-line scripting, the full name of this system property is com.ibm.CORBA.MinOpenConnections.

Information Value
Data type Integer
Units Connections
Default 100
Range 0 - largest integer recognized by Java

ORB tracing

Enables the tracing of ORB General Inter-ORB Protocol (GIOP) messages that includes both ORBRas=all trace and ORB CommTrace.

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 properties to true to enable the tracing of GIOP messages.
Note: This setting requires a server restart.
Information Value
Data type Boolean
Default Not enabled (false)
[IBM i]

Locate request timeout

Specifies the number of seconds to wait before timing out on a LocateRequest message. This field is ignored for z/OS.

If you use command-line scripting, the full name of this system property is com.ibm.CORBA.LocateRequestTimeout.

Information Value
Data type int
Units Seconds
Default 180
Range 0 to 300
[IBM i]

Force tunneling

Controls how the client ORB attempts to use HTTP tunneling. This field is ignored for z/OS.

If you use command-line scripting, the full name of this system property is com.ibm.CORBA.ForceTunnel.

Information Value
Data type String
Default NEVER
Range Valid values are ALWAYS, NEVER, or WHENREQUIRED.
Considering the following information when choosing the valid value:
ALWAYS
Use HTTP tunneling immediately, without trying TCP connections first.
NEVER
Disable HTTP tunneling. If a TCP connection fails, a CORBA system exception (COMM_FAILURE) occurs.
WHENREQUIRED
Use HTTP tunneling if TCP connections fail.
[IBM i]

Tunnel agent URL

Specifies the web address of the servlet to use in support of HTTP tunneling. This field is ignored on the z/OS platform.

This web address must be a proper format:

http://w3.mycorp.com:81/servlet/com.ibm.CORBA.services.IIOPTunnelServlet

For applets: http://applethost:port/servlet/com.ibm.CORBA.services.IIOPTunnelServlet.

This field is required if HTTP tunneling is set. If you use command-line scripting, the full name of this system property is com.ibm.CORBA.TunnelAgentURL.

Pass by reference

Specifies how the ORB passes parameters. If enabled, the ORB passes parameters by reference instead of by value, to avoid making an object copy. If you do not enable the pass by reference option, a copy of the parameter passes rather than the parameter object itself. This copy can be expensive because the ORB must first make a copy of each parameter object.

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.

Enabling the pass by reference option can improve performance up to 50% when:
  • The Enterprise JavaBeans (EJB) client and server are installed in the same instance of the product.
  • The client and server use remote interfaces.
The pass by reference option helps performance only where non-primitive object types are passed as parameters. Therefore, int and floats are always copied, regardless of the call model.
Avoid trouble: Enable this property with caution because unexpected behavior can occur. If an object reference is modified by the callee, the caller's object is modified as well, since they are the same object.

If you use command-line scripting, the full name of this system property is com.ibm.CORBA.iiop.noLocalCopies.

Information Value
Data type Boolean
Default Not enabled (false)

The use of this option for enterprise beans with remote interfaces violates Enterprise JavaBeans (EJB) Specification, Version 2.0 (see section 5.4). Object references passed to Enterprise JavaBeans (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 the product 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 com.ibm.websphere.ejbcontainer.allowPrimaryKeyMutation system property to true when the pass by reference option is enabled. Setting the pass by reference option to true causes the EJB container to make a local copy of the PrimaryKey object. But as a result, a small portion of the performance advantage of setting the pass by reference option is lost.

As a rule, any application code that passes an object reference as a parameter to an enterprise bean method or to an EJB home method must be scrutinized. Passing the object reference might result in loss of data integrity or other problem.

After examining your code, you can enable the pass by reference option by setting the com.ibm.CORBA.iiop.noLocalCopies system property to true. You can also enable the pass by reference option in the administrative console. Click Servers > Server Types > Application servers > server_name > Container services > ORB Service and select Pass by reference.

Thread pool settings

Specifies which thread pool will be used for the ORB Service, as well as the ability to make any thread pool adjustments for either thread pool option.

After the Pass by reference check box, you can select Thread Pool Settings then perform one of the following actions and make any thread pool adjustments:
  • Use the ORB.thread.pool settings associated with the Thread Pool Manager, and then click ORB thread pool settings, which shows the general thread pool settings for the ORB.thread.pool.
  • Use the thread pool settings directly associated with the ORB service, and then click Thread pool settings, which shows the general thread pool settings for ORB service.