Hi GregThanks for the link. Sorry, I could not find the tutorial about hello-service. Did I miss something from the link below. However, there was the GreeterService.java file. RegardsBishnu
Bishnu Prasad Gautam > From: tras...@stratuscom.com > Subject: Re: River-examples project - followup > Date: Tue, 7 Apr 2015 09:45:46 -0400 > To: dev@river.apache.org > > > 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> > >>> > >> > > >