aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Guillaume Nodet <gno...@apache.org>
Subject Re: Do we really need Quiesce support?
Date Thu, 12 Feb 2015 11:06:28 GMT
I think I actually do understand the need.
When you want to stop a bunch of bundles, you can choose to stop them in a
random order, or in a smart way.
At the end the result may not be the same.

Let me take an example: a cxf service which accesses a database.
If you choose a random order, you may shut down the database access
(DataSource in osgi for example), before shutting down the cxf service.
The effect will be that you will make inflight requests to fail.
The correct way would be to shut down the cxf service in a clean way, i.e.
do not accept any more incoming requests, and wait for inflight requests to
be finished, then shut down the cxf service, then shutdown the jdbc factory.

This is somewhat what the bluprint extender try to do when you shutdown the
extender itself, but if you bundles encompass multiple different extenders,
they need to cooperate in a smarter way.  This could also apply to CXF
services, camel routes, etc...


2015-02-12 11:55 GMT+01:00 Christian Schneider <chris@die-schneider.net>:

> I understand the need to clean up but the OSGi BundleTracker should
> already provide all that.
> We even already track these events in aries jpa.
> See http://www.osgi.org/javadoc/r4v42/org/osgi/util/tracker/
> BundleTracker.html
>
> So when a bundle is stopped or uninstalled then aries jpa can already
> clean up without the Quiesce API.
> Interestingly in apache karaf we do not use the Quiesce API.
>
> Can you describe what happens when we just uninstall a persisence unit
> bundle? Will the resources then not be cleaned up correctly?
>
> Btw. One of our customers is facing this issue https://issues.apache.org/
> jira/browse/ARIES-1270
> Is this one of these problematic cases or is it just a bug that we can fix
> independently of the Quiesce API? The issue seems to be related to the
> jpa.container module as
> it is independent of jpa.container.context. Unfortunately I was not able
> to find the root cause of it.
>
> Christian
>
> On 12.02.2015 11:25, Graham Charters wrote:
>
>> Hi David/Christian,
>>
>> Here is what Mark wrote, that didn't make it:
>>
>> "Quiesce is about stopping a bundle gracefully prior to its
>> uninstallation,
>> which is why we've had no need to implement a 'restart' capability. We
>> currently use Apache Aries quiesce within IBM WebSphere Application
>> Server.
>> It's used in a scenario where an administrator is replacing some of the
>> bundles within a running application. The code has been in use in that
>> product for some years now so yes, I'm sorry but we do have a definite
>> need
>> for the facility."
>>
>> Essentially, we use it to notify containers/extenders of bundles that are
>> about to be uninstalled (prior to that actually being done) so they can
>> perform house-keeping ahead of uninstallation being kicked off.
>>
>> Regards, Graham.
>>
>>
>>
>>
> --
> Christian Schneider
> http://www.liquid-reality.de
>
> Open Source Architect
> http://www.talend.com
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message