[stackoverflow] [progress Openedge Abl] Openedge Progress 10.2b Calling Webservice - Error...

  • Thread starter André Luís Oliveira
  • Start date
Status
Not open for further replies.
A

André Luís Oliveira

Guest
I'm calling a Webservice sending a big XML that is generated by a Dataset using method WRITE-XML(). See below:

DATASET dsOrdemCompra:WRITE-XML('LONGCHAR', cXMLContent).
RUN enviarDadosWsGenerico(INPUT 'PURCHASEREQUEST',
INPUT cNamespace,
INPUT cXMLContent,
INPUT cTransactionMethod,
INPUT hGenericPort,
OUTPUT c-retorno).


After calling the WS 1400 times (70000 rows broken by groups of 50), Progress returned error 5486. After some Google research, I've found this and this. It seems that Progress is not freeing memory or the ports used to connect the WS.

Does anyone dealed with it? Below it's the method that effectively calls WS.

PROCEDURE enviarDadosWsGenerico:
DEF INPUT PARAM cTransacao AS CHAR.
DEF INPUT PARAM cNameSpaceUrl AS CHAR.
DEF INPUT PARAM cConteudo AS LONGCHAR.
DEF INPUT PARAM cTransactionMethod AS CHAR.
DEF INPUT PARAM hPort AS HANDLE.
DEF OUTPUT PARAM cRetorno AS CHAR.

DEF VAR cPayload AS LONGCHAR NO-UNDO.
DEF VAR cParamsWrapped AS LONGCHAR NO-UNDO.
DEF VAR lErro AS LOG NO-UNDO.
DEF VAR cArqName AS CHAR NO-UNDO.

cPayload = '<![CDATA[' + cConteudo + ']]>'.
cParamsWrapped = '<ns0:' + cTransactionMethod + ' xmlns:ns0="' + cNameSpaceUrl + '">'.
cParamsWrapped = cParamsWrapped + '<ns0:CTRANSAC>' + cTransacao + '</ns0:CTRANSAC><ns0:CXML>' + cPayload + '</ns0:CXML>'.
cParamsWrapped = cParamsWrapped + '</ns0:' + cTransactionMethod + '>'.

cArqName = SESSION:TEMP-DIRECTORY + '/' + cTransacao + '_FULLXML_' + replace(string(TODAY), '/', '') + replace(STRING(TIME, 'hh:mm:ss'), ':', '') + '.xml'.
COPY-LOB FROM cParamsWrapped TO FILE cArqName NO-CONVERT.

RUN value(cTransactionMethod) IN hPort (INPUT cParamsWrapped, OUTPUT cRetorno).
RUN trataRetornoWS(INPUT-OUTPUT cRetorno, OUTPUT lErro).
IF lErro THEN
DO:
RETURN 'nOK'.
END.
ELSE
DO:
RETURN 'OK'.
END.
END PROCEDURE.

Continue reading...
 
Status
Not open for further replies.
Top