Consultor Eletrônico



Kbase P36096: 4GL Socket program crashes with error 140
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   2/7/2011
Status: Verified

SYMPTOM(s):

4GL Socket program crashes with error 140

Crash occurs when timeout set by 3rd party product is passed

** Pipe to subprocess has been broken. (140)

4GL socket program connecting to 3rd party product.

FACT(s) (Environment):

All Supported Operating Systems
Progress 9.x
OpenEdge 10.x

CAUSE:

The Socket object doesn't handle dropped socket connections very well. Often a system-level error will occur that will not be trappable with NO-ERROR and raise a STOP condition.

This is due to the way the SOCKET object is implemented, and cannot readily be fixed without breaking other functionality.

FIX:

Invoke the <socket>:CONNECTED() method before <socket>:READ() or <socket>:WRITE() in order to detect if the connection had not been dropped, thus preventing operations on disconnected sockets.