http://svn.apache.org/repos/asf/river/river-examples/river-examples/trunk is 
the public svn folder.

Cheers,

Greg Trasuk.

On Apr 7, 2015, at 12:13 AM, Bishnu Gautam <bishn...@hotmail.com> wrote:

> 
> Hi Greg
> Could you send me the SVN info to download the tutorials and other 
> information that you updated. It would be great if you send me those 
> information.
> RegardsBishnu
> 
> Bishnu Prasad Gautam
> 
> 
>> Subject: Re: River-examples project - followup
>> From: tras...@stratuscom.com
>> Date: Mon, 6 Apr 2015 21:56:14 -0400
>> To: dev@river.apache.org
>> 
>> 
>> Hi all:
>> 
>> I updated the tutorial to include the discussion below in the 
>> “hello-service” module.  ‘svn up’ should bring it down to your local 
>> machine.  I haven’t yet integrated Patricia’s formatting suggestions, mainly 
>> because I have to dig in to Maven’s site command a bit to include the 
>> correct css, but I’ll do that before we release.
>> 
>> Any feedback is greatly appreciated.
>> 
>> Cheers,
>> 
>> Greg Trasuk
>> 
>> On Apr 6, 2015, at 3:30 PM, Greg Trasuk <tras...@stratuscom.com> wrote:
>> 
>>> 
>>> Hi Dan:
>>> 
>>> Thanks for the great feedback.  
>>> 
>>> I’m pretty sure you already know this, Dan, since you’re a long-time Jini 
>>> user, but let me explain for the newer folks and the archives.  This is a 
>>> case where what you’re seeing is the expected behaviour.  When the service 
>>> registers itself with Reggie, it takes out a lease on the registration. 
>>> That lease is usually renewed periodically by the service’s JoinManager 
>>> (that isn’t quite the whole story, but it’ll do for now).  When you kill 
>>> the service unexpectedly with ctrl-c, the service doesn’t de-register 
>>> itself, however the lease eventually runs out (now that it’s not being 
>>> renewed by the service) and then the registration expires, allowing Reggie 
>>> to reclaim its resources and notify any registrar listeners. 
>>> 
>>> It would be possible to register a vm shutdown hook to de-register the 
>>> service before the vm exits, but in this case I think it’s actually better 
>>> to leave it out, since it demonstrates nicely that a dead  service (or at 
>>> least a dead JoinManager) eventually gets dropped from the registrar.
>>> 
>>> You said the duplicate service instances “worked”, in that you can show 
>>> info and browse the service, but of course, you’re really just looking at 
>>> the information that’s in the registry - the registrar and service browser 
>>> don’t actually contact the service.  Reggie has no knowledge of the 
>>> “liveness” of the service, and doesn’t attempt to do any “health check”.  
>>> 
>>> In fact, it’s a common misconception that if the service renews the lease, 
>>> it must be “live”.  This turns out to be false for many reasons.  (1) The 
>>> service could have delegated its lease renewals to a different service.  
>>> (2) There’s no guarantee that failure of the actual service thread would 
>>> also cause failure of the lease renewal thread, even if they are in the 
>>> same process (embedded programmers might recognize this as being similar to 
>>> the “resetting the watchdog in a timer-triggered interrupt service routine” 
>>> problem).  (3) Even if there were a health check task, the service could 
>>> fail in the instant just after the health check.  The most a health check, 
>>> monitor or heartbeat can do is place a limit on how long it takes to find 
>>> out a service has failed.  The only way to say with certainty that a 
>>> service “works” is to attempt to use it.
>>> 
>>> The lease is purely for the convenience of the registrar (or generically, 
>>> the service granting the lease).  If ever the lease is not renewed, the 
>>> landlord can go ahead and reclaim whatever resources were dedicated to the 
>>> lease.  In the case of Reggie, if the lease isn’t renewed, Reggie drops the 
>>> registration.  So there’s little risk of “stuck registrations”.  And since 
>>> the lease can be renewed, there’s no need for any kind of extended default 
>>> timeout.
>>> 
>>> So, I think I’ll put most of the above explanation into the tutorial, 
>>> unless anyone has other thoughts.
>>> 
>>> Cheers,
>>> 
>>> Greg Trasuk
>>> 
>>> On Apr 6, 2015, at 1:42 PM, Dan Rollo <danro...@gmail.com> wrote:
>>> 
>>>> Hi Greg,
>>>> 
>>>> I finally took some time to try this out. It really looks great to me!
>>>> 
>>>> I noticed one minor thing that I thought might confuse users: While going 
>>>> through tutorial steps, I decided to stop (via cntrl+c) are restart the 
>>>> hello-service a couple times. This resulted in the service being shown 
>>>> multiple times in the service browser (screenshot attached). It appeared 
>>>> all the duplicate instances in the browser “worked” (I could “show info” 
>>>> and “browse service” on all of them). Eventually, the duplicate 
>>>> registrations “cleaned up” and I was left with just one. I’m not sure how 
>>>> best to avoid confusion about this situation. Would more doc about 
>>>> “why”/“how” that works just complicate things? Is there any sort of “force 
>>>> lease check” to do in the browser that could clear up the duplicates 
>>>> sooner? (And if so, would that be worth noting in the tutorial?). So 
>>>> basically, not sure this is a “problem”, but thought I’d ask…
>>>> 
>>>> Thanks!
>>>> Dan
>>>> 
>>>> <revier-examples-RepeatedService.png>
>>> 
>> 
>                                         

Reply via email to