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"><UpdateObject><ServerName>RN2KPRO</Serv > erName><TimeStamp/><ESticket/><EMSticket/><Device> > ;<IPAdress>166.154.24.154:B9B9</IPAdress><Name>Jill</Na > me><Location>Lab2</Location><Contact>Contact Name > Here</Contact><MACAddress>771018019</MACAddress><Device > Type>IR5000-E82</DeviceType><DeviceInfo/><BillingCounter&g > t;<LogName>category_document__print_job_service__print_job_service< > /LogName><Record><RecordNumber>46</RecordNumber> > > 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 "<", 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 -------
