[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: R: R: Antwort: 7: Timeout occurred while trying to connect to server



Ermanno,

Based on your input I was able to fix the bug in WSDL2RPG. The problem you encountered with your web 
service actually was a problem of the Base64 UnMarshaller. By mistake I defined a field as 2I0 
(integer) instead of 2U0 (unsigned integer). Because of that mistake the maximum data size was reduced 
to 32k instead of 64k.

I did not change anything in 'ws_cab', because I actually did not use it to debug the problem. Since 
the mistake was in service program WSDL2RPGRT, there is a good chance that you do not need to change 
something in 'ws_cab'. I used your debug data to create my own test web service and based on that web 
service I debugged the problem. Guess what, it is a nice barcode that you will get.

There are two options to fix the problem:

1) Change the following lines in WSDL2R98 and reinstall WSDL2RPG:

    Procedures: Marshaller_toBase64Binary
                UnMarshaller_toBase64Binary

    Before: D outLength               1      2I 0
    After:  D outLength               1      2U 0

2) Download the latest beta from here:

    http://www.tools400.de/beta/wsdl2rpg_v1.10_20091206_1932.zip

In case you do not know how to save the decoded file data to a stream file, here is the code I used do 
do that:

    /COPY QIFS,PIFS                              IFS IO-Procedures
    ...

    // Now let's call the web service.
    getBase64EncodedJpegFileResponse =
       Base64File_getBase64EncodedJpegFile(
           requestMessage:
           errText);

    // If the Web service finished successfully ...
    if (not Base64File_isError());
       // ... write image data to IFS file.
       path = '/home/raddatz/wsdl2rpg/' +
               getBase64EncodedJpegFileResponse.fileName;
       hFile = f_openIfsFile(path
                             : O_WRONLY + O_SHARE_RDONLY +
                               O_CREAT + O_EXCL
                             : *: *: *);
       if (hFile = RC_ERROR);
          sndMsg('Failed to open file: ' + path);
       else;
          bytes = f_writeIfsFile(hFile
                              : %addr(getBase64EncodedJpegFileResponse...
                                     .fileData) + 2
                              : %len(getBase64EncodedJpegFileResponse...
                                     .fileData));
          f_closeIfsFile(hFile);
       endif;
    else;

In order to use the IFS procedures you have to bind to service program IFS.

Last but not least do not forget to increase the size of 'retriveDDTObjectReturn':

      D impl_retriveDDTObjectResponse_t...
      D                 DS                  based(pDummy)
      D                                     qualified
      D  retriveDDTObjectReturn...
      D                              128A   varying

For my test web service I set it to what is shown below:

      D tns_getBase64EncodedJpegFileResponse_t...
      D                 DS                  based(pDummy)
      D                                     qualified
      D  fileData                  64449A   varying
      D  fileName                    128A   varying


Regards,

Thomas.

B&R Informatica Sas schrieb:
> Thomas
> I tried what you suggested me but I can not solve the problem, sends you the
> stub as required;
> I will be very grateful if you can fix the problem.
> Ermanno.
> 
> B&R Informatica Sas
> Tel.  +39 075602254
> Cel. +39 337 600839
> info@xxxxxxxxxxxxxxxxx < mailto:info@xxxxxxxxxxxxxxxxx>
> www.br-informatica.it < http://www.br-informatica.it>
> 
> "ATTENZIONE:le informazioni contenute in questo messaggio sono da
> 
> considerarsi confidenziali ed il loro utilizzo è riservato unicamente al
> 
> destinatario sopra indicato. Chi dovesse ricevere questo messaggio per
> 
> errore è tenuto ad informare il mittente ed a rimuoverlo definitivamente da
> 
> ogni supporto elettronico o cartaceo."
> 
> 
> 
> 
> 
> -----Messaggio originale-----
> Da: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx]Per conto di Thomas
> Raddatz
> Inviato: venerdì 4 dicembre 2009 18.37
> A: HTTPAPI and FTPAPI Projects
> Oggetto: Re: R: Antwort: 7: Timeout occurred while trying to connect to
> server
> 
> 
> Ermanno,
> 
> I agree that it seems as if the web service returns the binary image data as
> element data of element
> <retriveDDTObjectReturn>. Most like this is the reason why you receive the
> "receiver is too small"
> error message.
> 
> Without the wsdl file all I can do is just guessing that your stub module
> should have a procedure
> ending with "retriveDDTObjectReturnEnd". That should be the procedure which
> receives the data of
> element <retriveDDTObjectReturn>. Feel free to start the debugger and add a
> breakpoint to that
> procedure. When "depth" is 2, "value" should contain the image data and
> "name" should be set to
> "retriveDDTObjectReturn". If that is true, it is up to you to modify the
> stub module to put the image
> data to a place of your choice.
> 
> The problem is the 64k barrier of RPG. Of course I could use pointers and
> dynamic memory allocation to
> manage larger response data but I am fairly sure that most of the RPG
> programmers would not be happy
> with that. The other option is to wait for V6R1 which allows fields up to
> 16MB.
> 
> Just because I am curious, what is the schema type of
> "retriveDDTObjectReturn"?
> 
> Last but not least, if you cannot fix the problem on your own, feel free to
> send the generated stub
> module to me. At the moment I do have much time left for playing around but
> perhaps I can fix it
> quickly. Having said that: I did not promise you anything.
> 
> Regards,
> 
> Thomas
> 
> B&R Informatica Sas schrieb:
>> Thomas, sorry for the delayed response, we'll send debugging where I think
> I
>> understand that the web service called me back the string of the image
> that
>> I think exceeds 64K.
>> If this is the reason how can we fix this?
>> Ermanno.
>>
>> B&R Informatica Sas
>> Tel.  +39 075602254
>> Cel. +39 337 600839
>> info@xxxxxxxxxxxxxxxxx < mailto:info@xxxxxxxxxxxxxxxxx>
>> www.br-informatica.it < http://www.br-informatica.it>
>>
>> "ATTENZIONE:le informazioni contenute in questo messaggio sono da
>>
>> considerarsi confidenziali ed il loro utilizzo è riservato unicamente al
>>
>> destinatario sopra indicato. Chi dovesse ricevere questo messaggio per
>>
>> errore è tenuto ad informare il mittente ed a rimuoverlo definitivamente
> da
>> ogni supporto elettronico o cartaceo."
>>
>>
>>
>>
>>
>> -----Messaggio originale-----
>> Da: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
>> [mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx]Per conto di
>> thomas.raddatz@xxxxxx
>> Inviato: giovedì 3 dicembre 2009 11.16
>> A: ftpapi@xxxxxxxxxxxxxxxxxxxxxx
>> Oggetto: Antwort: 7: Timeout occurred while trying to connect to server
>>
>>
>>
>> Ermanno,
>>
>> May you please turn the debug log on and pass the debug log along with the
>> wsdl file to me? Please ensure that the debug log does not contain any
>> ctritical data such as user name and password.
>>
>> Please do not post the log and the wsdl file to the mailing list but send
>> it directly to my tools400.de e-mail address.
>>
>> Thomas.
>>
>> ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx schrieb am 03.12.2009 08:59:34:
>>
>>> Von:
>>>
>>> info@xxxxxxxxxxxxxxxxx
>>>
>>> An:
>>>
>>> ftpapi@xxxxxxxxxxxxxxxxxxxxxx
>>>
>>> Datum:
>>>
>>> 03.12.2009 09:06
>>>
>>> Betreff:
>>>
>>> 7: Timeout occurred while trying to connect to server
>>>
>>> Gesendet von:
>>>
>>> ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
>>>
>>> Thomas, to better clarify my application it m makes a request to the web
>>> service by passing the host name of an image and must receive the stream
>> of
>>> the image to be displayed on the browser
>>> While I am on first use of this tool, but I expect that the function
>>> retriveDDTObjectResponse, contains this stream of return and that I can
>> open
>>> the image as if it had any link .. here is where does the limit I
>> mentioned
>>> that I could be 64K.
>>> This is the procedure or must return an attachment, stored on IFS and
>> then
>>> display it
>>> someone can clarify this fact,
>>> thanks for your availability,
>>> Ermanno.
>>> B&R Informatica Sas
>>> Tel.  +39 075602254
>>> Cel. +39 337 600839
>>> info@xxxxxxxxxxxxxxxxx <mailto:info@xxxxxxxxxxxxxxxxx>
>>> www.br-informatica.it <http://www.br-informatica.it>
>>>
>>> "ATTENZIONE:le informazioni contenute in questo messaggio sono da
>>> considerarsi confidenziali ed il loro utilizzo
>>>
>>> è riservato unicamente al destinatario sopra indicato. Chi dovesse
>> ricevere
>>> questo messaggio per errore è tenuto ad
>>>
>>> informare il mittente ed a rimuoverlo definitivamente da ogni supporto
>>> elettronico o cartaceo."
>>>
>>>
>>>
>>> i Thomas,I changed the value localhost with 192.168 .... exposed the
>> problem
>>> was due to a firewall that blocks traffic.
>>>
>>> Now that I can reach the host comes back to me the following error:
>>>
>>> The value of the receiver is too small to hold the result.
>>>
>>> 16: recvchunk: saveproc: Not all data was written
>>>
>>> -1009: The value of the receiver is too small to contain the result
>>>
>>> Got an idea on what may be caused?
>>>
>>> the web service I should return the stream of an image;
>>>
>>> There are size limitations?
>>>
>>> Ermanno.
>>>
>>> -----------------------------------------------------------------------
>>> This is the FTPAPI mailing list.  To unsubscribe, please go to:
>>> http://www.scottklement.com/mailman/listinfo/ftpapi
>>> -----------------------------------------------------------------------
>>
>> --
>> IMPORTANT NOTICE:
>> This email is confidential, may be legally privileged, and is for the
>> intended recipient only. Access, disclosure, copying, distribution, or
>> reliance on any of it by anyone else is prohibited and may be a criminal
>> offence. Please delete if obtained in error and email confirmation to the
>> sender.
>> -----------------------------------------------------------------------
>> This is the FTPAPI mailing list.  To unsubscribe, please go to:
>> http://www.scottklement.com/mailman/listinfo/ftpapi
>> -----------------------------------------------------------------------
>>
>> __________ Informazioni da ESET NOD32 Antivirus, versione del database
> delle
>> firme digitali 4657 (20091203) __________
>>
>> Il messaggio è stato controllato da ESET NOD32 Antivirus.
>>
>> www.nod32.it
>>
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> -----------------------------------------------------------------------
>> This is the FTPAPI mailing list.  To unsubscribe, please go to:
>> http://www.scottklement.com/mailman/listinfo/ftpapi
>> -----------------------------------------------------------------------
> -----------------------------------------------------------------------
> This is the FTPAPI mailing list.  To unsubscribe, please go to:
> http://www.scottklement.com/mailman/listinfo/ftpapi
> -----------------------------------------------------------------------
> 
> __________ Informazioni da ESET NOD32 Antivirus, versione del database delle
> firme digitali 4661 (20091204) __________
> 
> Il messaggio è stato controllato da ESET NOD32 Antivirus.
> 
> www.nod32.it
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> -----------------------------------------------------------------------
> This is the FTPAPI mailing list.  To unsubscribe, please go to:
> http://www.scottklement.com/mailman/listinfo/ftpapi
> -----------------------------------------------------------------------
-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------