I've been looking at this problem, and the time spent seems to 
mostly be the character transformation of the string.

--Richard

On 30 Nov 2001, at 14:41, Hashimoto, Mike wrote:

> 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:[EMAIL PROTECTED]]
> Sent: Friday, November 30, 2001 12:48 PM
> To: '[EMAIL PROTECTED]'
> 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:[EMAIL PROTECTED]]
> Sent: Friday, November 30, 2001 12:46 PM
> To: '[EMAIL PROTECTED]'
> 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:[EMAIL PROTECTED]]
> Sent: Thursday, November 29, 2001 7:46 PM
> To: '[EMAIL PROTECTED]'
> 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:[EMAIL PROTECTED]]
> 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


------- End of forwarded message -------

Reply via email to