Axis rpc/enc is especially bad for large messages, and judging from the amount of time you're saying it takes to process the message I'd suspect that's what you're using. Just changing to a doc/lit approach with Axis will probably give you dramatically better performance in that case.
For an alternative approach you can look at my JibxSoap framework (http://www.jibx.org/jibxsoap). I haven't tried it with very large messages, but it should scale very well. For a discussion of doc/lit vs. rpc/enc and a look at some performance figures see http://www.sosnoski.com/presents/cleansoap/comparing.html You can see the non-linear increase in rpc/enc processing time for Axis as the number of components in the message increases in the results at http://www.sosnoski.com/presents/cleansoap/results.html I'd suspect this is due to multiRef handling, but haven't looked into it in detail.
I'm hoping to update JibxSoap before the end of the year with a production-quality beta based on the upcoming JiBX beta 4. The current JibxSoap code is more of a demonstration than a full framework, but is usable for many types of applications.
- Dennis
-- Dennis M. Sosnoski Enterprise Java, XML, and Web Services Training and Consulting http://www.sosnoski.com Redmond, WA 425.885.7197
Ivan Aguirre wrote:
I believe this problem is the cost of holding the big Web Service response in memory and, at same time, instanciate a lot of objects (or maintening a lot of objects in memory and at same thime build a big XML String). All happening at client side.
I believe this happens with all kind of Web Service that returns a lot of data.
I know it's possible to write your own serializer/deserializer... maybe you could build an aproach that uses some cache mechanism to optmize the use o memory.
Ivan
On Thu, 11 Nov 2004 14:45:42 +0100, Thomas Herre
<[EMAIL PROTECTED]> wrote:
Ivan,
Thanks for the tip. I knew that this the preferred way to handle such problems.
Nonetheless I would like to know if Axis should be able to handle such large responses. You see, it was the first time, I encountered such a problem with Axis. But I think it is not unusual for a business component to return some hundred or thousand objects. Can I use such components with Axis? If the performance is as poor as by now, I can't. Or am I doing something wrong?
Thanx again. -Thomas
Ivan Aguirre schrieb:
Tip:
Build a service with the habilitie to retrieve the information "page by page". If you have, let's say, 5000 clients, show them in your GUI in a paged form.... like google do on searches.... maybe 200 clients by page (25 pages) shoud be good. bye
Ivan
On Thu, 11 Nov 2004 13:48:41 +0100, Thomas Herre <[EMAIL PROTECTED]> wrote:
It is far too slow. Takes between 1 and 2 minutes for one request as desribed below. Also, the heap becomes very large: about 300 MB filled with instances of parser and Axis classes.
Dorner, Thomas schrieb:
Is it too slow or will you get an exception?
-----Ursprüngliche Nachricht----- Von: Thomas Herre [mailto:[EMAIL PROTECTED] Gesendet: Donnerstag, 11. November 2004 08:57 An: [EMAIL PROTECTED] Betreff: [Fwd: Too Large XML Response?]
Hi all,
I'm new to this list, yet not new to Axis. I would appreciate to hear your thoughts on the following:
We're using Axis/SOAP to connect our GUI Clients with a backend server. Here's an example: A client wants to display a set of customers. It requests them via SOAP RPC Call and gets a Collection of objects in return, which it can display in a JTable. As you can imagine, the number of objects returned may easily exceed a number of, let's say some thousands. That produces a very large XML SOAP response, which is very hard to parse. It takes about 80 seconds to finish such a request. I tracked the problem down to find out that the bottleneck seems to be on the client side, when deserializing the XML data into Java objects.
I'm using Axis 1.2 RC 1 with Xerces 2.6.2. JDK is 1.4.2_05. I'm running Client and Tomcat on the same machine for testing.
So, my question: Am I using Axis for something it is not intended or should it be able to handle such large responses?
Thank you for your opionion and advice.
Cheers, Thomas