You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Felix Meschberger (Commented) (JIRA)" <ji...@apache.org> on 2011/10/09 19:17:29 UTC

[jira] [Commented] (FELIX-3039) SCR cleans up delayed service components too aggressively

    [ https://issues.apache.org/jira/browse/FELIX-3039?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13123732#comment-13123732 ] 

Felix Meschberger commented on FELIX-3039:
------------------------------------------

Actually the specification states that delayed components have to be deactivated and destroyed if not used any longer:

      If the service registered by a component configuration becomes unused
      because there are no more bundles using it, then SCR should deactivate
      that component configuration. This allows SCR implementations to eagerly
      reclaim activated component configurations. (112.5.4, Delayed Components)

While "should" of course is not a requirement, I understand it as a strong recommendation. On the other hand, since this still allows the implementation to keep the components alive, it might make sense to keep them alive.

Will consider an option "ds.dontDisposeInstances" as follows:
  * default: false -- to implement the spec recommendation
  * base (static) configuration by framework property (BundleContext.getProperty)
  * dynamic configuration through Configuration Admin (if available)
                
> SCR cleans up delayed service components too aggressively
> ---------------------------------------------------------
>
>                 Key: FELIX-3039
>                 URL: https://issues.apache.org/jira/browse/FELIX-3039
>             Project: Felix
>          Issue Type: Bug
>          Components: Declarative Services (SCR)
>            Reporter: Neil Bartlett
>            Priority: Minor
>
> In the case of an ordinary delayed service component, SCR immediately deactivates and destroys the component when its service is released by the consumer. In cases where a consumer occasionally binds and invokes the service (e.g. EventAdmin) this can cause the component to be continuously destroyed and recreated.
> Note that Equinox's DS offers a little more control, we can choose either to immediately clean up or never clean up (and the default is never). This is still not very satisfactory though.
> I think ideally there should be a configurable timeout, so that a component will be cleaned up only if it is not used for some time. I also think the default should be quite long, e.g. many minutes.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira