Yes, the rpcrouter does parse the entire message into DOM. I believe that it uses the DocumentBuilder. Could it be parsing your XML String into DOM and then converting it back to String to pass to your SOAP Service? This would be unnecessary overhead.
Do you think that it would be worth seeing how the system performs when the Xerces DocumentBuilder parses the entire SOAP message? You can set up this test and check it out. Also, you could substitute '<' characters with some other char (like pipe '|') that you know isn't in the payload and then replace back at the soap service level. This is quirky and I wouldn't do it, but I figured that I would through it out there. Good Luck.. Craig -----Original Message----- From: Hashimoto, Mike [mailto:[EMAIL PROTECTED]] Sent: Friday, November 30, 2001 5:41 PM 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"><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