You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-user@ws.apache.org by Vinod Soni <vi...@btinternet.com> on 2001/12/01 00:13:05 UTC

RE: XML Payload Performance

Now, one thing I would like to point out here is that, does it mae a
difference apart from the overload ? I mean, when the characters gets
'escaped' and we see them in such a way in tunnel, does it reach the server
also in similar way and the server takes care of that ?? Coz when I try to
pass a simple string value also which contains characters which gets
escaped, does the SOAP server interpret them accordingly ?

-----Original Message-----
From: Hashimoto, Mike [mailto:Mike.Hashimoto@cda.canon.com]
Sent: 30 November 2001 22:41
To: Soap (E-mail)
Subject: RE: XML Payload Performance


Craig (& others),

When my method finally gets called on the Soap server side, I timestamp it
and write the string to a file.  The XML 'file' on the server side matches
exactly what the client is sending (so that's good).  But I am passing the
XML payload as a string, not a DOM element.  On the server side I then parse
the payload in SAX.

Here's a brief snippet of the TCPTunnelGui output:

<ns1:postUpdate xmlns:ns1="urn:xmlpayloadserver-service"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<newPayload
xsi:type="xsd:string">&lt;UpdateObject&gt;&lt;ServerName&gt;RN2KPRO&lt;/Serv
erName&gt;&lt;TimeStamp/&gt;&lt;ESticket/&gt;&lt;EMSticket/&gt;&lt;Device&gt
;&lt;IPAdress&gt;166.154.24.154:B9B9&lt;/IPAdress&gt;&lt;Name&gt;Jill&lt;/Na
me&gt;&lt;Location&gt;Lab2&lt;/Location&gt;&lt;Contact&gt;Contact Name
Here&lt;/Contact&gt;&lt;MACAddress&gt;771018019&lt;/MACAddress&gt;&lt;Device
Type&gt;IR5000-E82&lt;/DeviceType&gt;&lt;DeviceInfo/&gt;&lt;BillingCounter&g
t;&lt;LogName&gt;category_document__print_job_service__print_job_service&lt;
/LogName&gt;&lt;Record&gt;&lt;RecordNumber&gt;46&lt;/RecordNumber&gt;

etc, etc, etc.

So the payload is getting 'escaped' to make it an innocuous string while
Soap handles it.  The delay I'm experiencing is the time the client makes
the call until the time the server receives the call (and the XML payload
'string').    From an application standpoint, I haven't done anything with
the data at this point.  As I noted earlier, when I just ship a 300K non-XML
string, everything occurs in < 1 sec.  So it has to be the
marshalling/unmarshalling.  But why so long and is there anything
configuration-wise that can be done to speed this up.

My concern is interoperability with a .NET client and Apache Soap 2.2
server.

The server is Win2000 with 500MB memory and perfmon shows memory is not an
issue.  The CPU is railed at 100%, so Soap is thinking hard.

Is it possible Soap internally takes the XML and converts it to a DOM
document in this transformation process?  There must be some kind of
overhead like this in addition to the char transform going on.

Any insight appreciated.

tks,
  mh

-----Original Message-----
From: Wilkins, Craig [mailto:cwilkins@akamai.com]
Sent: Friday, November 30, 2001 12:48 PM
To: 'soap-user@xml.apache.org'
Subject: RE: XML Payload Performance


Have you tried modifying your SOAP service to print out the input String to
sdtout and comparing the performance differences?

I am just trying to make sure that the additional performance hit isn't your
SOAP Service parsing the XML string into some sort of XML object..


-----Original Message-----
From: Hashimoto, Mike [mailto:Mike.Hashimoto@cis.canon.com]
Sent: Friday, November 30, 2001 12:46 PM
To: 'soap-user@xml.apache.org'
Subject: RE: XML Payload Performance


With an XML payload string, all of the '<' char's are transformed (escaped)
into "&lt;", likewise for '>'.  I'm not sure of all the char's that are
escaped.  I know apostrophe is another.

It certainly adds to the overall size and I suppose this is why it is not
recommended for larger payloads.  But still, to me, 300K is not that large a
payload.  There must be something in Apache Soap that is incredibly
inefficient during these transforms that makes the overall processing
sssoooo slow.

  mh

-----Original Message-----
From: Wilkins, Craig [mailto:cwilkins@akamai.com]
Sent: Thursday, November 29, 2001 7:46 PM
To: 'soap-user@xml.apache.org'
Subject: RE: XML Payload Performance



Compare the SOAP message payload of the 300K string to the payload of the
String that is XML?  There has to be something different.  What does your
soap service method do with the input string?  Is there a performance issue
as it parses it into DOM, etc?  What if you just print it out, do you see
the same performance issue?





-----Original Message-----
From: Hashimoto, Mike [mailto:Mike.Hashimoto@cis.canon.com]
Sent: Thursday, November 29, 2001 7:06 PM
To: Soap (E-mail)
Subject: XML Payload Performance


Hello All,

Problem: Shipping an XML string, ~300K in length.  When Apache Soap 2.2
receives, it takes about 35+ sec's before the actual method on the server
side gets dispatched!  There are many tags and the marshalling/unmarshalling
of the XML data is causing the extreme delay.  The server CPU is railed at
100% during this time.  Moreover, a network monitor was used to monitor the
packet and acknowledgements to verify the issue.

Questions:  We are using a .NET client and Apache Soap 2.2 server (currently
on Win2000 with Tomcat 3.2.3).  I've seen here (on the mailing list) that
there is no support for MIME mail attachments yet in .NET.  I know I could
opt for doing my own marshalling within the Soap envelope.

  Are there any other suitable options at this time?
  Anyone know the timeframe for .NET support of attachments?

I was also under the impression that LITERAL XML encoding was not yet
supported in .NET (i.e. XML string was the "lowest common denominator").

As an aside, also sent ~300K non-XML string data and it gets sent in < 1
sec.

Any advice much appreciated.

Regards,
  mh