Skip to main content

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:

  1. Start NameService
  2. Run the server in one shell
    vbj -DSVCnameroot=NameService Server
  3. 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.

Old KB# 30738

#VisiBroker
#VisiBrokerforJava
#Sockettimeout
#Security