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:[EMAIL PROTECTED]
*Sent:* Thursday, January 31, 2008 3:11 PM
*To:* [email protected]
*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* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> 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:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>]
 Sent: Thursday, January 31, 2008 5:05 AM
 To: [email protected] <mailto:[email protected]>
 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]
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>


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

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


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

Reply via email to