Go Back   ZeroC Forums > Help Center

Reply
 
LinkBack Thread Tools Rate Thread Display Modes
  #1 (permalink)  
Old 04-16-2007
HpGisler HpGisler is offline
Registered User
 
Name: Hanspeter Gisler
Organization: Sensirion
Project: Rigi
 
Join Date: May 2006
Posts: 6
Unhappy Sometimes long reply time for proxy generation

Hello,

I am encountering a (for me) hard to track timing problem, when creating a proxy on the server-side. Actually, I'am not sure at all, that the problem has to do with ICE; but anyway, perhaps anybody has observed a similar thing...

When the client (WinXP, .net/C#) requests a proxy from the server (WinCE,C++), sometimes the task is handled blazingly fast and at other times, it takes about 2 seconds to finish. I have analyzed the network traffic to find out what happens in these situations.

The ice protocol-log shows in both situations the exact same behaviour:
Here the relevant part for creating 2 proxies and casting them to the destination type:

-------------------------------------------------------------------

[ Protocol: sending request

message type = 0 (request)

compression status = 0 (not compressed; do not compress response, if any)

message size = 74

request id = 1

identity = 3853E3DF-53F3-4BD3-9AC1-FA0E320B8852

facet =

operation = ice_ping

mode = 1 (nonmutating)

context = ]


[ Network: sent 74 of 74 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Network: received 14 of 14 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Network: received 11 of 11 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Protocol: received reply

message type = 2 (reply)

compression status = 0 (not compressed; do not compress response, if any)

message size = 25

request id = 1

reply status = 0 (ok) ]


[ Protocol: sending request

message type = 0 (request)

compression status = 0 (not compressed; do not compress response, if any)

message size = 73

request id = 2

identity = 3853E3DF-53F3-4BD3-9AC1-FA0E320B8852

facet =

operation = Create

mode = 0 (normal)

context = ]


[ Network: sent 73 of 73 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Network: received 14 of 14 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Network: received 84 of 84 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Protocol: received reply

message type = 2 (reply)

compression status = 0 (not compressed; do not compress response, if any)

message size = 98

request id = 2

reply status = 0 (ok) ]


[ Protocol: sending request

message type = 0 (request)

compression status = 0 (not compressed; do not compress response, if any)

message size = 113

request id = 3

identity = 77D62462-E617-43C8-9FCB-1A69C01CE30D

facet =

operation = ice_isA

mode = 1 (nonmutating)

context = ]


[ Network: sent 113 of 113 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Network: received 14 of 14 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Network: received 12 of 12 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Protocol: received reply

message type = 2 (reply)

compression status = 0 (not compressed; do not compress response, if any)

message size = 26

request id = 3

reply status = 0 (ok) ]


[ Protocol: sending request

message type = 0 (request)

compression status = 0 (not compressed; do not compress response, if any)

message size = 74

request id = 4

identity = 3853E3DF-53F3-4BD3-9AC1-FA0E320B8852

facet =

operation = ice_ping

mode = 1 (nonmutating)

context = ]


[ Network: sent 74 of 74 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Network: received 14 of 14 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Network: received 11 of 11 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Protocol: received reply

message type = 2 (reply)

compression status = 0 (not compressed; do not compress response, if any)

message size = 25

request id = 4

reply status = 0 (ok) ]


[ Protocol: sending request

message type = 0 (request)

compression status = 0 (not compressed; do not compress response, if any)

message size = 73

request id = 5

identity = 3853E3DF-53F3-4BD3-9AC1-FA0E320B8852

facet =

operation = Create

mode = 0 (normal)

context = ]


[ Network: sent 73 of 73 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Network: received 14 of 14 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Network: received 84 of 84 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Protocol: received reply

message type = 2 (reply)

compression status = 0 (not compressed; do not compress response, if any)

message size = 98

request id = 5

reply status = 0 (ok) ]


[ Protocol: sending request

message type = 0 (request)

compression status = 0 (not compressed; do not compress response, if any)

message size = 113

request id = 6

identity = 6CD47EBA-3A62-4B5B-88BA-218C2C691235

facet =

operation = ice_isA

mode = 1 (nonmutating)

context = ]


[ Network: sent 113 of 113 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Network: received 14 of 14 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Network: received 12 of 12 bytes via tcp

local address = 192.168.0.209:3326

remote address = 192.168.0.120:10000 ]


[ Protocol: received reply

message type = 2 (reply)

compression status = 0 (not compressed; do not compress response, if any)

message size = 26

request id = 6

reply status = 0 (ok) ]


-------------------------------------------------------------------


For me, this looks ok.

But on the TCP level, things look as shown in the attached word document.
Perhaps somebody has any ideas?

I really do not see the problem causing this...

Any help is greatly appreciated, thanks.
hp.
Attached Files
File Type: doc TCP Packets.doc (83.0 KB, 47 views)
Reply With Quote
  #2 (permalink)  
Old 04-16-2007
benoit's Avatar
benoit benoit is offline
ZeroC Staff
 
Name: Benoit Foucher
Organization: ZeroC, Inc.
Project: Ice
 
Join Date: Feb 2003
Location: Rennes, France
Posts: 1,564
Hi,

You should use a lower tracing level for Ice.Trace.Network (Ice.Trace.Network=2 for example) and enable timestamps with Ice.Logger.Timestamp=1. This would help to see where the delays occur with the Ice tracing.

In any case, I can't see anything wrong with your TCP network tracing. The delays appear to occur between succesfull Ice requests (after receiving the reply of the second request and before sending the third request and after receiving the reply of the 5th request and before sending the 6th request) so it would indicate that the delays occur in your code.

Cheers,
Benoit.
Reply With Quote
  #3 (permalink)  
Old 04-16-2007
HpGisler HpGisler is offline
Registered User
 
Name: Hanspeter Gisler
Organization: Sensirion
Project: Rigi
 
Join Date: May 2006
Posts: 6
Waiting on client side.

Hi,

First of all: Thanks very much for your quick reply. I appreciate your help very much.

Following, I've included the same log-situation as before, this time with Trace level 2 and time stamping enabled.

What strikes me here is, that between the reception of the packet on the Client side at time:
[ 04/16/2007 17:01:37 Protocol: received reply
....

and the sending of the next request:
[ 04/16/2007 17:01:39 Protocol: sending request
...

I see this "magic" delay.

Nothing special happens on the client side code. (ice handles this).
So in my understanding, it's not the server that waits 2 secs, but the client...
(if I interpret this correctly).

In the attached word document, I've pasted the TCP-Flow diagram of this exact same time period.

And what strikes me here is, that at time 17:01:37 and time 17:01:39, two packets are being sent from client to server; where in between those two, the waiting occurs.

Here, I do not really understand what's happening and I do not know whether this has to do with ICE or not.

Any way, this (for me) strange behavior does not seem to occur for other network protocols, e.g. FTP or the such...

Perhaps you see some possible causes for this?

Kind Regards
hp.


--------------------------------------------------------------------

[ 04/16/2007 17:01:37 Protocol: sending request
message type = 0 (request)
compression status = 0 (not compressed; do not compress response, if any)
message size = 74
request id = 21
identity = 9A13AB68-874D-4875-910C-C08A7AB8E084
facet =
operation = ice_ping
mode = 1 (nonmutating)
context = ]

[ 04/16/2007 17:01:37 Protocol: received reply
message type = 2 (reply)
compression status = 0 (not compressed; do not compress response, if any)
message size = 25
request id = 21
reply status = 0 (ok) ]

[ 04/16/2007 17:01:37 Protocol: sending request
message type = 0 (request)
compression status = 0 (not compressed; do not compress response, if any)
message size = 73
request id = 22
identity = 9A13AB68-874D-4875-910C-C08A7AB8E084
facet =
operation = Create
mode = 0 (normal)
context = ]

[ 04/16/2007 17:01:37 Protocol: received reply
message type = 2 (reply)
compression status = 0 (not compressed; do not compress response, if any)
message size = 98
request id = 22
reply status = 0 (ok) ]

[ 04/16/2007 17:01:39 Protocol: sending request
message type = 0 (request)
compression status = 0 (not compressed; do not compress response, if any)
message size = 113
request id = 23
identity = 10E08A3B-3F78-4AA7-8F84-575F8146E5A0
facet =
operation = ice_isA
mode = 1 (nonmutating)
context = ]

[ 04/16/2007 17:01:39 Protocol: received reply
message type = 2 (reply)
compression status = 0 (not compressed; do not compress response, if any)
message size = 26
request id = 23
reply status = 0 (ok) ]

[ 04/16/2007 17:01:39 Protocol: sending request
message type = 0 (request)
compression status = 0 (not compressed; do not compress response, if any)
message size = 74
request id = 24
identity = 9A13AB68-874D-4875-910C-C08A7AB8E084
facet =
operation = ice_ping
mode = 1 (nonmutating)
context = ]

[ 04/16/2007 17:01:39 Protocol: received reply
message type = 2 (reply)
compression status = 0 (not compressed; do not compress response, if any)
message size = 25
request id = 24
reply status = 0 (ok) ]

[ 04/16/2007 17:01:39 Protocol: sending request
message type = 0 (request)
compression status = 0 (not compressed; do not compress response, if any)
message size = 73
request id = 25
identity = 9A13AB68-874D-4875-910C-C08A7AB8E084
facet =
operation = Create
mode = 0 (normal)
context = ]

[ 04/16/2007 17:01:39 Protocol: received reply
message type = 2 (reply)
compression status = 0 (not compressed; do not compress response, if any)
message size = 98
request id = 25
reply status = 0 (ok) ]

[ 04/16/2007 17:01:41 Protocol: sending request
message type = 0 (request)
compression status = 0 (not compressed; do not compress response, if any)
message size = 113
request id = 26
identity = 6E1928A6-1A35-45C1-8AFE-523562241FC6
facet =
operation = ice_isA
mode = 1 (nonmutating)
context = ]

[ 04/16/2007 17:01:41 Protocol: received reply
message type = 2 (reply)
compression status = 0 (not compressed; do not compress response, if any)
message size = 26
request id = 26
reply status = 0 (ok) ]
Attached Files
File Type: doc TCP Packets2.doc (32.5 KB, 38 views)
Reply With Quote
  #4 (permalink)  
Old 04-16-2007
bernard's Avatar
bernard bernard is offline
ZeroC Staff
 
Name: Bernard Normier
Organization: ZeroC, Inc.
Project: Ice
 
Join Date: Feb 2003
Location: Palm Beach Gardens, FL
Posts: 834
The best would be to reduce your program to a simple test case, ideally just a Ice 3.2.0 C# client talking to an Ice 3.2.0 server.

Note that in environments with garbage collection (such as Java and .NET), you can get hangs/delays when the GC runs.

Cheers,
Bernard
__________________
Bernard Normier
ZeroC, Inc.
Reply With Quote
  #5 (permalink)  
Old 04-18-2007
HpGisler HpGisler is offline
Registered User
 
Name: Hanspeter Gisler
Organization: Sensirion
Project: Rigi
 
Join Date: May 2006
Posts: 6
Hi

...well at least I've found a quick work around for the moment.
If using a second network adapter on the WinXP machine, giving this one a fixed IP, connecting it directly (via crossed-Cable) to the server machine (WinCE also with fixed IP), then I do not "seem" to get the additional waiting.

Weird...

It seems that this has to do with the fact, that other TCP-packets are beeing received/sent in between an established connection between client/server. If this happens, I get the "Delay"-Problem, if not, everything seems to be fine.

Somehow I believe, this rather has to do with my networking infrastructure and not so much with ICE.

Anyhow, thanks for your help.

Regards
hp.
Reply With Quote
  #6 (permalink)  
Old 04-18-2007
benoit's Avatar
benoit benoit is offline
ZeroC Staff
 
Name: Benoit Foucher
Organization: ZeroC, Inc.
Project: Ice
 
Join Date: Feb 2003
Location: Rennes, France
Posts: 1,564
Hi,

Yes, I believe the two packets you were mentioning are TCP acknowledgment packets. Ice doesn't directly send these, the TCP/IP stack does. I don't know why these would be causing hangs however.

Btw, are you using Ice or Ice-E on WinCE? Note that we don't officially support Ice on WinCE, if you have a commercial need for this platform, please contact us at info@zeroc.com.

Cheers,
Benoit.
Reply With Quote
  #7 (permalink)  
Old 04-18-2007
HpGisler HpGisler is offline
Registered User
 
Name: Hanspeter Gisler
Organization: Sensirion
Project: Rigi
 
Join Date: May 2006
Posts: 6
Just for the record:

Now it's official, the problem has nothing to do with ICE .
It had to do with our internal net infrastructure and the working together of our DNS and our DHCP server. While lease times were activated on DHCP, they were not on DNS. Thus old DNS-Entries collided with updated DHCP entries for certain IP-Adresses. Thus the WinXP machine issued a lot of NetBIOS requests for no more existing NetNames. Thus the additional waiting in between ICE communications.

Thanks a lot guys from ZeroC staff for your help in this matter!

Regards,
hp.
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
when shuting down one node in icegrid,the client wait a long time to reconnect leya Help Center 8 06-08-2006 09:59 PM
reply status = 2 (object not exist) ewiniar Help Center 9 05-22-2006 10:11 PM
How can I make a server run long time? level Help Center 4 02-14-2006 03:02 PM
Is a proxy can be called in different thread at the same time? rano Help Center 1 06-01-2005 11:54 PM
Creating proxy using Glacier2 router fails 2nd time around rhochmuth Help Center 1 02-04-2005 07:12 PM


All times are GMT -4. The time now is 11:17 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.0.0
(c) 2008 ZeroC, Inc.