[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

microsoft.public.dotnet.framework.remoting

Using ISponsor, CAO LeaseState

Eric Twietmeyer

10/13/2004 10:53:00 PM

Hello,

I'm just now entering the world of .NET remoting. I've been reading Ingo
Rammer's book and am looking at the section on leases and sponsors.

I'm wondering if I can use this sponsorship idea to keep track of whether
the client app is alive. My idea is to register a sponsor with a CAO with a
renewal time of say 10 seconds (assuming initial lease time is 10 seconds).
The CAO is assumed to live for the lifetime of the client application. So
the sponsor will keep returning 10 second while the client app is running.

If the client app falls over (which in my case may unfortunately occur), the
10 second period will expire and then the server will try to contact the
sponsor, fail and then mark the CAO as Expired (I guess?).

My question is, is there some way I can tell on the server that the CAO has
expired so that the server in fact then knows that the client app itself has
died? Will the destructor of the CAO be called? I assume only during
finalization. How about IDispose if it derives from IDisposable? Will that
be called when the state changes to Expired? If not, is there some way on
the server in the CAO itself to know its Lease state has changed to Expired?
Or do I just need to poll?

Thanks,

-Eric Twietmeyer


5 Answers

Sam Santiago

10/13/2004 11:34:00 PM

0

I think this article will answer many of your questions:

Managing the Lifetime of Remote .NET Objects with Leasing and Sponsorship
http://msdn.microsoft.com/msdnmag/issues/03/12/LeaseManager/de...

I think your idea will work. You could define a sponsor on the client (a
MarshalByRefObject) that is contacted whenever the CAO lease is to expire to
determine whether to renew or not. 10 seconds sounds like a short amount of
time and you might be generating a ton of unnecessary network traffic as a
side effect. I would try to determine the expected lifetime you desire for
your objects to avoid a chatty application. I don't think this article
states what happens when the sponsor is not reachable - you client app dies.
My assumption is that the CAO's lease is not extended, but you can try it
out to verify.

Thanks,

Sam

--
_______________________________
Sam Santiago
ssantiago@n0spam-SoftiTechture.com
http://www.SoftiTe...
_______________________________
"Eric Twietmeyer" <notvalid@noisp.com> wrote in message
news:%23x5$jdXsEHA.1016@TK2MSFTNGP10.phx.gbl...
> Hello,
>
> I'm just now entering the world of .NET remoting. I've been reading Ingo
> Rammer's book and am looking at the section on leases and sponsors.
>
> I'm wondering if I can use this sponsorship idea to keep track of whether
> the client app is alive. My idea is to register a sponsor with a CAO with
a
> renewal time of say 10 seconds (assuming initial lease time is 10
seconds).
> The CAO is assumed to live for the lifetime of the client application. So
> the sponsor will keep returning 10 second while the client app is running.
>
> If the client app falls over (which in my case may unfortunately occur),
the
> 10 second period will expire and then the server will try to contact the
> sponsor, fail and then mark the CAO as Expired (I guess?).
>
> My question is, is there some way I can tell on the server that the CAO
has
> expired so that the server in fact then knows that the client app itself
has
> died? Will the destructor of the CAO be called? I assume only during
> finalization. How about IDispose if it derives from IDisposable? Will
that
> be called when the state changes to Expired? If not, is there some way on
> the server in the CAO itself to know its Lease state has changed to
Expired?
> Or do I just need to poll?
>
> Thanks,
>
> -Eric Twietmeyer
>
>


Clint

10/14/2004 3:02:00 AM

0

Yes, I think I am aware of many of the details of sponsorship, however that
article as well as the coverage in the book "Advanced .NET Remoting" do not
indicate what precisely happens when an object expires. Is there some way
to get notification of an object expiring, or is it necessary to poll the
LeaseState of the object?

Again, the idea is to get some notification when the CAO expires because the
client side sponsor is not reachable.

Thanks,

-Eric Twietmeyer


"Sam Santiago" <ssantiago@n0spam-SoftiTechture.com> wrote in message
news:OIf$k0XsEHA.3076@TK2MSFTNGP09.phx.gbl...
> I think this article will answer many of your questions:
>
> Managing the Lifetime of Remote .NET Objects with Leasing and Sponsorship
> http://msdn.microsoft.com/msdnmag/issues/03/12/LeaseManager/de...
>
> I think your idea will work. You could define a sponsor on the client (a
> MarshalByRefObject) that is contacted whenever the CAO lease is to expire
to
> determine whether to renew or not. 10 seconds sounds like a short amount
of
> time and you might be generating a ton of unnecessary network traffic as a
> side effect. I would try to determine the expected lifetime you desire
for
> your objects to avoid a chatty application. I don't think this article
> states what happens when the sponsor is not reachable - you client app
dies.
> My assumption is that the CAO's lease is not extended, but you can try it
> out to verify.
>
> Thanks,
>
> Sam
>
> --
> _______________________________
> Sam Santiago
> ssantiago@n0spam-SoftiTechture.com
> http://www.SoftiTe...
> _______________________________
> "Eric Twietmeyer" <notvalid@noisp.com> wrote in message
> news:%23x5$jdXsEHA.1016@TK2MSFTNGP10.phx.gbl...
> > Hello,
> >
> > I'm just now entering the world of .NET remoting. I've been reading
Ingo
> > Rammer's book and am looking at the section on leases and sponsors.
> >
> > I'm wondering if I can use this sponsorship idea to keep track of
whether
> > the client app is alive. My idea is to register a sponsor with a CAO
with
> a
> > renewal time of say 10 seconds (assuming initial lease time is 10
> seconds).
> > The CAO is assumed to live for the lifetime of the client application.
So
> > the sponsor will keep returning 10 second while the client app is
running.
> >
> > If the client app falls over (which in my case may unfortunately occur),
> the
> > 10 second period will expire and then the server will try to contact the
> > sponsor, fail and then mark the CAO as Expired (I guess?).
> >
> > My question is, is there some way I can tell on the server that the CAO
> has
> > expired so that the server in fact then knows that the client app itself
> has
> > died? Will the destructor of the CAO be called? I assume only during
> > finalization. How about IDispose if it derives from IDisposable? Will
> that
> > be called when the state changes to Expired? If not, is there some way
on
> > the server in the CAO itself to know its Lease state has changed to
> Expired?
> > Or do I just need to poll?
> >
> > Thanks,
> >
> > -Eric Twietmeyer
> >
> >
>
>


Sam Santiago

10/14/2004 6:02:00 AM

0

The sponsor is your notification mechanism. You could implement a factory
type pattern where you request CAOs from a factory on the server and the
server registers a sponsor for that CAO prior to returning it. I guess that
still won't tell you if the client failed to renew the lease, but you would
have a reference to the CAO if you wanted to poll it's Lease state. I am
not sure what would happen if you kept a reference to it in a hashtable,
returned it to the client as a CAO, it expires - the remoting infrastructure
performs the steps below, and then you try to check it's Lease state. An
exception of some kind would most likely be thrown. So, in short the answer
to your question:

> Again, the idea is to get some notification when the CAO expires because
the
> client side sponsor is not reachable.
seems to be difficult to impossible.

> however that
> article as well as the coverage in the book "Advanced .NET Remoting" do
not
> indicate what precisely happens when an object expires.

I have a book:

Microsoft .NET Remoting
by Scott McLean, et al.
http://www.amazon.com/exec/obidos/tg/detail/-/0735617783/qid=1097733159/sr=1-3/ref=sr_1_3/104-1876926-7263927?v=glance&a...

that states the following:

"The lease manager notifies each expired lease that it has expired, at which
point the lease will begin asking its sponsors to renew it. If the lease
doesn't have any sponsors or if all sponsors fail to renew the lease, the
lease will cancel itself by performing the following operations:
1.. Sets its state to System.Runtime.Remoting.Lifetime.LeaseState.Expired

2.. Notifies the lease manager that it should remove this lease from its
lease table

3.. Disconnects the remote object from the .NET Remoting infrastructure

4.. Disconnects the lease object from the .NET Remoting infrastructure

At this point, the .NET Remoting infrastructure will no longer reference the
remote object or its lease, and both objects will be available for garbage
collection."

Good luck.

Thanks,

Sam
--
_______________________________
Sam Santiago
ssantiago@n0spam-SoftiTechture.com
http://www.SoftiTe...
_______________________________
"Eric Twietmeyer" <noone@nowhere.com> wrote in message
news:y_ednbSNFP7ccfDcRVn-uw@comcast.com...
> Yes, I think I am aware of many of the details of sponsorship, however
that
> article as well as the coverage in the book "Advanced .NET Remoting" do
not
> indicate what precisely happens when an object expires. Is there some way
> to get notification of an object expiring, or is it necessary to poll the
> LeaseState of the object?
>
> Again, the idea is to get some notification when the CAO expires because
the
> client side sponsor is not reachable.
>
> Thanks,
>
> -Eric Twietmeyer
>
>
> "Sam Santiago" <ssantiago@n0spam-SoftiTechture.com> wrote in message
> news:OIf$k0XsEHA.3076@TK2MSFTNGP09.phx.gbl...
> > I think this article will answer many of your questions:
> >
> > Managing the Lifetime of Remote .NET Objects with Leasing and
Sponsorship
> > http://msdn.microsoft.com/msdnmag/issues/03/12/LeaseManager/de...
> >
> > I think your idea will work. You could define a sponsor on the client
(a
> > MarshalByRefObject) that is contacted whenever the CAO lease is to
expire
> to
> > determine whether to renew or not. 10 seconds sounds like a short
amount
> of
> > time and you might be generating a ton of unnecessary network traffic as
a
> > side effect. I would try to determine the expected lifetime you desire
> for
> > your objects to avoid a chatty application. I don't think this article
> > states what happens when the sponsor is not reachable - you client app
> dies.
> > My assumption is that the CAO's lease is not extended, but you can try
it
> > out to verify.
> >
> > Thanks,
> >
> > Sam
> >
> > --
> > _______________________________
> > Sam Santiago
> > ssantiago@n0spam-SoftiTechture.com
> > http://www.SoftiTe...
> > _______________________________
> > "Eric Twietmeyer" <notvalid@noisp.com> wrote in message
> > news:%23x5$jdXsEHA.1016@TK2MSFTNGP10.phx.gbl...
> > > Hello,
> > >
> > > I'm just now entering the world of .NET remoting. I've been reading
> Ingo
> > > Rammer's book and am looking at the section on leases and sponsors.
> > >
> > > I'm wondering if I can use this sponsorship idea to keep track of
> whether
> > > the client app is alive. My idea is to register a sponsor with a CAO
> with
> > a
> > > renewal time of say 10 seconds (assuming initial lease time is 10
> > seconds).
> > > The CAO is assumed to live for the lifetime of the client application.
> So
> > > the sponsor will keep returning 10 second while the client app is
> running.
> > >
> > > If the client app falls over (which in my case may unfortunately
occur),
> > the
> > > 10 second period will expire and then the server will try to contact
the
> > > sponsor, fail and then mark the CAO as Expired (I guess?).
> > >
> > > My question is, is there some way I can tell on the server that the
CAO
> > has
> > > expired so that the server in fact then knows that the client app
itself
> > has
> > > died? Will the destructor of the CAO be called? I assume only during
> > > finalization. How about IDispose if it derives from IDisposable?
Will
> > that
> > > be called when the state changes to Expired? If not, is there some
way
> on
> > > the server in the CAO itself to know its Lease state has changed to
> > Expired?
> > > Or do I just need to poll?
> > >
> > > Thanks,
> > >
> > > -Eric Twietmeyer
> > >
> > >
> >
> >
>
>


Sam Santiago

10/14/2004 3:02:00 PM

0

You should also look at the TrackingServices class and ITrackingHandler
interface. They might provide you with what you are looking for as well,
since you do get a notification when an objref is disconnected:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconremotingexampletrackings...

Thanks,

Sam

--
_______________________________
Sam Santiago
ssantiago@n0spam-SoftiTechture.com
http://www.SoftiTe...
_______________________________
"Sam Santiago" <ssantiago@n0spam-SoftiTechture.com> wrote in message
news:e9HSiNbsEHA.160@TK2MSFTNGP11.phx.gbl...
> The sponsor is your notification mechanism. You could implement a factory
> type pattern where you request CAOs from a factory on the server and the
> server registers a sponsor for that CAO prior to returning it. I guess
that
> still won't tell you if the client failed to renew the lease, but you
would
> have a reference to the CAO if you wanted to poll it's Lease state. I am
> not sure what would happen if you kept a reference to it in a hashtable,
> returned it to the client as a CAO, it expires - the remoting
infrastructure
> performs the steps below, and then you try to check it's Lease state. An
> exception of some kind would most likely be thrown. So, in short the
answer
> to your question:
>
> > Again, the idea is to get some notification when the CAO expires because
> the
> > client side sponsor is not reachable.
> seems to be difficult to impossible.
>
> > however that
> > article as well as the coverage in the book "Advanced .NET Remoting" do
> not
> > indicate what precisely happens when an object expires.
>
> I have a book:
>
> Microsoft .NET Remoting
> by Scott McLean, et al.
>
http://www.amazon.com/exec/obidos/tg/detail/-/0735617783/qid=1097733159/sr=1-3/ref=sr_1_3/104-1876926-7263927?v=glance&a...
>
> that states the following:
>
> "The lease manager notifies each expired lease that it has expired, at
which
> point the lease will begin asking its sponsors to renew it. If the lease
> doesn't have any sponsors or if all sponsors fail to renew the lease, the
> lease will cancel itself by performing the following operations:
> 1.. Sets its state to
System.Runtime.Remoting.Lifetime.LeaseState.Expired
>
> 2.. Notifies the lease manager that it should remove this lease from its
> lease table
>
> 3.. Disconnects the remote object from the .NET Remoting infrastructure
>
> 4.. Disconnects the lease object from the .NET Remoting infrastructure
>
> At this point, the .NET Remoting infrastructure will no longer reference
the
> remote object or its lease, and both objects will be available for garbage
> collection."
>
> Good luck.
>
> Thanks,
>
> Sam
> --
> _______________________________
> Sam Santiago
> ssantiago@n0spam-SoftiTechture.com
> http://www.SoftiTe...
> _______________________________
> "Eric Twietmeyer" <noone@nowhere.com> wrote in message
> news:y_ednbSNFP7ccfDcRVn-uw@comcast.com...
> > Yes, I think I am aware of many of the details of sponsorship, however
> that
> > article as well as the coverage in the book "Advanced .NET Remoting" do
> not
> > indicate what precisely happens when an object expires. Is there some
way
> > to get notification of an object expiring, or is it necessary to poll
the
> > LeaseState of the object?
> >
> > Again, the idea is to get some notification when the CAO expires because
> the
> > client side sponsor is not reachable.
> >
> > Thanks,
> >
> > -Eric Twietmeyer
> >
> >
> > "Sam Santiago" <ssantiago@n0spam-SoftiTechture.com> wrote in message
> > news:OIf$k0XsEHA.3076@TK2MSFTNGP09.phx.gbl...
> > > I think this article will answer many of your questions:
> > >
> > > Managing the Lifetime of Remote .NET Objects with Leasing and
> Sponsorship
> > >
http://msdn.microsoft.com/msdnmag/issues/03/12/LeaseManager/de...
> > >
> > > I think your idea will work. You could define a sponsor on the client
> (a
> > > MarshalByRefObject) that is contacted whenever the CAO lease is to
> expire
> > to
> > > determine whether to renew or not. 10 seconds sounds like a short
> amount
> > of
> > > time and you might be generating a ton of unnecessary network traffic
as
> a
> > > side effect. I would try to determine the expected lifetime you
desire
> > for
> > > your objects to avoid a chatty application. I don't think this
article
> > > states what happens when the sponsor is not reachable - you client app
> > dies.
> > > My assumption is that the CAO's lease is not extended, but you can try
> it
> > > out to verify.
> > >
> > > Thanks,
> > >
> > > Sam
> > >
> > > --
> > > _______________________________
> > > Sam Santiago
> > > ssantiago@n0spam-SoftiTechture.com
> > > http://www.SoftiTe...
> > > _______________________________
> > > "Eric Twietmeyer" <notvalid@noisp.com> wrote in message
> > > news:%23x5$jdXsEHA.1016@TK2MSFTNGP10.phx.gbl...
> > > > Hello,
> > > >
> > > > I'm just now entering the world of .NET remoting. I've been reading
> > Ingo
> > > > Rammer's book and am looking at the section on leases and sponsors.
> > > >
> > > > I'm wondering if I can use this sponsorship idea to keep track of
> > whether
> > > > the client app is alive. My idea is to register a sponsor with a
CAO
> > with
> > > a
> > > > renewal time of say 10 seconds (assuming initial lease time is 10
> > > seconds).
> > > > The CAO is assumed to live for the lifetime of the client
application.
> > So
> > > > the sponsor will keep returning 10 second while the client app is
> > running.
> > > >
> > > > If the client app falls over (which in my case may unfortunately
> occur),
> > > the
> > > > 10 second period will expire and then the server will try to contact
> the
> > > > sponsor, fail and then mark the CAO as Expired (I guess?).
> > > >
> > > > My question is, is there some way I can tell on the server that the
> CAO
> > > has
> > > > expired so that the server in fact then knows that the client app
> itself
> > > has
> > > > died? Will the destructor of the CAO be called? I assume only
during
> > > > finalization. How about IDispose if it derives from IDisposable?
> Will
> > > that
> > > > be called when the state changes to Expired? If not, is there some
> way
> > on
> > > > the server in the CAO itself to know its Lease state has changed to
> > > Expired?
> > > > Or do I just need to poll?
> > > >
> > > > Thanks,
> > > >
> > > > -Eric Twietmeyer
> > > >
> > > >
> > >
> > >
> >
> >
>
>


Eric Twietmeyer

10/14/2004 4:22:00 PM

0

Thanks for the pointer and previous comments. I was thinking further about
this and had come to the same conclusion, that is, I don't think using the
LeaseState thing will work because of object lifetime issues.

So if instead I create explicit instances of the "CAO" on the server in the
first place, publish them with RemotingService.Marshal, attach a tracking
services object and then see when the ObjectDisconnected callback is made,
then I will perhaps know whether the client has died.

I don't know how leases work though if I publish explicitly an object that I
have a reference to on the server side. Does one still have to worry about
lease times, etc? If there is some other explicit reference to the object
on the server side then clearly it can't be gc'd.

Well, I guess I will experiment with this some.

Actually, reading further in the book I have, "Advanced .NET Remoting" there
is an example of a "service side sponsor" which waits on pings from the
client to know if the client is still alive and uses that to indicate
whether the lease should be renewed for the CAO.

So several ways forward I guess.

Thanks again for the pointers and comments.

-Eric Twietmeyer

"Sam Santiago" <ssantiago@n0spam-SoftiTechture.com> wrote in message
news:%239%23bS7fsEHA.3572@tk2msftngp13.phx.gbl...
> You should also look at the TrackingServices class and ITrackingHandler
> interface. They might provide you with what you are looking for as well,
> since you do get a notification when an objref is disconnected:
>
>
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconremotingexampletrackings...
>
> Thanks,
>
> Sam
>
> --
> _______________________________
> Sam Santiago
> ssantiago@n0spam-SoftiTechture.com
> http://www.SoftiTe...
> _______________________________
> "Sam Santiago" <ssantiago@n0spam-SoftiTechture.com> wrote in message
> news:e9HSiNbsEHA.160@TK2MSFTNGP11.phx.gbl...
> > The sponsor is your notification mechanism. You could implement a
factory
> > type pattern where you request CAOs from a factory on the server and the
> > server registers a sponsor for that CAO prior to returning it. I guess
> that
> > still won't tell you if the client failed to renew the lease, but you
> would
> > have a reference to the CAO if you wanted to poll it's Lease state. I
am
> > not sure what would happen if you kept a reference to it in a hashtable,
> > returned it to the client as a CAO, it expires - the remoting
> infrastructure
> > performs the steps below, and then you try to check it's Lease state. An
> > exception of some kind would most likely be thrown. So, in short the
> answer
> > to your question:
> >
> > > Again, the idea is to get some notification when the CAO expires
because
> > the
> > > client side sponsor is not reachable.
> > seems to be difficult to impossible.
> >
> > > however that
> > > article as well as the coverage in the book "Advanced .NET Remoting"
do
> > not
> > > indicate what precisely happens when an object expires.
> >
> > I have a book:
> >
> > Microsoft .NET Remoting
> > by Scott McLean, et al.
> >
>
http://www.amazon.com/exec/obidos/tg/detail/-/0735617783/qid=1097733159/sr=1-3/ref=sr_1_3/104-1876926-7263927?v=glance&a...
> >
> > that states the following:
> >
> > "The lease manager notifies each expired lease that it has expired, at
> which
> > point the lease will begin asking its sponsors to renew it. If the lease
> > doesn't have any sponsors or if all sponsors fail to renew the lease,
the
> > lease will cancel itself by performing the following operations:
> > 1.. Sets its state to
> System.Runtime.Remoting.Lifetime.LeaseState.Expired
> >
> > 2.. Notifies the lease manager that it should remove this lease from
its
> > lease table
> >
> > 3.. Disconnects the remote object from the .NET Remoting
infrastructure
> >
> > 4.. Disconnects the lease object from the .NET Remoting infrastructure
> >
> > At this point, the .NET Remoting infrastructure will no longer reference
> the
> > remote object or its lease, and both objects will be available for
garbage
> > collection."
> >
> > Good luck.
> >
> > Thanks,
> >
> > Sam
> > --
> > _______________________________
> > Sam Santiago
> > ssantiago@n0spam-SoftiTechture.com
> > http://www.SoftiTe...
> > _______________________________
> > "Eric Twietmeyer" <noone@nowhere.com> wrote in message
> > news:y_ednbSNFP7ccfDcRVn-uw@comcast.com...
> > > Yes, I think I am aware of many of the details of sponsorship, however
> > that
> > > article as well as the coverage in the book "Advanced .NET Remoting"
do
> > not
> > > indicate what precisely happens when an object expires. Is there some
> way
> > > to get notification of an object expiring, or is it necessary to poll
> the
> > > LeaseState of the object?
> > >
> > > Again, the idea is to get some notification when the CAO expires
because
> > the
> > > client side sponsor is not reachable.
> > >
> > > Thanks,
> > >
> > > -Eric Twietmeyer
> > >
> > >
> > > "Sam Santiago" <ssantiago@n0spam-SoftiTechture.com> wrote in message
> > > news:OIf$k0XsEHA.3076@TK2MSFTNGP09.phx.gbl...
> > > > I think this article will answer many of your questions:
> > > >
> > > > Managing the Lifetime of Remote .NET Objects with Leasing and
> > Sponsorship
> > > >
> http://msdn.microsoft.com/msdnmag/issues/03/12/LeaseManager/de...
> > > >
> > > > I think your idea will work. You could define a sponsor on the
client
> > (a
> > > > MarshalByRefObject) that is contacted whenever the CAO lease is to
> > expire
> > > to
> > > > determine whether to renew or not. 10 seconds sounds like a short
> > amount
> > > of
> > > > time and you might be generating a ton of unnecessary network
traffic
> as
> > a
> > > > side effect. I would try to determine the expected lifetime you
> desire
> > > for
> > > > your objects to avoid a chatty application. I don't think this
> article
> > > > states what happens when the sponsor is not reachable - you client
app
> > > dies.
> > > > My assumption is that the CAO's lease is not extended, but you can
try
> > it
> > > > out to verify.
> > > >
> > > > Thanks,
> > > >
> > > > Sam
> > > >
> > > > --
> > > > _______________________________
> > > > Sam Santiago
> > > > ssantiago@n0spam-SoftiTechture.com
> > > > http://www.SoftiTe...
> > > > _______________________________
> > > > "Eric Twietmeyer" <notvalid@noisp.com> wrote in message
> > > > news:%23x5$jdXsEHA.1016@TK2MSFTNGP10.phx.gbl...
> > > > > Hello,
> > > > >
> > > > > I'm just now entering the world of .NET remoting. I've been
reading
> > > Ingo
> > > > > Rammer's book and am looking at the section on leases and
sponsors.
> > > > >
> > > > > I'm wondering if I can use this sponsorship idea to keep track of
> > > whether
> > > > > the client app is alive. My idea is to register a sponsor with a
> CAO
> > > with
> > > > a
> > > > > renewal time of say 10 seconds (assuming initial lease time is 10
> > > > seconds).
> > > > > The CAO is assumed to live for the lifetime of the client
> application.
> > > So
> > > > > the sponsor will keep returning 10 second while the client app is
> > > running.
> > > > >
> > > > > If the client app falls over (which in my case may unfortunately
> > occur),
> > > > the
> > > > > 10 second period will expire and then the server will try to
contact
> > the
> > > > > sponsor, fail and then mark the CAO as Expired (I guess?).
> > > > >
> > > > > My question is, is there some way I can tell on the server that
the
> > CAO
> > > > has
> > > > > expired so that the server in fact then knows that the client app
> > itself
> > > > has
> > > > > died? Will the destructor of the CAO be called? I assume only
> during
> > > > > finalization. How about IDispose if it derives from IDisposable?
> > Will
> > > > that
> > > > > be called when the state changes to Expired? If not, is there
some
> > way
> > > on
> > > > > the server in the CAO itself to know its Lease state has changed
to
> > > > Expired?
> > > > > Or do I just need to poll?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > -Eric Twietmeyer
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>