« Return to Thread: LE.2.1 Characteristics of a Lease

Re: LE.2.1 Characteristics of a Lease

by Gregg Wonderly-2 :: Rate this Message:

Reply to Author | View in Thread

Bob Scheifler wrote:
>> Is it possible for a lease renewal to extend the expiry time beyond
>> what the granter returned via Lease.getExpiration()'s value at the
>> time the Lease is created?
>
> Yes, that's pretty much the purpose of lease renewal.

As another follow up, it seems to me that there is a lot of confusing
terminology rolled into the lease javadocs.  I didn't seem to find a nice
explanation of the usage patterns that would of allowed me to find out the
information that I've spent a couple of days of discovery on.

I found it confusing at times to try and understand the various time values and
their usages.  The absolute time used to create a lease (LeaseFactory.newLease()
most likely used), created the view for me, that the caller makes the decision
of when the lease ultimately expires, absolutely by passing some precise time.
  This led me to believe that a forever lease, required the granter to use
Lease.FOREVER as the LeaseFactory.newLease() argument, for any lease that was
open ended.  I thought that was a bit odd, and that's why I posted to the list.

The lease granter didn't appear to get any chance to "cap" the time on the
lease, except through this argument to LeaseFactory.newLease().  I think it
would be great to have a little more visibility of the relationship of expiry,
vs the requested lease duration in the javadocs.

Is there a pattern, or something else done normally that makes this all a little
more obvious?  LeaseRenewalManager.renewUntil()'s two different signatures allow
it to either get an explicit renewal interval, or choose one based on the leases
expiry and renew returned duration.  But, it's not clear how these times would
relate to the Lease granters used time in creating the lease.

The client gets to say, explicitly how long it is interested, while the granter,
seems to have that with the LeaseFactory.newLease() argument, but not actually,
because Landlord impls can accept renewals forever.  So, a granter has to
provide the Landlord impl as a closely associated implementation detail if it
wants to manage a cap on the lease.  The Landlord interface doesn't provide such
an API, so probably a more specialized implementation would be used in such cases.

When I've just used leases related to transactions and
ServiceRegistrar.notify(), the LRM provided me what I thought was an appropriate
mechanism as a client.  Implementing a Landlord, has revealed some things that I
just didn't grasp well before I guess.  I just need open ended leases, but I
keep trying to figure out how 'capped' leases would be implemented, and I think
it's a Landlord implementation detail, not a LeaseFactory.newLease() argument
detail.

Perhaps newLease() documentation could help with this by discussing more about
the expiration argument.  It calls in the initial expiration time.  With some
more thought about the words and what I know, the text there is probably
sufficient for the informed, but perhaps somewhat terse for those trying to
understand how Landlord should use that value.

Gregg Wonderly

--------------------------------------------------------------------------
Getting Started:     http://www.jini.org/wiki/Category:Getting_Started
Community Web Site:  http://jini.org
jini-users Archive:  http://archives.java.sun.com/archives/jini-users.html
Unsubscribing:       email "signoff JINI-USERS"  to listserv@...

 « Return to Thread: LE.2.1 Characteristics of a Lease