Problem:
- Product Name: VisiBroker for Java
- Product Version: 6.5 SP14 and below, 7.0 SP5 and below, 8.0 SP2 and below
- Product Component: Core ORB
- Platform/OS Version: all supported
- Tested Version: 6.5 SP14
Client application hangs when sending request to the server. This scenario can occurs when the network is intermittently un-stable. Client-side TCP/IP stack's send buffer becomes full and causes the application to hang.
Steps to execute the test case:
- Start NameService
- Run the server in one shell
vbj -DSVCnameroot=NameService Server - Run the client in another shell.
vbj -DSVCnameroot=NameService-Dvbroker.orb.tcpTimeout=120000 Client
The call to the client causes the server to simulate a hanging process by calling "pstop" on itself. The test case must be run on a Solaris system.
Solution:
An enhancement CR 10153 is created to use a single thread to monitor all invocations write timeout periodically. The period iscontrolled by a new property "vbroker.orb.socketTimeoutMonitorPeriod" in milliseconds. The default value is 0 and it will not use the new timeout mechanism.
For example, to set a tcpTimeout of 2 mins and monitor period of 2 secs, the following properties must be set at the Client side:
vbroker.orb.socketTimeoutMonitorPeriod=2000
The smaller the monitor period value, the more accurate is the timeout. However, it may also use more CPU to perform more frequent timeout checking.
#VisiBroker
#VisiBrokerforJava
#Sockettimeout
#Security