Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Everybody has this problem - call hang up and never finishes

221 views
Skip to first unread message

Dalibor Zliechovec

unread,
Mar 25, 2003, 4:54:16 AM3/25/03
to
Hi all,

Try my scenario and you will see that every .net remoting
call can hang up. So everybody who uses .net remoting to
other machine has this problem.

Read my test scenario:

I have a test application using .net remoting. The server
consists just with one Alive method for the test purpose. I
run a client test loop 5000 times and call just Alive method
of the server. Server and client are on different machines.

When I unplugged server network cable during a test loop I
can get infinite hang up of the client. The client never
finishes a call.

The client hangs up in Socket.Receive call of .net remoting
expecting result from the server. The client never finishes the
Receive. You can simulate it very easily (for me up to 7 tries
now). Just remember NOT to unplugged client because then
Windows media sensitive flag works and client gets an
exception from tcp stack.

Additionally if you plug server again then client would not
finish the call anyway. It can happen that your client is
stopped forever.

What can I do in order receive an exception rather than
infinite call? How can I finish the call (kill it)?

Thanks for hints,
Dalibor

Dmitry Belikov

unread,
Mar 25, 2003, 6:53:57 AM3/25/03
to
Hello Dalibor,

Take a look here :
http://test.labdotnet.com/GenuineChannels/GenuineChannels.html

You can specify exactly timeout to wait for.

And you'll receive appropriate exception when such issue occurs.

Regards,

Dmitry.

"Dalibor Zliechovec" <dalibor.z...@frequentis.com> wrote in message
news:40f001c2f2b4$7f16f040$3401...@phx.gbl...

Dalibor Zliechovec

unread,
Mar 25, 2003, 7:23:21 AM3/25/03
to
First of all I would like to thanks for your reply.
I will try that the GenuineChannels can work for me.

On the other hand I would prefer if I have everything in my
hands. It means that I would set up this timeout. I do not
need other nice things now from the GenuineChannels
component. And of course I worry if there is a problem inside
GenuineChannels the I would probably have to go to source
code (which is shipped with commercial version).

Do you know how GenuineChannels works internally? How
can I set up such a timeout?

Dalibor

Joe Robe

unread,
Mar 25, 2003, 10:20:56 AM3/25/03
to
like dimitry i created my own channel . You cant solve this ( and MANY
other) problems in the standart MS channel. I can crash ANY application
using the standart MS channel ! You need things like REAL async processing,
message caching and resending, timeouts etc.

joe robe


"Dalibor Zliechovec" <dalibor.z...@frequentis.com> wrote in message

news:356e01c2f2c9$52ec2070$a401...@phx.gbl...

Dmitry Belikov

unread,
Mar 26, 2003, 11:42:39 AM3/26/03
to
Hello Dalibor,

Sorry for my delay.
Genuine Channels do everything in async manner. So receiving a response or
an exception is 100% guaranted.

Take a look at the Programming Guide which is available from the web-site.
But I think in your case my channels will give predictable results. Because
TCP channel will try to reconnect to the server as well as HTTP channel will
recover connection automatically.

So take a look at the global settings like

Belikov.GenuineChannels.Messaging.MessageManager.TimeSpanWaitReplyTimeOut
Belikov.GenuineChannels.Messaging.MessageManager.TimeSpanDeleteExpiredWaitin
gRecords

and

ReconnectionTries
SleepBetweenReconnection
MaxTimeSpanToReconnect

settings for the client TCP channel.


Also if you send me small example of your scenario with brief instructions,
I'll check it on my own.
My e-mail: dima...@mail.ru.

Regards,
Dmitry.


"Dalibor Zliechovec" <dalibor.z...@frequentis.com> wrote in message

news:356e01c2f2c9$52ec2070$a401...@phx.gbl...

Alex Kalinin

unread,
Mar 26, 2003, 7:02:05 PM3/26/03
to
> Receive. You can simulate it very easily (for me up to 7 tries
> now). Just remember NOT to unplugged client because then

Some advice to those trying to reproduce the problem: it will make it easier
and 100% reproducible if you add something like Thread.Sleep(10000) in the
method's implementation on the server and unplug the server while the client
is awaiting for the method to return...


Cheers
Alex


Dalibor Zliechovec

unread,
Apr 16, 2003, 5:23:02 AM4/16/03
to
I have found the answer in the newest .NET 1.1.
NET 1.1 added <timeout> property to <channel> section of HttpChannel.
So for HttpChannel I can set the timeout now. When the timeout is
reached then an exception is throwen.
It works just for Http Channel.
Does anyone know how to set it for TcpChannel?

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!

0 new messages