Consultor Eletrônico



Kbase P160711: Procedure using sockets does not time out even though SO-RCVTIMEO is set
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   24/02/2010
Status: Unverified

SYMPTOM(s):

Procedure using sockets does not time out even though SO-RCVTIMEO is set

READ-RESPONSE procedure does not appear to time out.

FACT(s) (Environment):

GET-BYTES-AVAILABLE never gets any bytes.
SO-RCVTIMEO is set.
READ method uses READ-EXACT-NUM mode.
Code in main block includes the following line:
WAIT-FOR READ-RESPONSE OF hSocket.
All Supported Operating Systems
Progress/OpenEdge Product Family
Progress 9.x
OpenEdge 10.x

CAUSE:

WAIT-FOR READ-RESPONSE does not respond to the SO-RCVTIMEO socket option. SO-RCVTIMEO only applies to the socket READ method. The READ method is correctly returning zero bytes, However, since there are no bytes available to be read, the WAIT-FOR will wait forever for a response.

FIX:

Use the PAUSE <n> option on the WAIT-FOR statement to limit the amount of time the procedure will wait for the READ-RESPONSE.