[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Help with WSDL2RPG
Timo,
For sure 'dataSource' is not empty in
ManagedMemoryDataSource_OutputStream_write(). It appears to be empty when
using the standard "eval" debugger command to display its content:
eval dataSource
The problem is that 'dataSource' is based on pointer 'outStream.hParent'.
'outStream' is also based on a pointer and I think that this is the reason
why the debugger cannot correctly display the content of 'dataSource'. It
correctly displays the content of 'outStream':
eval outStream
But it fails for 'dataSource' which is based on a pointer that is part of
data structure 'outStream'.
You can display the content of 'dataSource' when you specify the pointer
that it is based on like this:
eval outStream.hParent -> dataSource
But for now let us go back to the original problem. I searched the IBM
APARs for the problem and I found a matching APAR for V7R1, which makes me
assuming that you are on V7R1:
http://www-912.ibm.com/n_dir/nas4apar.nsf/c79815e083182fec862564c00079d117/8fe940d8d38994ab8625778b003cbe66?OpenDocument&Highlight=2,%25alloc
Furthermore I assume that you changed the default value of parameter
OPTIMIZE of the CRTRPGMOD command from *NONE to *FULL.
Given that my assumptions are true, you need to apply PTF SI41005 or add
keyword "ALLOC(*SNGLVL)" to module WSDL2R87.
I would prefer to apply the PTF.
Thomas.
Am 02.05.2012 11:19, schrieb Casaluci, Timo:
> Hello Thomas,
>
> just debugged it. What I see is that:
>
> 1) After:
> hDataSource = ManagedMemoryDataSource_new(16776704);
>
> hDataSource is set to address " SPP:EB3EC429042AB100".
>
> 2) After:
> hOutStream = ManagedMemoryDataSource_OutputStream_open(
> hDataSource: contentType: getPostCcsid());
>
> hOutStream is set to 1
>
> 3) In procedure ManagedMemoryDataSource_OutputStream_write()
> the data structure "dataSource" is empty and after
> dataSource.pBuffer = %alloc(dataSource.maxCacheSize);
>
> the program jumps to the monitor group.
>
> With
> hDataSource = ManagedMemoryDataSource_new(16000000);
> the data structure "dataSource" is already empty
> but the statement dataSource.pBuffer = %alloc(dataSource.maxCacheSize);
> works fine.
>
> Regards,
>
> Timo
>
> -----Ursprüngliche Nachricht-----
> Von: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx [mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] Im Auftrag von Thomas Raddatz
> Gesendet: Samstag, 28. April 2012 18:50
> An: HTTPAPI and FTPAPI Projects
> Betreff: Re: Help with WSDL2RPG
>
> Timo,
>
> I have no idea why 16776704 does not work for you. We are on V6R1. If you
> want to debug that problem I suggest to add a breakpoint to the following
> statement of procedure ManagedMemoryDataSource_OutputStream_write() in
> module WSDL2R87 of service program WSDL2RPGRT:
>
> dataSource.pBuffer = %alloc(dataSource.maxCacheSize);
>
> I wonder why 16776704 should not be a positive number. Maybe that your RPG
> compiler or execution environment is drunken. ;-)
>
> Or maybe that your iSeries does not know the RPG manual, which clearly
> states that 16776704 is a legal value:
>
> From %alloc():
>
> "The parameter must be a non-float numeric value with zero decimal places.
> The length specified must be between 1 and 16776704."
>
> Thomas.
>
>
> Am 28.04.2012 00:12, schrieb Casaluci, Timo:
>> Hello Thomas,
>>
>>
>> I've to reduce the max. memory size to something which is smaller than
>> 16776704, with that value I got the error:
>>
>>
>> Additional Message
>> Information
>>
>>
>>
>> Message ID . . . . . . : CEE0808 Severity . . . . . . . :
>> 30
>>
>> Message type . . . . . : Escape
>>
>> Date sent . . . . . . : 27.04.12 Time sent . . . . . . :
>> 23:17:07
>>
>>
>>
>> Message . . . . : Requested storage size is not
>> valid.
>>
>> Cause . . . . . : Requested storage size is not a positive number.
>> The
>>
>> exception occurred in procedure
>> CEEGTST.
>>
>> Recovery . . . : Use a valid argument and try the operation
>> again.
>>
>>
>>
>>
>>
>> Display Message
>> Details
>>
>>
>>
>> Message ID . . . . . . : CEE0808 Severity . . . . . . . :
>> 30
>>
>> Date sent . . . . . . : 27.04.12 Time sent . . . . . . :
>> 23:17:07
>>
>> Message type . . . . . :
>> Escape
>>
>>
>>
>>
>> From program . . . . . . . . . :
>> QLEAWI
>>
>> From library . . . . . . . . : QSYS
>>
>> From module . . . . . . . . :
>> QLETOOL
>>
>> From procedure . . . . . . . : Q LE
>> AWIRaise
>>
>> From statement . . . . . . . :
>> 178
>>
>>
>>
>> To program . . . . . . . . . . :
>> WSDL2RPGRT
>>
>> To library . . . . . . . . . :
>> WSDL2RPG
>>
>> To module . . . . . . . . . :
>> WSDL2R87
>>
>> To procedure . . . . . . . . :
>> WSDL2R87_ManagedMemoryDataSource_OutputSt
>>
>> ream_write
>>
>> To statement . . . . . . . . :
>> 62100
>>
>>
>> More...
>>
>>
>>
>> After changing it to e.g. 16000000 byte that error doesn't occur again.
>> I doubled checked this.
>>
>> It also appears that the WS need some more time for the processing, but
>> after changing the http timeout to 180 I got a response.
>>
>>
>> Thanks,
>>
>>
>> Timo
>>
>>
>> -----Urspr�ngliche Nachricht-----
>> Von: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
>> [mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] Im Auftrag von
>> thomas.raddatz@xxxxxxxxxxx
>> Gesendet: Freitag, 27. April 2012 16:57
>> An: HTTPAPI and FTPAPI Projects
>> Betreff: Re: AW: Help with WSDL2RPG
>>
>>
>> Timo,
>>
>>
>> The FAQ is not clear enough regarding to the maximum memory size:
>>
>>
>> // Setting the cache size to 16MB
>>
>> // (restricted to 16776704 bytes for V5R4 and lower)
>>
>> hDataSource = ManagedMemoryDataSource_new(1024*1024*16);
>>
>> The maximum memory size is 16776704 which is almost 1024*1024*16 but
>> not
>>
>> equal to it. Please reduce the specified memory size to 16776704 and
>> try
>>
>> your request again. On our box it takes 30 seconds with a 4MB data
>> source
>>
>> and it takes 5 seconds with a 16MB data source to produce the request
>>
>> message. The final size of the request message that was sent over the
>> wire
>>
>> was about 18MB (log file size).
>>
>>
>> The number of elements were:
>>
>>
>> MaterialLot = 1600
>>
>> MaterialLotProperty = 10
>>
>> Value = 10
>>
>> Quantity = 2
>>
>>
>> List of changes:
>>
>>
>> VSEFACS: MemoryMamanager_attachService(uuid: cFalse)
>>
>> VSEFACS01: ManagedMemoryDataSource_new(16776704)
>>
>> VSEFACS20C: Number of array items
>>
>> Changed MemoryManager_createArray() to take 3 parameters
>> (all
>>
>> places)
>>
>>
>> You may also drop the array name from the parameters list of
>>
>> MemoryManager_createArray().
>>
>>
>> Regards,
>>
>>
>> Thomas.
>>
>>
>>
>>
> -----------------------------------------------------------------------
> This is the FTPAPI mailing list. To unsubscribe, please go to:
> http://www.scottklement.com/mailman/listinfo/ftpapi
> -----------------------------------------------------------------------
> ***********************************************************************************
> VEGA Grieshaber KG
> Kommanditgesellschaft mit Sitz in Wolfach
> Registergericht Freiburg: HRA 680 687
>
> Persönlich haftender Gesellschafter: Jürgen Grieshaber
>
> Persönlich haftende Gesellschafterin: Grieshaber Holding GmbH
> Sitz Wolfach, Registergericht Freiburg: HRB 680 271
>
> Geschäftsführer: Jürgen Grieshaber, Günter Kech, Rainer Mielke
> ************************************************************************************
> -----------------------------------------------------------------------
> 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
-----------------------------------------------------------------------