You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Raghu Upadhyayula <ru...@responsys.com> on 2008/01/31 02:07:49 UTC

[Axis2] Webservices - 100% Memory and CPU usage (OutOfMemoryError) on API call

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


RE: [Axis2] Webservices - 100% Memory and CPU usage (OutOfMemoryError) on API call

Posted by Raghu Upadhyayula <ru...@responsys.com>.
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:philipp.leitner@gmx.at] 
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:philipp.leitner@gmx.at] 
> 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: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


RE: [Axis2] Webservices - 100% Memory and CPU usage (OutOfMemoryError) on API call

Posted by Raghu Upadhyayula <ru...@responsys.com>.
Hi Martin,

	I am using ADB data binding.

Thanks
Raghu

-----Original Message-----
From: Martin Gainty [mailto:mgainty@hotmail.com] 
Sent: Thursday, January 31, 2008 4:03 PM
To: axis-user@ws.apache.org
Subject: Re: [Axis2] Webservices - 100% Memory and CPU usage
(OutOfMemoryError) on API call

Thats alot of longs!

Take a look at implementing a binding depending on returned
datatype..fastest processing for
returning voids, interface objects works best with JAXB
returning Strings and doubles use ADB
http://wso2.org/library/588#resources

HTH
M-
----- Original Message -----
From: "Philipp Leitner" <ph...@gmx.at>
To: <ax...@ws.apache.org>
Sent: Thursday, January 31, 2008 5:26 PM
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:philipp.leitner@gmx.at]
> > 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: axis-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-user-help@ws.apache.org
> >
> >
> >
---------------------------------------------------------------------
> > To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-user-help@ws.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: [Axis2] Webservices - 100% Memory and CPU usage (OutOfMemoryError) on API call

Posted by Martin Gainty <mg...@hotmail.com>.
Thats alot of longs!

Take a look at implementing a binding depending on returned
datatype..fastest processing for
returning voids, interface objects works best with JAXB
returning Strings and doubles use ADB
http://wso2.org/library/588#resources

HTH
M-
----- Original Message -----
From: "Philipp Leitner" <ph...@gmx.at>
To: <ax...@ws.apache.org>
Sent: Thursday, January 31, 2008 5:26 PM
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:philipp.leitner@gmx.at]
> > 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: axis-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-user-help@ws.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-user-help@ws.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: [Axis2] Webservices - 100% Memory and CPU usage (OutOfMemoryError) on API call

Posted by Philipp Leitner <ph...@gmx.at>.
Not sure about that - I reckon you can transfer any type of attachment 
using MTOM (not only binary), but I actually never tried that so far.

What I meant with 'split the huge invocation' is simply that you do not 
transfer all results of your query at one time, but over a few 
consequent invocations.

I.e. clients would not invoke a 'get me all IDs to my query' method, but 
rather something like 'get me the first 10.000 results to this query', 
process these results, then send 'get me the second 10.000 results to 
this query' ... and so on. IMHO that's the generally accepted way of 
dealing with big datasets, even outside the area of Web services.

/philipp

Raghu Upadhyayula schrieb:
> Thanks for your reply Narayan.
> 
>  
> 
> So, if I have to use mtom then I need to change my method to return the 
> attachment (xsd:base64binary) instead of returning the long[] right?
> 
>  
> 
> Thanks
> 
> Raghu
> 
> ------------------------------------------------------------------------
> 
> *From:* Narayan S Dhillon [mailto:narayan.dhillon@googlemail.com]
> *Sent:* Thursday, January 31, 2008 3:11 PM
> *To:* axis-user@ws.apache.org
> *Subject:* Re: [Axis2] Webservices - 100% Memory and CPU usage 
> (OutOfMemoryError) on API call
> 
>  
> 
> if you transferring heavy data oevr the wire, consider using mtom.
> 
> On 31/01/2008, *Philipp Leitner* <philipp.leitner@gmx.at 
> <ma...@gmx.at>> wrote:
> 
> 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:philipp.leitner@gmx.at 
> <ma...@gmx.at>]
>>  Sent: Thursday, January 31, 2008 5:05 AM
>>  To: axis-user@ws.apache.org <ma...@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: axis-user-unsubscribe@ws.apache.org 
> <ma...@ws.apache.org>
>>  For additional commands, e-mail: axis-user-help@ws.apache.org 
> <ma...@ws.apache.org>
>>
>>
>>  ---------------------------------------------------------------------
>>  To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org 
> <ma...@ws.apache.org>
>>  For additional commands, e-mail: axis-user-help@ws.apache.org 
> <ma...@ws.apache.org>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org 
> <ma...@ws.apache.org>
> For additional commands, e-mail: axis-user-help@ws.apache.org 
> <ma...@ws.apache.org>
> 
>  
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


RE: [Axis2] Webservices - 100% Memory and CPU usage (OutOfMemoryError) on API call

Posted by Raghu Upadhyayula <ru...@responsys.com>.
Thanks for your reply Narayan.

 

So, if I have to use mtom then I need to change my method to return the
attachment (xsd:base64binary) instead of returning the long[] right?

 

Thanks

Raghu

________________________________

From: Narayan S Dhillon [mailto:narayan.dhillon@googlemail.com] 
Sent: Thursday, January 31, 2008 3:11 PM
To: axis-user@ws.apache.org
Subject: Re: [Axis2] Webservices - 100% Memory and CPU usage
(OutOfMemoryError) on API call

 

if you transferring heavy data oevr the wire, consider using mtom.

On 31/01/2008, Philipp Leitner <ph...@gmx.at> wrote:

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:philipp.leitner@gmx.at]
> 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: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org

 


Re: [Axis2] Webservices - 100% Memory and CPU usage (OutOfMemoryError) on API call

Posted by Narayan S Dhillon <na...@googlemail.com>.
if you transferring heavy data oevr the wire, consider using mtom.

On 31/01/2008, Philipp Leitner <ph...@gmx.at> wrote:
>
> 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:philipp.leitner@gmx.at]
> > 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: axis-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-user-help@ws.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-user-help@ws.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>

Re: [Axis2] Webservices - 100% Memory and CPU usage (OutOfMemoryError) on API call

Posted by Philipp Leitner <ph...@gmx.at>.
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:philipp.leitner@gmx.at] 
> 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: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


RE: [Axis2] Webservices - 100% Memory and CPU usage (OutOfMemoryError) on API call

Posted by Raghu Upadhyayula <ru...@responsys.com>.
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:philipp.leitner@gmx.at] 
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: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: [Axis2] Webservices - 100% Memory and CPU usage (OutOfMemoryError) on API call

Posted by Philipp Leitner <ph...@gmx.at>.
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: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org