Hi,

I'm using Axis 1.1 (under JRE 1.3.1_01) as the client
to consume a Web Service exposed by a Siebel system.

As usual, proxy classes were generated, based on the
WSDL exposed by the Siebel system and compilation runs
fine.

The problem is that this Web Service returns a 17k
response and sometimes it takes 5 seconds for Web
service completion.

I've switched from Xerces parser to Piccolo to see if
the problem was with the parser, but it remained the
same.

I've digged through Axis source code until I reached
the DeserializationContextImpl class where parsing
gets done and I was able to measure parsing times.
With Xerces, I get a 30 ms average parsing time and
with Piccolo an average of 20 ms (pretty good, btw).

I've noticed that the input stream that is passed to
the parser does not contain the full XML document to
parse - most of the time it contains only 8192 bytes
and, when the parser attempts to read it, it somehow
triggers reading (I assume from a network socket) of
the rest of the document.

When I use a .Net (.Net Framework 1.1) client to
consume the same Web Service, on the Server and Client
machines, results are much better - they are often
below 1 second and never exceed 2 seconds.

How can I influence the way Java/Axis uses the network
(if it really is the problem), e.g., setting a
property which, in some cases, increases the buffer
size for network communication?

Or the way .Net's virtual machine uses the Windows
Network subsystem is always more efficient than Java?


Many thanks.


Nuno Guerreiro


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Reply via email to