[
https://issues.apache.org/jira/browse/FELIX-5383?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15583618#comment-15583618
]
Matt Magoffin commented on FELIX-5383:
--------------------------------------
Hi Guillaume,
Thank you for responding. Let me start off by saying I am using Gemini
Blueprint (not Aries), and running on Equinox (not Felix, and not using Karaf).
I am simply deploying File Install with a service configuration like:
{noformat}
felix.fileinstall.poll = 0
felix.fileinstall.dir = app/main
felix.fileinstall.noInitialDelay = true
felix.fileinstall.bundles.new.start = true
felix.fileinstall.disableConfigSave = true
felix.fileinstall.active.level = 9
felix.fileinstall.start.level = 9
{noformat}
Within that {{app/main}} directory I have many bundles. In one example where I
get a timeout is on a web application bundle (I'll just call it bundle
{{web}}), that when started by File Install has the Gemini Web extender is
trying to initialize non-optional Blueprint dependencies that are provided by
other bundles in {{app/main}}. If those other bundles happen to have been
started by File Install already, everything is fine. Otherwise, the {{web}}
bundle blocks, waiting as long as the configured Blueprint service timeout,
before giving up. Once it gives up, File Install continues starting the other
bundles in {{app/main}}, but when finished the {{web}} bundle will be left
un-started.
With the change in my branch, I add this to the File Install configuration:
{noformat}
felix.fileinstall.start.tasks = 5
felix.fileinstall.start.tasksRetryDelay = 1
{noformat}
and then even if {{web}} ends up blocking while it waits for non-optional
services, other bundles continue to be started by File Install and eventually
those services become available and {{web}} can start successfully.
> Support parallel bundle starting
> --------------------------------
>
> Key: FELIX-5383
> URL: https://issues.apache.org/jira/browse/FELIX-5383
> Project: Felix
> Issue Type: Improvement
> Components: File Install
> Affects Versions: fileinstall-3.5.4
> Reporter: Matt Magoffin
> Assignee: Guillaume Nodet
>
> I have an application that uses Felix File Install to start a set of bundles
> that use Blueprint configuration extensively, but with the poll time disabled
> ({{felix.fileinstall.poll = 0}}) because I only want the bundles started at
> application startup time. Sometimes one bundle might have a Blueprint service
> dependency provided by another bundle such that when started and that other
> bundle has not been started yet causes a service timeout. The ordering File
> Install uses to start bundles is indeterminate (a {{HashSet}} is passed to
> {{startBundles(Collection<Bundle> bundles)}}) so I thought a good solution
> would be to start bundles in parallel, so if one bundle gets stuck when
> starting, waiting for a Blueprint service to become available, other bundles
> can continue to be started under the assumption one of them will be providing
> that service "soon".
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)