Bad performance on SOAP call

Discussion in 'ASP .Net Web Services' started by Werner Willemsens, Oct 23, 2006.

  1. Hi,

    I have the following situation. COM server exposed on Windows CE 5.0 through
    SOAP (SOAP toolkit)
    C# client on XP calls methods on (COM)SOAP server.
    The complete call takes 527msec. Why is it so much?
    The SOAP method call is very simple : a COM method with 1 argument (long)
    The Ethereal logging shows that the CE server side responsiveness is good,
    but the XP C# client waits a very long time before he gives an ack
    on the previous TCP message initiated by the CE server.
    Why does it take so long on the XP side to give the acknowledge? This makes
    the SOAP implementation VEEERRRYYY slow compared to for example DCOM. I can
    make the
    same call with DCOM in less than 2msec.

    CE side = Pentium M 1.3Ghz, Windows CE 5.0
    XP side = Pentium 4 2.66Ghz, Windows XP Pro SP2, .NET 2.0, WebServices 3
    installed
    I am not using any authentication (anonymous) or security

    Ethereal trace
    1 0.000000 192.168.2.40 -> 192.168.2.48 TCP [TCP segment of a reassembled
    PDU]
    2 0.119940 192.168.2.48 -> 192.168.2.40 TCP http > 1442 [ACK] Seq=0
    Ack=307 Win=32406 Len=0
    3 0.119968 192.168.2.40 -> 192.168.2.48 HTTP POST /GateWS.wsdl HTTP/1.1
    4.0.120142 192.168.2.48 -> 192.168.2.40 TCP http > 1442 [ACK] Seq=0
    Ack=867 Win=32580 Len=0
    5 0.120677 192.168.2.48 -> 192.168.2.40 TCP [TCP segment of a reassembled
    PDU]
    6 0.309083 192.168.2.40 -> 192.168.2.48 TCP 1442 > http [ACK] Seq=867
    Ack=185 Win=64842 Len=0
    7 0.309211 192.168.2.48 -> 192.168.2.40 HTTP HTTP/1.0 200 OK
    8 0.527824 192.168.2.40 -> 192.168.2.48 TCP 1442 > http [ACK] Seq=867
    Ack=508 Win=64519 Len=0

    CE server = 192.168.2.48
    XP client = 192.168.2.40

    1 = Initial call from client to server "POST /GateWS.wsdl"
    2 = Acknowledge of message 1 by server
    3 = Call SOAP method
    4 = Acknowledge of message 3 by server
    5 = "HTTP1.0 200 OK"
    6 = Acknowledge of message 5 by client
    7 = SOAP call response
    8 = Acknowledge of message 7 by client


    Werner
     
    Werner Willemsens, Oct 23, 2006
    #1
    1. Advertising

  2. Werner Willemsens

    Guest

    Hallo Werner,
    I have a suspicion of TCP window or frame in your case. Please try to
    send some larger data amout first time (to 65535 bytes). I thing your
    communication will be faster with send repetitions.
    And just in case, I recommend you to read this:
    http://www.ssfnet.org/Exchange/tcp/tcpTutorialNotes.html
    which is a nice intro into TCP.

    good luck, Martin

    Werner Willemsens wrote:
    > Hi,
    >
    > I have the following situation. COM server exposed on Windows CE 5.0 through
    > SOAP (SOAP toolkit)
    > C# client on XP calls methods on (COM)SOAP server.
    > The complete call takes 527msec. Why is it so much?
    > The SOAP method call is very simple : a COM method with 1 argument (long)
    > The Ethereal logging shows that the CE server side responsiveness is good,
    > but the XP C# client waits a very long time before he gives an ack
    > on the previous TCP message initiated by the CE server.
    > Why does it take so long on the XP side to give the acknowledge? This makes
    > the SOAP implementation VEEERRRYYY slow compared to for example DCOM. I can
    > make the
    > same call with DCOM in less than 2msec.
    >
    > CE side = Pentium M 1.3Ghz, Windows CE 5.0
    > XP side = Pentium 4 2.66Ghz, Windows XP Pro SP2, .NET 2.0, WebServices 3
    > installed
    > I am not using any authentication (anonymous) or security
    >
    > Ethereal trace
    > 1 0.000000 192.168.2.40 -> 192.168.2.48 TCP [TCP segment of a reassembled
    > PDU]
    > 2 0.119940 192.168.2.48 -> 192.168.2.40 TCP http > 1442 [ACK] Seq=0
    > Ack=307 Win=32406 Len=0
    > 3 0.119968 192.168.2.40 -> 192.168.2.48 HTTP POST /GateWS.wsdl HTTP/1.1
    > 4.0.120142 192.168.2.48 -> 192.168.2.40 TCP http > 1442 [ACK] Seq=0
    > Ack=867 Win=32580 Len=0
    > 5 0.120677 192.168.2.48 -> 192.168.2.40 TCP [TCP segment of a reassembled
    > PDU]
    > 6 0.309083 192.168.2.40 -> 192.168.2.48 TCP 1442 > http [ACK] Seq=867
    > Ack=185 Win=64842 Len=0
    > 7 0.309211 192.168.2.48 -> 192.168.2.40 HTTP HTTP/1.0 200 OK
    > 8 0.527824 192.168.2.40 -> 192.168.2.48 TCP 1442 > http [ACK] Seq=867
    > Ack=508 Win=64519 Len=0
    >
    > CE server = 192.168.2.48
    > XP client = 192.168.2.40
    >
    > 1 = Initial call from client to server "POST /GateWS.wsdl"
    > 2 = Acknowledge of message 1 by server
    > 3 = Call SOAP method
    > 4 = Acknowledge of message 3 by server
    > 5 = "HTTP1.0 200 OK"
    > 6 = Acknowledge of message 5 by client
    > 7 = SOAP call response
    > 8 = Acknowledge of message 7 by client
    >
    >
    > Werner
     
    , Oct 24, 2006
    #2
    1. Advertising

  3. Found solution. It has to do with Windows XP regsitry setting
    TcpAckFrequency.
    I changed it from 2 to 1. Now there is no additional delay
    See also
    http://support.microsoft.com/kb/815230
    http://support.microsoft.com/kb/328890



    <> wrote in message
    news:...
    > Hallo Werner,
    > I have a suspicion of TCP window or frame in your case. Please try to
    > send some larger data amout first time (to 65535 bytes). I thing your
    > communication will be faster with send repetitions.
    > And just in case, I recommend you to read this:
    > http://www.ssfnet.org/Exchange/tcp/tcpTutorialNotes.html
    > which is a nice intro into TCP.
    >
    > good luck, Martin
    >
    > Werner Willemsens wrote:
    >> Hi,
    >>
    >> I have the following situation. COM server exposed on Windows CE 5.0
    >> through
    >> SOAP (SOAP toolkit)
    >> C# client on XP calls methods on (COM)SOAP server.
    >> The complete call takes 527msec. Why is it so much?
    >> The SOAP method call is very simple : a COM method with 1 argument (long)
    >> The Ethereal logging shows that the CE server side responsiveness is
    >> good,
    >> but the XP C# client waits a very long time before he gives an ack
    >> on the previous TCP message initiated by the CE server.
    >> Why does it take so long on the XP side to give the acknowledge? This
    >> makes
    >> the SOAP implementation VEEERRRYYY slow compared to for example DCOM. I
    >> can
    >> make the
    >> same call with DCOM in less than 2msec.
    >>
    >> CE side = Pentium M 1.3Ghz, Windows CE 5.0
    >> XP side = Pentium 4 2.66Ghz, Windows XP Pro SP2, .NET 2.0, WebServices 3
    >> installed
    >> I am not using any authentication (anonymous) or security
    >>
    >> Ethereal trace
    >> 1 0.000000 192.168.2.40 -> 192.168.2.48 TCP [TCP segment of a
    >> reassembled
    >> PDU]
    >> 2 0.119940 192.168.2.48 -> 192.168.2.40 TCP http > 1442 [ACK] Seq=0
    >> Ack=307 Win=32406 Len=0
    >> 3 0.119968 192.168.2.40 -> 192.168.2.48 HTTP POST /GateWS.wsdl HTTP/1.1
    >> 4.0.120142 192.168.2.48 -> 192.168.2.40 TCP http > 1442 [ACK] Seq=0
    >> Ack=867 Win=32580 Len=0
    >> 5 0.120677 192.168.2.48 -> 192.168.2.40 TCP [TCP segment of a
    >> reassembled
    >> PDU]
    >> 6 0.309083 192.168.2.40 -> 192.168.2.48 TCP 1442 > http [ACK] Seq=867
    >> Ack=185 Win=64842 Len=0
    >> 7 0.309211 192.168.2.48 -> 192.168.2.40 HTTP HTTP/1.0 200 OK
    >> 8 0.527824 192.168.2.40 -> 192.168.2.48 TCP 1442 > http [ACK] Seq=867
    >> Ack=508 Win=64519 Len=0
    >>
    >> CE server = 192.168.2.48
    >> XP client = 192.168.2.40
    >>
    >> 1 = Initial call from client to server "POST /GateWS.wsdl"
    >> 2 = Acknowledge of message 1 by server
    >> 3 = Call SOAP method
    >> 4 = Acknowledge of message 3 by server
    >> 5 = "HTTP1.0 200 OK"
    >> 6 = Acknowledge of message 5 by client
    >> 7 = SOAP call response
    >> 8 = Acknowledge of message 7 by client
    >>
    >>
    >> Werner

    >
     
    Werner Willemsens, Oct 24, 2006
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    0
    Views:
    887
  2. Eric Anderson

    Bad Transform or Bad Engine?

    Eric Anderson, Oct 4, 2005, in forum: XML
    Replies:
    1
    Views:
    378
    Peter Flynn
    Oct 5, 2005
  3. =?Utf-8?B?V2lsbGlhbSBTdWxsaXZhbg==?=

    vs2005 publish website doing bad things, bad things

    =?Utf-8?B?V2lsbGlhbSBTdWxsaXZhbg==?=, Oct 25, 2006, in forum: ASP .Net
    Replies:
    1
    Views:
    606
    =?Utf-8?B?UGV0ZXIgQnJvbWJlcmcgW0MjIE1WUF0=?=
    Oct 25, 2006
  4. rantingrick
    Replies:
    44
    Views:
    1,232
    Peter Pearson
    Jul 13, 2010
  5. Prabhu

    .net SOAP toolkit performance for SOAP deserialization

    Prabhu, Nov 12, 2004, in forum: ASP .Net Web Services
    Replies:
    5
    Views:
    293
    Dan Rogers
    Nov 18, 2004
Loading...

Share This Page