Skip to main content

Problem:

CORBA::TIMEOUT thrown in VisiBroker C even though actual timeout has not expired.

Resolution:

The QoS Timeout mechanism in VisiBroker for C uses the gettimeofday() system call to get the time stamp and calculate the elapsed time for the method invocations.

On AIX, there is a possibility that two closely spaced gettimeofday() calls will observe that time has moved backwards. This may affect the elapsed time calculation.

Please refer to the man page for gettimeofday() system call:

http://www-01.ibm.com/support/knowledgecenter/ssw_aix_61/com.ibm.aix.basetrf1/gettimeofday.htm

which states: " [...] it is possible that two closely spaced gettimeofday calls will observe that time has moved backwards. You can set the GETTOD_ADJ_MONOTONIC environment value to cause the returned value to never decrease. After this environment variable is set, the returned value briefly remains constant as necessary to always report a nondecreasing time of day."

If this issue is experienced ensure to set the environment variable "GETTOD_ADJ_MONOTONIC" to 1 prior to starting the VisiBroker application.

RPI 1096348


#VisiBroker
#Security