Hi Phillip,

        I'm experiencing this on the server side when executing my query
& storing the results in the long[].
        
        As you said one of the solution could be to split one huge
invocation into a number of smaller ones, can you explain that a bit.
        
        Are you saying that I need to restrict the number of elements
returned in the long[] to a smaller number.

Thanks
Raghu

-----Original Message-----
From: Philipp Leitner [mailto:[EMAIL PROTECTED] 
Sent: Thursday, January 31, 2008 2:27 PM
To: axis-user@ws.apache.org
Subject: Re: [Axis2] Webservices - 100% Memory and CPU usage
(OutOfMemoryError) on API call

Still not sure whether you expirience the exception on client or server 
side.

However: 300.000 longs do seem like a lot of elements to transport at 
once. I would not be surprised if such a huge array simply leads to 
memory problems during wrapping/unwrapping.

Best solution (if that is indeed the problem) would be to split the one 
huge invocation into a number of smaller ones (or increasing the heap 
size to  avoid memory problems, but that's probably just a temporary
fix).

100% CPU does not seem very uncommon to me - I have seen similar 
behavior during wrapping/unwrapping of big SOAP messages. XML processing

is expensive in terms of CPU cycles.

/philipp


Raghu Upadhyayula schrieb:
> Hi Phillip,
> 
>     I think there were around 300,000 elements in the long[] when I
ran
> into this issue.
>     
>     I suppose, the exception happens in the app logic, I haven't tried
> it on my local machine yet (the error happened on one of our QA
> servers).
>     
>     In the application logic, what I do is, execute a query, loop
> through the result set, store the results in a List<Long> as I don't
> know how many rows are in the result set, and then loop through the
> List<Long> and store then in the long[] and return the long[] back to
> the client.
> 
> Thanks
> Raghu
> -----Original Message-----
> From: Philipp Leitner [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, January 31, 2008 5:05 AM
> To: axis-user@ws.apache.org
> Subject: Re: [Axis2] Webservices - 100% Memory and CPU usage
> (OutOfMemoryError) on API call
> 
> How many elements are there in your long[] when you run out of memory?

> When exactly does the exception happen (in your app logic, during 
> wrapping, during transmission, on client side?).
> 
> /philipp
> 
> Raghu Upadhyayula schrieb:
>> Hi,
>>
>>  
>>
>> I have a webservice API call which is using 100% of Memory & CPU and 
>> throwing an OutOfMemoryError (I'm using Axis2 1.3).
>>
>>  
>>
>> My webservice call returns a long array.
>>
>>  
>>
>> Here is the signature of my webservice API.
>>
>>  
>>
>> *public long[] getIds(Calendar startDate, Calendar endDate) throws 
>> Exception; *
>>
>>  
>>
>> Based on the given startDate & endDate, I retrieve the corresponding 
>> records from the database and store the ids in a long array and
return
> 
>> the long array to the client.
>>
>>  
>>
>> If the number of records is more, I'm having the issue of 100% memory
> / 
>> CPU usage or OutOfMemoryError.
>>
>>  
>>
>> Does anyone of you have any ideas on how to overcome this issue?
>>
>>  
>>
>> Thanks
>>
>> Raghu
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to