Hi David,

There are a couple of problems with the scenario you describe. 

Blurprint beans can have destroy methods, and other behaviours, that are 
affected by the blueprint container being stopped. If a consumer of a blueprint 
service is actively making a call into it when the blueprint container is being 
stopped then this leads to an unpleasant race condition. The service method 
call may fail unpleasantly as dependent services are unset half way, or beans 
are destroyed. 

This race condition can be an issue even when a new service is already 
available if the client does not eagerly switch to the new implementation (the 
default behaviour for blueprint service references). 

The quiesce support is designed to avoid these problems by unregistering the 
blueprint services, but not releasing the service references or destroying 
beans until all client method calls complete executing. 

Tim

It relies upon the client eagerly switching to the new service.

> From: [email protected]
> Date: Mon, 13 Aug 2012 11:40:15 +0100
> Subject: Re: Quiesce support for Blueprint
> To: [email protected]
> 
> Hi Tim,
> 
> Sounds interesting, is there a technical document available somewhere
> that describes a bit more in details how the Quiesce stuff works? I
> couldn't find it on the Aries wiki.
> 
> Specifically what does Quiesce add that ordinary OSGi services don't
> have? I mean, I can update a bundle without interrupting service with
> plain OSGi services by installing the updated bundle with the updated
> service alongside the old bundle first then then take away the old
> bundle.
> 
> Cheers,
> 
> David
> 
> On 13 August 2012 11:24, Timothy Ward <[email protected]> wrote:
> > Hi Martin,
> >
> > Quiesce support is an optional feature for a number of Aries components. In
> > order to use it you need to install the Quiesce API and Quiesce Manager. You
> > can then use the Quiesce service to shut down your blueprint bundles cleanly
> > even when they are still receiving requests. This allows you to do cool
> > things like "hot updating" you bundles without interrupting service. Usually
> > you would implement this as part of a custom application manager or
> > installation service.
> >
> > I hope that helps!
> >
> > Tim
> >
> > ________________________________
> > Date: Mon, 13 Aug 2012 01:14:47 -0700
> > From: [email protected]
> > Subject: Quiesce support for Blueprint
> > To: [email protected]
> >
> >
> > Hi
> >
> > At Karaf startup (in a Pax-Exam test) I see the following:
> >
> > 2012-08-13 10:05:28,974 | INFO  | FelixStartLevel  | BlueprintExtender | 9 -
> > org.apache.aries.blueprint - 0.3.2 | No quiesce support is available, so
> > blueprint components will not participate in quiesce operations
> >
> > Ist this anything I should worry about?
> > Quiescing sounds great, so ideally I'd like to use this feature.
> >
> > Martin
                                          

Reply via email to