On 21.06.2016 15:49, Thomas Watson
wrote:
I don't know the
internals of Felix framework
well. But in discussions with Richard Hall I know it used to
have
a rather coarse grain locking strategy for installing, resolving
and setting
of start-levels. This lock may be preventing the situation by
blocking
some thread from starting the bundles while all the bundles get
installed.
The Equinox Luna release redid its locking strategy in the
Equinox
framework to allow more concurrent read-access to the internal
bundle state
(or container).
What I suspect is going on is
that in
a background thread karaf is installing and starting bundles and
setting
their start-level value one-by-one, instead of installing all
bundles,
then setting their start-levels and finally starting all
bundles. Meanwhile
another thread (the framework start-level thread) is performing
the background
operation to set the bundle start-levels (one-by-one). Since
the
bundles have been marked for start and their start-level is
satisfied the
framework attempts to start the bundle. But the bundle may not
be
resolved yet, and it may not be resolvable because karaf has not
installed
all the necessary bundles yet.
Yes .. this is also what I suspected. I will change
the code to set the start levels later. Maybe this will solve the
issue.
Thanks for the help.
Christian
--
Christian Schneider
http://www.liquid-reality.de
Open Source Architect
http://www.talend.com
|