| Home | Forums | Reviews | Guides | Newsgroups | Register | Search |
![]() |
| Thread Tools |
| Prabhu |
|
|
|
| |
|
Dan Rogers
Guest
Posts: n/a
|
Hi,
How big is the response? Are there other implementations of clients that deserialize more rapidly? Regards Dan Rogers Microsoft Corporation -------------------- >Thread-Topic: .net SOAP toolkit performance for SOAP deserialization >thread-index: AcTIpKogGJkADvEfQymOXvVBC0AhVg== >X-WBNR-Posting-Host: 203.123.182.26 >From: =?Utf-8?B?UHJhYmh1?= <> >Subject: .net SOAP toolkit performance for SOAP deserialization >Date: Fri, 12 Nov 2004 02:45:02 -0800 >Lines: 15 >Message-ID: <476D5BFD-4063-4233-9CE4-> >MIME-Version: 1.0 >Content-Type: text/plain; > charset="Utf-8" >Content-Transfer-Encoding: 7bit >X-Newsreader: Microsoft CDO for Windows 2000 >Content-Class: urn:content-classes:message >Importance: normal >Priority: normal >X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0 >Newsgroups: microsoft.public.dotnet.framework.aspnet.webservic es >NNTP-Posting-Host: TK2MSFTNGXA03.phx.gbl 10.40.1.29 >Path: cpmsftngxa10.phx.gbl!TK2MSFTNGXA03.phx.gbl >Xref: cpmsftngxa10.phx.gbl microsoft.public.dotnet.framework.aspnet.webservic es:26495 >X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet.webservic es > >Hi All. >We are building an ASP.net application using C# & .net 1.1 framework. >The ASP.net application consumes web services (Java/Apache Axis >implementation) and we are facing issues that the application is very slow. > >Initially we suspected network and server side responses as culprits. >But on further investigation (we override GetWebResponse and GetWebRequest >methods SOAPClient) we have found that the application is spending >considerable amount of time (1+ minute) in deserializing the SOAP response >from the server. > >We are using VS.net 2003 for generating the proxies. > >Has anyone faced such performance issues and any suggestions? > > |
|
|
|
|
|||
|
|||
| Dan Rogers |
|
|
|
| |
|
Prabhu
Guest
Posts: n/a
|
Hi.
The responses are on an avg about 250K. But the object nesting is quite deep (4 or 5 levels) in the WSDL (and the proxy classes generated). We are sort of first clients to these services, but there are some stubs written in Java. We will try to measure deserialization performance in these clients. regards "Dan Rogers" wrote: > Hi, > > How big is the response? Are there other implementations of clients that > deserialize more rapidly? > > Regards > > Dan Rogers > Microsoft Corporation > -------------------- > >Thread-Topic: .net SOAP toolkit performance for SOAP deserialization > >thread-index: AcTIpKogGJkADvEfQymOXvVBC0AhVg== > >X-WBNR-Posting-Host: 203.123.182.26 > >From: =?Utf-8?B?UHJhYmh1?= <> > >Subject: .net SOAP toolkit performance for SOAP deserialization > >Date: Fri, 12 Nov 2004 02:45:02 -0800 > >Lines: 15 > >Message-ID: <476D5BFD-4063-4233-9CE4-> > >MIME-Version: 1.0 > >Content-Type: text/plain; > > charset="Utf-8" > >Content-Transfer-Encoding: 7bit > >X-Newsreader: Microsoft CDO for Windows 2000 > >Content-Class: urn:content-classes:message > >Importance: normal > >Priority: normal > >X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0 > >Newsgroups: microsoft.public.dotnet.framework.aspnet.webservic es > >NNTP-Posting-Host: TK2MSFTNGXA03.phx.gbl 10.40.1.29 > >Path: cpmsftngxa10.phx.gbl!TK2MSFTNGXA03.phx.gbl > >Xref: cpmsftngxa10.phx.gbl > microsoft.public.dotnet.framework.aspnet.webservic es:26495 > >X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet.webservic es > > > >Hi All. > >We are building an ASP.net application using C# & .net 1.1 framework. > >The ASP.net application consumes web services (Java/Apache Axis > >implementation) and we are facing issues that the application is very > slow. > > > >Initially we suspected network and server side responses as culprits. > >But on further investigation (we override GetWebResponse and GetWebRequest > >methods SOAPClient) we have found that the application is spending > >considerable amount of time (1+ minute) in deserializing the SOAP response > >from the server. > > > >We are using VS.net 2003 for generating the proxies. > > > >Has anyone faced such performance issues and any suggestions? > > > > > > |
|
|
|
|
|||
|
|||
| Prabhu |
|
Dan Rogers
Guest
Posts: n/a
|
In general a 250K response won't cause undue perf issues, nor will nesting
of a few levels. I would start to suspect constructor issues in the classes that the XML maps to, but without a neutral test based on a schema, and code output from a tool like XSD.exe or XsdObjectGen.exe, I'm unable to troubleshoot this further. If you can share schema or a reproducable end point where I can try this out, I can help you more. Regards, Dan -------------------- >Thread-Topic: .net SOAP toolkit performance for SOAP deserialization >thread-index: AcTLm4C6l0/0QdSwTn+csRydbUV2eg== >X-WBNR-Posting-Host: 203.123.182.26 >From: =?Utf-8?B?UHJhYmh1?= <> >References: <476D5BFD-4063-4233-9CE4-> <> >Subject: RE: .net SOAP toolkit performance for SOAP deserialization >Date: Mon, 15 Nov 2004 21:17:01 -0800 >Lines: 69 >Message-ID: <2E47E781-8883-4AAC-82AB-> >MIME-Version: 1.0 >Content-Type: text/plain; > charset="Utf-8" >Content-Transfer-Encoding: 7bit >X-Newsreader: Microsoft CDO for Windows 2000 >Content-Class: urn:content-classes:message >Importance: normal >Priority: normal >X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0 >Newsgroups: microsoft.public.dotnet.framework.aspnet.webservic es >NNTP-Posting-Host: TK2MSFTNGXA03.phx.gbl 10.40.1.29 >Path: cpmsftngxa10.phx.gbl!TK2MSFTNGXA01.phx.gbl!TK2MSFT NGXA03.phx.gbl >Xref: cpmsftngxa10.phx.gbl microsoft.public.dotnet.framework.aspnet.webservic es:26592 >X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet.webservic es > >Hi. >The responses are on an avg about 250K. >But the object nesting is quite deep (4 or 5 levels) in the WSDL (and the >proxy classes generated). > >We are sort of first clients to these services, but there are some stubs >written in Java. We will try to measure deserialization performance in these >clients. > >regards > > > > >"Dan Rogers" wrote: > >> Hi, >> >> How big is the response? Are there other implementations of clients that >> deserialize more rapidly? >> >> Regards >> >> Dan Rogers >> Microsoft Corporation >> -------------------- >> >Thread-Topic: .net SOAP toolkit performance for SOAP deserialization >> >thread-index: AcTIpKogGJkADvEfQymOXvVBC0AhVg== >> >X-WBNR-Posting-Host: 203.123.182.26 >> >From: =?Utf-8?B?UHJhYmh1?= <> >> >Subject: .net SOAP toolkit performance for SOAP deserialization >> >Date: Fri, 12 Nov 2004 02:45:02 -0800 >> >Lines: 15 >> >Message-ID: <476D5BFD-4063-4233-9CE4-> >> >MIME-Version: 1.0 >> >Content-Type: text/plain; >> > charset="Utf-8" >> >Content-Transfer-Encoding: 7bit >> >X-Newsreader: Microsoft CDO for Windows 2000 >> >Content-Class: urn:content-classes:message >> >Importance: normal >> >Priority: normal >> >X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0 >> >Newsgroups: microsoft.public.dotnet.framework.aspnet.webservic es >> >NNTP-Posting-Host: TK2MSFTNGXA03.phx.gbl 10.40.1.29 >> >Path: cpmsftngxa10.phx.gbl!TK2MSFTNGXA03.phx.gbl >> >Xref: cpmsftngxa10.phx.gbl >> microsoft.public.dotnet.framework.aspnet.webservic es:26495 >> >X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet.webservic es >> > >> >Hi All. >> >We are building an ASP.net application using C# & .net 1.1 framework. >> >The ASP.net application consumes web services (Java/Apache Axis >> >implementation) and we are facing issues that the application is very >> slow. >> > >> >Initially we suspected network and server side responses as culprits. >> >But on further investigation (we override GetWebResponse and GetWebRequest >> >methods SOAPClient) we have found that the application is spending >> >considerable amount of time (1+ minute) in deserializing the SOAP response >> >from the server. >> > >> >We are using VS.net 2003 for generating the proxies. >> > >> >Has anyone faced such performance issues and any suggestions? >> > >> > >> >> > |
|
|
|
|
|||
|
|||
| Dan Rogers |
|
Prabhu
Guest
Posts: n/a
|
Hi Dan.
Thanks for the help. I am pasting the WSDL of the service below. The operation that is most problematic is "getAirfareQuotes" Meanwhile we still are trying to get performance numbers for Java clients. I will update forum once we have some consistent results. regards - prabhu <?xml version="1.0" encoding="utf-8"?> <wsdl:definitions xmlns:s1="urn:BeanService" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s2="http://xxxxx" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://linuxdev.travel2.com/api/services/api" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://xxxx.com/api/services/api" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> <wsdl:types> <s:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://xxxxx.com/api/services/api"> <s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> <s:complexType name="ArrayOf_xsd_string"> <s:complexContent mixed="false"> <s:restriction base="soapenc:Array"> <s:attribute wsdl:arrayType="s:string[]" ref="soapenc:arrayType" /> </s:restriction> </s:complexContent> </s:complexType> <s:complexType name="ArrayOf_tns1_SeatAvailability"> <s:complexContent mixed="false"> <s:restriction base="soapenc:Array"> <s:attribute wsdl:arrayType="s1:SeatAvailability[]" ref="soapenc:arrayType" /> </s:restriction> </s:complexContent> </s:complexType> <s:complexType name="ArrayOf_tns1_Sector"> <s:complexContent mixed="false"> <s:restriction base="soapenc:Array"> <s:attribute wsdl:arrayType="s1:Sector[]" ref="soapenc:arrayType" /> </s:restriction> </s:complexContent> </s:complexType> <s:complexType name="ArrayOf_tns1_Leg"> <s:complexContent mixed="false"> <s:restriction base="soapenc:Array"> <s:attribute wsdl:arrayType="s1:Leg[]" ref="soapenc:arrayType" /> </s:restriction> </s:complexContent> </s:complexType> <s:complexType name="ArrayOf_tns1_RuleInfo"> <s:complexContent mixed="false"> <s:restriction base="soapenc:Array"> <s:attribute wsdl:arrayType="s1:RuleInfo[]" ref="soapenc:arrayType" /> </s:restriction> </s:complexContent> </s:complexType> <s:complexType name="ArrayOf_tns1_StringArray"> <s:complexContent mixed="false"> <s:restriction base="soapenc:Array"> <s:attribute wsdl:arrayType="s1:StringArray[]" ref="soapenc:arrayType" /> </s:restriction> </s:complexContent> </s:complexType> <s:complexType name="ArrayOf_tns1_FareDetail"> <s:complexContent mixed="false"> <s:restriction base="soapenc:Array"> <s:attribute wsdl:arrayType="s1:FareDetail[]" ref="soapenc:arrayType" /> </s:restriction> </s:complexContent> </s:complexType> </s:schema> <s:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:BeanService"> <s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> <s:complexType name="FareId"> <s:sequence> <s:element name="contractId" nillable="true" type="s:string" /> <s:element name="contractedFare" type="s:boolean" /> <s:element name="destination" nillable="true" type="s:string" /> <s:element name="issuedDate" type="s:long" /> <s:element name="origin" nillable="true" type="s:string" /> <s:element name="publishedFare" type="s:boolean" /> <s:element name="publishedFareBasis" nillable="true" type="s:string" /> <s:element name="routeRef" type="s:int" /> </s:sequence> </s:complexType> <s:complexType name="SearchParams"> <s:sequence> <s:element name="airlineCode" nillable="true" type="s:string" /> <s:element name="cabinClassCode" nillable="true" type="s:string" /> <s:element name="departureDate" type="s:long" /> <s:element name="destinationCode" nillable="true" type="s:string" /> <s:element name="numAdults" type="s:int" /> <s:element name="numChildren" type="s:int" /> <s:element name="originCode" nillable="true" type="s:string" /> <s:element name="quickFareCommand" nillable="true" type="s:string" /> <s:element name="returnDate" type="s:long" /> <s:element name="usingQuickFare" type="s:boolean" /> </s:sequence> </s:complexType> <s:complexType name="AvailabilityRequest"> <s:sequence> <s:element name="fareId" nillable="true" type="s1:FareId" /> <s:element name="searchParams" nillable="true" type="s1:SearchParams" /> <s:element name="threeDaySearch" type="s:boolean" /> </s:sequence> </s:complexType> <s:complexType name="AgentId"> <s:sequence> <s:element name="accountCode" nillable="true" type="s:string" /> <s:element name="atol" type="s:boolean" /> <s:element name="branchNumber" type="s:int" /> <s:element name="consortiaMemberId" type="s:int" /> </s:sequence> </s:complexType> <s:complexType name="RuleInfo"> <s:sequence> <s:element name="freeText" nillable="true" type="s:string" /> <s:element name="name" nillable="true" type="s:string" /> </s:sequence> </s:complexType> <s:complexType name="BasicSector"> <s:sequence> <s:element name="airlineCode" nillable="true" type="s:string" /> <s:element name="arrivalDateAndTime" type="s:long" /> <s:element name="departureDateAndTime" type="s:long" /> <s:element name="destinationCode" nillable="true" type="s:string" /> <s:element name="flightDurationHrs" type="s:int" /> <s:element name="flightDurationMins" type="s:int" /> <s:element name="flightNumber" nillable="true" type="s:string" /> <s:element name="operatorCode" nillable="true" type="s:string" /> <s:element name="originCode" nillable="true" type="s:string" /> <s:element name="touchDowns" type="s:int" /> </s:sequence> </s:complexType> <s:complexType name="SeatAvailability"> <s:sequence> <s:element name="bookClass" nillable="true" type="s:string" /> <s:element name="numSeatsAvailable" type="s:int" /> </s:sequence> </s:complexType> <s:complexType name="Sector"> <s:complexContent mixed="false"> <s:extension base="s1:BasicSector"> <s:sequence> <s:element name="aircraftTypeCode" nillable="true" type="s:string" /> <s:element name="destinationName" nillable="true" type="s:string" /> <s:element name="originName" nillable="true" type="s:string" /> <s:element name="remarks" nillable="true" type="s:string" /> <s:element name="seatAvailability" nillable="true" type="tns:ArrayOf_tns1_SeatAvailability" /> <s:element name="statusStr" nillable="true" type="s:string" /> </s:sequence> </s:extension> </s:complexContent> </s:complexType> <s:complexType name="Leg"> <s:sequence> <s:element name="journeyDurationHrs" type="s:int" /> <s:element name="journeyDurationMins" type="s:int" /> <s:element name="sectors" nillable="true" type="tns:ArrayOf_tns1_Sector" /> </s:sequence> </s:complexType> <s:complexType name="CustomerFareBreakdown"> <s:sequence> <s:element name="adultCount" type="s:int" /> <s:element name="allAdultsFare" type="s:double" /> <s:element name="allAdultsINA" type="s:double" /> <s:element name="allAdultsTax" type="s:double" /> <s:element name="allChildrenFare" type="s:double" /> <s:element name="allChildrenINA" type="s:double" /> <s:element name="allChildrenTax" type="s:double" /> <s:element name="childCount" type="s:int" /> <s:element name="partyTotal" type="s:double" /> <s:element name="perAdultFare" type="s:int" /> <s:element name="perAdultINA" type="s:double" /> <s:element name="perAdultTax" type="s:double" /> <s:element name="perAdultTotal" type="s:double" /> <s:element name="perChildFare" type="s:int" /> <s:element name="perChildINA" type="s:double" /> <s:element name="perChildTax" type="s:double" /> <s:element name="perChildTotal" type="s:double" /> </s:sequence> </s:complexType> <s:complexType name="RequoteAirfareRequest"> <s:sequence> <s:element name="agentId" nillable="true" type="s1:AgentId" /> <s:element name="consumerFacing" type="s:boolean" /> <s:element name="fareId" nillable="true" type="s1:FareId" /> <s:element name="inboundClasses" nillable="true" type="s:string" /> <s:element name="inboundLeg" nillable="true" type="s1:Leg" /> <s:element name="originalQuote" nillable="true" type="s1:CustomerFareBreakdown" /> <s:element name="outboundClasses" nillable="true" type="s:string" /> <s:element name="outboundLeg" nillable="true" type="s1:Leg" /> <s:element name="searchParams" nillable="true" type="s1:SearchParams" /> </s:sequence> </s:complexType> <s:complexType name="AgentFareBreakdown"> <s:sequence> <s:element name="INA" type="s:double" /> <s:element name="bookingId" nillable="true" type="s1:BookingId" /> <s:element name="nettDue" type="s:double" /> <s:element name="nettFare" type="s:double" /> <s:element name="paidAccrued" type="s:double" /> <s:element name="tax" type="s:double" /> </s:sequence> </s:complexType> <s:complexType name="Availability"> <s:sequence> <s:element name="eitherLegMissing" type="s:boolean" /> <s:element name="inboundClasses" nillable="true" type="tns:ArrayOf_xsd_string" /> <s:element name="inboundLegMissing" type="s:boolean" /> <s:element name="inboundLegs" nillable="true" type="tns:ArrayOf_tns1_Leg" /> <s:element name="outboundClasses" nillable="true" type="tns:ArrayOf_xsd_string" /> <s:element name="outboundLegMissing" type="s:boolean" /> <s:element name="outboundLegs" nillable="true" type="tns:ArrayOf_tns1_Leg" /> <s:element name="returnTrip" type="s:boolean" /> </s:sequence> </s:complexType> <s:complexType name="StringArray"> <s:sequence> <s:element name="value" nillable="true" type="tns:ArrayOf_xsd_string" /> </s:sequence> </s:complexType> <s:complexType name="FareDetail"> <s:sequence> <s:element name="agentBreakdown" nillable="true" type="s1:AgentFareBreakdown" /> <s:element name="airlineCode" nillable="true" type="s:string" /> <s:element name="availability" nillable="true" type="s1:Availability" /> <s:element name="bookable" type="s:boolean" /> <s:element name="bookingClasses" nillable="true" type="s:string" /> <s:element name="cabinClassCode" nillable="true" type="s:string" /> <s:element name="destinationCode" nillable="true" type="s:string" /> <s:element name="destinationName" nillable="true" type="s:string" /> <s:element name="displayableRules" nillable="true" type="tns:ArrayOf_tns1_RuleInfo" /> <s:element name="fareBreakdown" nillable="true" type="s1:CustomerFareBreakdown" /> <s:element name="fareId" nillable="true" type="s1:FareId" /> <s:element name="fareSeasonFromDate" type="s:long" /> <s:element name="fareSeasonToDate" type="s:long" /> <s:element name="inboundAvailable" type="s:boolean" /> <s:element name="originCode" nillable="true" type="s:string" /> <s:element name="originName" nillable="true" type="s:string" /> <s:element name="outboundAvailable" type="s:boolean" /> <s:element name="touchdownCount" type="s:int" /> <s:element name="transitAirports" nillable="true" type="tns:ArrayOf_tns1_StringArray" /> <s:element name="validity" nillable="true" type="s:string" /> </s:sequence> </s:complexType> <s:complexType name="AirfareQuotesResponse"> <s:sequence> <s:element name="fareDetails" nillable="true" type="tns:ArrayOf_tns1_FareDetail" /> <s:element name="moreAvailable" type="s:boolean" /> </s:sequence> </s:complexType> <s:complexType name="AirfareQuotesRequest"> <s:sequence> <s:element name="agentId" nillable="true" type="s1:AgentId" /> <s:element name="availabilityRequired" type="s:boolean" /> <s:element name="consumerFacing" type="s:boolean" /> <s:element name="priorFareId" nillable="true" type="s1:FareId" /> <s:element name="searchParams" nillable="true" type="s1:SearchParams" /> </s:sequence> </s:complexType> <s:complexType name="NonAtolAgentFareBreakdown"> <s:complexContent mixed="false"> <s:extension base="s1:AgentFareBreakdown"> <s:sequence> <s:element name="commission" type="s:double" /> <s:element name="grossFare" type="s:double" /> <s:element name="grossTotal" type="s:double" /> <s:element name="nettTotal" type="s:double" /> <s:element name="vatOnCommission" type="s:double" /> </s:sequence> </s:extension> </s:complexContent> </s:complexType> </s:schema> <s:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://xxx.com"> <s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> <s:complexType name="APIException"> <s:sequence /> </s:complexType> </s:schema> </wsdl:types> <wsdl:message name="getAirfareQuotesRequest"> <wsdl </wsdl:message> <wsdl:message name="getAirfareQuotesResponse"> <wsdl /> </wsdl:message> <wsdl:message name="APIException"> <wsdl </wsdl:message> <wsdl <wsdl <wsdl:input name="getAirfareQuotesRequest" message="tns:getAirfareQuotesRequest" /> <wsdl message="tns:getAirfareQuotesResponse" /> <wsdl:fault name="APIException" message="tns:APIException" /> </wsdl </wsdl <wsdl:binding name="apiSoapBinding" type="tns:API"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" /> <wsdl <soap <wsdl:input name="getAirfareQuotesRequest"> <soap:body use="encoded" namespace="http://websrv.fbse.travel2.com" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </wsdl:input> <wsdl <soap:body use="encoded" namespace="http://someserver.com/api/services/api" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </wsdl <wsdl:fault name="APIException"> <soap:fault use="encoded" namespace="http://someserver.com/api/services/api" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </wsdl:fault> </wsdl </wsdl:binding> <wsdl:service name="APIService"> <wsdl <soap:address location="http://testapi_host/api/services/api" /> </wsdl </wsdl:service> </wsdl:definitions> "Dan Rogers" wrote: > In general a 250K response won't cause undue perf issues, nor will nesting > of a few levels. I would start to suspect constructor issues in the > classes that the XML maps to, but without a neutral test based on a schema, > and code output from a tool like XSD.exe or XsdObjectGen.exe, I'm unable to > troubleshoot this further. > > If you can share schema or a reproducable end point where I can try this > out, I can help you more. > > Regards, > > Dan |
|
|
|
|
|||
|
|||
| Prabhu |
|
Dan Rogers
Guest
Posts: n/a
|
Hi Prabhu,
These are pretty big, and pretty complex message structures. I'd not be surprized if you are experiencing constuction delays because of all of the repeating array of array of array nesting going on. Have you the ability to switch this service design over to a document literal design instead of an encoded design? In that approach, you'd have more complicated class member types, but you might see a difference in how the "constructor" delay is effecting your performance (if it is a constructor delay at all). In other words, have you thought about schematizing this design and not treating the data as arrays of types that contain other arrays? I can't promise it would help, but I've been able to get awesome performance in literal design, and also this would make the service design more interoperable and follow interop guidelines such as those published on WS-I.org. Hope this helps Dan -------------------- >Thread-Topic: .net SOAP toolkit performance for SOAP deserialization >thread-index: AcTMbiucldCHmwceQhWWXfbd5wyA7Q== >X-WBNR-Posting-Host: 203.123.182.26 >From: =?Utf-8?B?UHJhYmh1?= <> >References: <476D5BFD-4063-4233-9CE4-> <> <2E47E781-8883-4AAC-82AB-> <> >Subject: RE: .net SOAP toolkit performance for SOAP deserialization >Date: Tue, 16 Nov 2004 22:25:02 -0800 >Lines: 380 >Message-ID: <6836D7E7-EC45-42F4-BA21-> >MIME-Version: 1.0 >Content-Type: text/plain; > charset="Utf-8" >Content-Transfer-Encoding: 7bit >X-Newsreader: Microsoft CDO for Windows 2000 >Content-Class: urn:content-classes:message >Importance: normal >Priority: normal >X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0 >Newsgroups: microsoft.public.dotnet.framework.aspnet.webservic es >NNTP-Posting-Host: TK2MSFTNGXA03.phx.gbl 10.40.1.29 >Path: cpmsftngxa10.phx.gbl!TK2MSFTNGXA01.phx.gbl!TK2MSFT NGXA03.phx.gbl >Xref: cpmsftngxa10.phx.gbl microsoft.public.dotnet.framework.aspnet.webservic es:26656 >X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet.webservic es > >Hi Dan. >Thanks for the help. >I am pasting the WSDL of the service below. The operation that is most >problematic is "getAirfareQuotes" > >Meanwhile we still are trying to get performance numbers for Java clients. I >will update forum once we have some consistent results. >regards >- prabhu > ><?xml version="1.0" encoding="utf-8"?> ><wsdl:definitions xmlns:s1="urn:BeanService" >xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" >xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" >xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s2="http://xxxxx" >xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" >xmlns:tns="http://linuxdev.travel2.com/api/services/api" >xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" >xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" >targetNamespace="http://xxxx.com/api/services/api" >xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> > <wsdl:types> > <s:schema xmlns="http://www.w3.org/2001/XMLSchema" >targetNamespace="http://xxxxx.com/api/services/api"> > <s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> > <s:complexType name="ArrayOf_xsd_string"> > <s:complexContent mixed="false"> > <s:restriction base="soapenc:Array"> > <s:attribute wsdl:arrayType="s:string[]" ref="soapenc:arrayType" >/> > </s:restriction> > </s:complexContent> > </s:complexType> > <s:complexType name="ArrayOf_tns1_SeatAvailability"> > <s:complexContent mixed="false"> > <s:restriction base="soapenc:Array"> > <s:attribute wsdl:arrayType="s1:SeatAvailability[]" >ref="soapenc:arrayType" /> > </s:restriction> > </s:complexContent> > </s:complexType> > <s:complexType name="ArrayOf_tns1_Sector"> > <s:complexContent mixed="false"> > <s:restriction base="soapenc:Array"> > <s:attribute wsdl:arrayType="s1:Sector[]" >ref="soapenc:arrayType" /> > </s:restriction> > </s:complexContent> > </s:complexType> > <s:complexType name="ArrayOf_tns1_Leg"> > <s:complexContent mixed="false"> > <s:restriction base="soapenc:Array"> > <s:attribute wsdl:arrayType="s1:Leg[]" ref="soapenc:arrayType" /> > </s:restriction> > </s:complexContent> > </s:complexType> > <s:complexType name="ArrayOf_tns1_RuleInfo"> > <s:complexContent mixed="false"> > <s:restriction base="soapenc:Array"> > <s:attribute wsdl:arrayType="s1:RuleInfo[]" >ref="soapenc:arrayType" /> > </s:restriction> > </s:complexContent> > </s:complexType> > <s:complexType name="ArrayOf_tns1_StringArray"> > <s:complexContent mixed="false"> > <s:restriction base="soapenc:Array"> > <s:attribute wsdl:arrayType="s1:StringArray[]" >ref="soapenc:arrayType" /> > </s:restriction> > </s:complexContent> > </s:complexType> > <s:complexType name="ArrayOf_tns1_FareDetail"> > <s:complexContent mixed="false"> > <s:restriction base="soapenc:Array"> > <s:attribute wsdl:arrayType="s1:FareDetail[]" >ref="soapenc:arrayType" /> > </s:restriction> > </s:complexContent> > </s:complexType> > </s:schema> > <s:schema xmlns="http://www.w3.org/2001/XMLSchema" >targetNamespace="urn:BeanService"> > <s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> > <s:complexType name="FareId"> > <s:sequence> > <s:element name="contractId" nillable="true" type="s:string" /> > <s:element name="contractedFare" type="s:boolean" /> > <s:element name="destination" nillable="true" type="s:string" /> > <s:element name="issuedDate" type="s:long" /> > <s:element name="origin" nillable="true" type="s:string" /> > <s:element name="publishedFare" type="s:boolean" /> > <s:element name="publishedFareBasis" nillable="true" >type="s:string" /> > <s:element name="routeRef" type="s:int" /> > </s:sequence> > </s:complexType> > <s:complexType name="SearchParams"> > <s:sequence> > <s:element name="airlineCode" nillable="true" type="s:string" /> > <s:element name="cabinClassCode" nillable="true" type="s:string" /> > <s:element name="departureDate" type="s:long" /> > <s:element name="destinationCode" nillable="true" type="s:string" /> > <s:element name="numAdults" type="s:int" /> > <s:element name="numChildren" type="s:int" /> > <s:element name="originCode" nillable="true" type="s:string" /> > <s:element name="quickFareCommand" nillable="true" type="s:string" >/> > <s:element name="returnDate" type="s:long" /> > <s:element name="usingQuickFare" type="s:boolean" /> > </s:sequence> > </s:complexType> > <s:complexType name="AvailabilityRequest"> > <s:sequence> > <s:element name="fareId" nillable="true" type="s1:FareId" /> > <s:element name="searchParams" nillable="true" >type="s1:SearchParams" /> > <s:element name="threeDaySearch" type="s:boolean" /> > </s:sequence> > </s:complexType> > <s:complexType name="AgentId"> > <s:sequence> > <s:element name="accountCode" nillable="true" type="s:string" /> > <s:element name="atol" type="s:boolean" /> > <s:element name="branchNumber" type="s:int" /> > <s:element name="consortiaMemberId" type="s:int" /> > </s:sequence> > </s:complexType> > <s:complexType name="RuleInfo"> > <s:sequence> > <s:element name="freeText" nillable="true" type="s:string" /> > <s:element name="name" nillable="true" type="s:string" /> > </s:sequence> > </s:complexType> > <s:complexType name="BasicSector"> > <s:sequence> > <s:element name="airlineCode" nillable="true" type="s:string" /> > <s:element name="arrivalDateAndTime" type="s:long" /> > <s:element name="departureDateAndTime" type="s:long" /> > <s:element name="destinationCode" nillable="true" type="s:string" /> > <s:element name="flightDurationHrs" type="s:int" /> > <s:element name="flightDurationMins" type="s:int" /> > <s:element name="flightNumber" nillable="true" type="s:string" /> > <s:element name="operatorCode" nillable="true" type="s:string" /> > <s:element name="originCode" nillable="true" type="s:string" /> > <s:element name="touchDowns" type="s:int" /> > </s:sequence> > </s:complexType> > <s:complexType name="SeatAvailability"> > <s:sequence> > <s:element name="bookClass" nillable="true" type="s:string" /> > <s:element name="numSeatsAvailable" type="s:int" /> > </s:sequence> > </s:complexType> > <s:complexType name="Sector"> > <s:complexContent mixed="false"> > <s:extension base="s1:BasicSector"> > <s:sequence> > <s:element name="aircraftTypeCode" nillable="true" >type="s:string" /> > <s:element name="destinationName" nillable="true" >type="s:string" /> > <s:element name="originName" nillable="true" type="s:string" /> > <s:element name="remarks" nillable="true" type="s:string" /> > <s:element name="seatAvailability" nillable="true" >type="tns:ArrayOf_tns1_SeatAvailability" /> > <s:element name="statusStr" nillable="true" type="s:string" /> > </s:sequence> > </s:extension> > </s:complexContent> > </s:complexType> > <s:complexType name="Leg"> > <s:sequence> > <s:element name="journeyDurationHrs" type="s:int" /> > <s:element name="journeyDurationMins" type="s:int" /> > <s:element name="sectors" nillable="true" >type="tns:ArrayOf_tns1_Sector" /> > </s:sequence> > </s:complexType> > <s:complexType name="CustomerFareBreakdown"> > <s:sequence> > <s:element name="adultCount" type="s:int" /> > <s:element name="allAdultsFare" type="s:double" /> > <s:element name="allAdultsINA" type="s:double" /> > <s:element name="allAdultsTax" type="s:double" /> > <s:element name="allChildrenFare" type="s:double" /> > <s:element name="allChildrenINA" type="s:double" /> > <s:element name="allChildrenTax" type="s:double" /> > <s:element name="childCount" type="s:int" /> > <s:element name="partyTotal" type="s:double" /> > <s:element name="perAdultFare" type="s:int" /> > <s:element name="perAdultINA" type="s:double" /> > <s:element name="perAdultTax" type="s:double" /> > <s:element name="perAdultTotal" type="s:double" /> > <s:element name="perChildFare" type="s:int" /> > <s:element name="perChildINA" type="s:double" /> > <s:element name="perChildTax" type="s:double" /> > <s:element name="perChildTotal" type="s:double" /> > </s:sequence> > </s:complexType> > <s:complexType name="RequoteAirfareRequest"> > <s:sequence> > <s:element name="agentId" nillable="true" type="s1:AgentId" /> > <s:element name="consumerFacing" type="s:boolean" /> > <s:element name="fareId" nillable="true" type="s1:FareId" /> > <s:element name="inboundClasses" nillable="true" type="s:string" /> > <s:element name="inboundLeg" nillable="true" type="s1:Leg" /> > <s:element name="originalQuote" nillable="true" >type="s1:CustomerFareBreakdown" /> > <s:element name="outboundClasses" nillable="true" type="s:string" /> > <s:element name="outboundLeg" nillable="true" type="s1:Leg" /> > <s:element name="searchParams" nillable="true" >type="s1:SearchParams" /> > </s:sequence> > </s:complexType> > <s:complexType name="AgentFareBreakdown"> > <s:sequence> > <s:element name="INA" type="s:double" /> > <s:element name="bookingId" nillable="true" type="s1:BookingId" /> > <s:element name="nettDue" type="s:double" /> > <s:element name="nettFare" type="s:double" /> > <s:element name="paidAccrued" type="s:double" /> > <s:element name="tax" type="s:double" /> > </s:sequence> > </s:complexType> > <s:complexType name="Availability"> > <s:sequence> > <s:element name="eitherLegMissing" type="s:boolean" /> > <s:element name="inboundClasses" nillable="true" >type="tns:ArrayOf_xsd_string" /> > <s:element name="inboundLegMissing" type="s:boolean" /> > <s:element name="inboundLegs" nillable="true" >type="tns:ArrayOf_tns1_Leg" /> > <s:element name="outboundClasses" nillable="true" >type="tns:ArrayOf_xsd_string" /> > <s:element name="outboundLegMissing" type="s:boolean" /> > <s:element name="outboundLegs" nillable="true" >type="tns:ArrayOf_tns1_Leg" /> > <s:element name="returnTrip" type="s:boolean" /> > </s:sequence> > </s:complexType> > <s:complexType name="StringArray"> > <s:sequence> > <s:element name="value" nillable="true" >type="tns:ArrayOf_xsd_string" /> > </s:sequence> > </s:complexType> > <s:complexType name="FareDetail"> > <s:sequence> > <s:element name="agentBreakdown" nillable="true" >type="s1:AgentFareBreakdown" /> > <s:element name="airlineCode" nillable="true" type="s:string" /> > <s:element name="availability" nillable="true" >type="s1:Availability" /> > <s:element name="bookable" type="s:boolean" /> > <s:element name="bookingClasses" nillable="true" type="s:string" /> > <s:element name="cabinClassCode" nillable="true" type="s:string" /> > <s:element name="destinationCode" nillable="true" type="s:string" /> > <s:element name="destinationName" nillable="true" type="s:string" /> > <s:element name="displayableRules" nillable="true" >type="tns:ArrayOf_tns1_RuleInfo" /> > <s:element name="fareBreakdown" nillable="true" >type="s1:CustomerFareBreakdown" /> > <s:element name="fareId" nillable="true" type="s1:FareId" /> > <s:element name="fareSeasonFromDate" type="s:long" /> > <s:element name="fareSeasonToDate" type="s:long" /> > <s:element name="inboundAvailable" type="s:boolean" /> > <s:element name="originCode" nillable="true" type="s:string" /> > <s:element name="originName" nillable="true" type="s:string" /> > <s:element name="outboundAvailable" type="s:boolean" /> > <s:element name="touchdownCount" type="s:int" /> > <s:element name="transitAirports" nillable="true" >type="tns:ArrayOf_tns1_StringArray" /> > <s:element name="validity" nillable="true" type="s:string" /> > </s:sequence> > </s:complexType> > <s:complexType name="AirfareQuotesResponse"> > <s:sequence> > <s:element name="fareDetails" nillable="true" >type="tns:ArrayOf_tns1_FareDetail" /> > <s:element name="moreAvailable" type="s:boolean" /> > </s:sequence> > </s:complexType> > <s:complexType name="AirfareQuotesRequest"> > <s:sequence> > <s:element name="agentId" nillable="true" type="s1:AgentId" /> > <s:element name="availabilityRequired" type="s:boolean" /> > <s:element name="consumerFacing" type="s:boolean" /> > <s:element name="priorFareId" nillable="true" type="s1:FareId" /> > <s:element name="searchParams" nillable="true" >type="s1:SearchParams" /> > </s:sequence> > </s:complexType> > <s:complexType name="NonAtolAgentFareBreakdown"> > <s:complexContent mixed="false"> > <s:extension base="s1:AgentFareBreakdown"> > <s:sequence> > <s:element name="commission" type="s:double" /> > <s:element name="grossFare" type="s:double" /> > <s:element name="grossTotal" type="s:double" /> > <s:element name="nettTotal" type="s:double" /> > <s:element name="vatOnCommission" type="s:double" /> > </s:sequence> > </s:extension> > </s:complexContent> > </s:complexType> > </s:schema> > <s:schema xmlns="http://www.w3.org/2001/XMLSchema" >targetNamespace="http://xxx.com"> > <s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> > <s:complexType name="APIException"> > <s:sequence /> > </s:complexType> > </s:schema> > </wsdl:types> > <wsdl:message name="getAirfareQuotesRequest"> > <wsdl > </wsdl:message> > <wsdl:message name="getAirfareQuotesResponse"> > <wsdl type="s1:AirfareQuotesResponse" >/> > </wsdl:message> > <wsdl:message name="APIException"> > <wsdl > </wsdl:message> > <wsdl > <wsdl > <wsdl:input name="getAirfareQuotesRequest" >message="tns:getAirfareQuotesRequest" /> > <wsdl >message="tns:getAirfareQuotesResponse" /> > <wsdl:fault name="APIException" message="tns:APIException" /> > </wsdl > </wsdl > <wsdl:binding name="apiSoapBinding" type="tns:API"> > <soap:binding transport="http://schemas.xmlsoap.org/soap/http" >style="rpc" /> > <wsdl > <soap > <wsdl:input name="getAirfareQuotesRequest"> > <soap:body use="encoded" namespace="http://websrv.fbse.travel2.com" >encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> > </wsdl:input> > <wsdl > <soap:body use="encoded" >namespace="http://someserver.com/api/services/api" >encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> > </wsdl > <wsdl:fault name="APIException"> > <soap:fault use="encoded" >namespace="http://someserver.com/api/services/api" >encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> > </wsdl:fault> > </wsdl > </wsdl:binding> > <wsdl:service name="APIService"> > <wsdl > <soap:address location="http://testapi_host/api/services/api" /> > </wsdl > </wsdl:service> ></wsdl:definitions> > > > > >"Dan Rogers" wrote: > >> In general a 250K response won't cause undue perf issues, nor will nesting >> of a few levels. I would start to suspect constructor issues in the >> classes that the XML maps to, but without a neutral test based on a schema, >> and code output from a tool like XSD.exe or XsdObjectGen.exe, I'm unable to >> troubleshoot this further. >> >> If you can share schema or a reproducable end point where I can try this >> out, I can help you more. >> >> Regards, >> >> Dan > > |
|
|
|
|
|||
|
|||
| Dan Rogers |
|
|
|
| |
![]() |
| Thread Tools | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| performance issue on an asp.net page using ajax.net toolkit | Abubakar | ASP .Net | 0 | 08-31-2008 03:14 PM |
| Deserialization Error--End Of Stream | =?Utf-8?B?U29sZWwgU29mdHdhcmU=?= | ASP .Net | 1 | 07-30-2004 02:31 AM |
| Serialization/Deserialization or XML as DB | umbertoeklat@yahoo.com | ASP .Net | 3 | 05-14-2004 03:47 PM |
| Serialization/Deserialization or XML as DB | umbertoeklat@yahoo.com | ASP .Net | 3 | 05-14-2004 03:47 PM |
| SOAP Client creation in ASP.NET using MS SOAP Toolkit | Sham Ramakrishnan | ASP .Net | 2 | 07-01-2003 11:29 AM |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc..
SEO by vBSEO ©2010, Crawlability, Inc. |




