Handling request retries
When a CORBA request results in a response of type org.omg.CORBA.SystemException, the IBM® ORB retries a request under certain conditions. You can control the number of retries and the time delay between retries by using system properties.
- The org.omg.CORBA.SystemException is one of the following types:
-
org.omg.CORBA.COMM_FAILURE
-
org.omg.CORBA.TRANSIENT
-
org.omg.CORBA.NO_RESOURCE
-
- The completion status of the org.omg.CORBA.SystemException is org.omg.CORBA.CompletionStatus.COMPLETED_NO.
- com.ibm.CORBA.requestRetriesCount
- This property governs the number of retries that are attempted.
- com.ibm.CORBA.requestRetriesDelay
- This property determines the time delay in milliseconds (ms) between retries.
The overall time delay before the client receives an org.omg.CORBA.SystemException response if all retry attempts fail, is based on the property values for these two properties. Note: IBM ORB does not retry a request when a completion status that contains COMPLETED_MAYBE or COMPLETED_YES is returned.
The Interoperable Object References (IOR) also play a role in the retry logic. The ORB deals with two different IORs when CORBA requests are sent, which are the “indirect” (or "initial") IOR and “direct” (or "forwarded") IOR. The “initial” IOR is the bootstrap IOR with which a client starts the initial request, which is essentially an IOR used to contact the NameService on the bootstrap port. Subsequent requests are made by using the “forwarded” IOR, which is a “direct” IOR to a specific server’s ORB port. If an org.omg.CORBA.SystemException exception is thrown of one of the specified types, the ORB falls back to the “initial” IOR and sends the retry request by using the “initial” IOR. This behavior allows the ORB to obtain a new “direct” IOR to a server to attempt to complete the request. The IOR-related logic is separate from the property settings that are made by using com.ibm.CORBA.requestRetriesCount.
Important: The retry behavior of the two IOR types is not configurable, is internal to IBM ORB, and might be changed without any prior notification.