Description


Doing database I/O when getting an error Uniface is providing $dberror to expose real database error captured from db connector, enabling to fine tune application error management. There should be an equivalent function (or $dberror implementation should be generalized) exposing real error also for other connector types; as an example SOAP connector should expose HTTP transport error (See: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes). As of U9.7 this fine tuning can only be partially implemented analyzing strings given back from connector into $procerrorcontext; string analysis could be prone to errors because of software evolution or different languages or possible customizations, while an errorcode is a much more simpler and stable information.

Use Case


During SOAP web services invocation in U9.7 the only way we have to differentiate error conditions was to analyze strings given back into $procerrorcontext. Here reported the two cases we found: *** CASE 1 - SERVER DOWN - ERROR ON REQUEST: ERROR=-150·;MNEM=·;DESCRIPTION=Activation error occurred·;COMPONENT=FSE_INTERFACE·;PROCNAME=FSEGETDOCUMENTSLIST·;TRIGGER=OPER·;LINE=109·; ADDITIONAL=INSTANCENAME=GV_NL_FSE·!·;OPERATIONNAME=FSELOCGETDOCUMENTSLIST·!·;DRV=SOP·!·;LOCATION=INVOCATION·!·; CODE=TRANSPORT·!·; MESSAGE=HTTP transport error·!·; DETAIL= Request::handleRequest HTTPTransportException:Unknown Transport Exception - Connecting to http://ourServer:8080/gvaxis2/services/GV_NL_FSE failed: Failed to connect to ourServer port 8080: Timed out\\\" *** CASE 2 - SERVER UP - TIMEOUT ON RESPONSE: ERROR=-150·;MNEM=·;DESCRIPTION=Activation error occurred·;COMPONENT=FSE_INTERFACE·;PROCNAME=FSEGETDOCUMENTSLIST·;TRIGGER=OPER·;LINE=109·; ADDITIONAL=INSTANCENAME=GV_NL_FSE·!·;OPERATIONNAME=FSELOCGETDOCUMENTSLIST·!·;DRV=SOP·!·; LOCATION=INVOCATION·!·; CODE=TRANSPORT·!·; MESSAGE=HTTP transport error·!·; DETAIL= Request::handleRequest HTTPTransportException:Channel error connection timeout before receiving - Operation timed out after 80013 milliseconds with 0 bytes received\\\" The only solution was to analyze strings given back into DETAIL field; it would be much much better to have available a code to recognize different conditions.

Importance


medium

Type


Uniface 4GL

Operating System


Not Applicable

Status


Leave a Reply

Your email address will not be published. Required fields are marked *

Please fill in the right answer to this question * Time limit is exhausted. Please reload CAPTCHA.