If you just want to share the bundles between various Felix instances you can try specifying a different value for 'org.osgi.framework.storage' [1] for each launch command say by passing in a system property. This would allow Felix to use different dir for its caches and hence would avoid any potential issue related to concurrent access.
[1] http://felix.apache.org/site/apache-felix-framework-bundle-cache.html Chetan Mehrotra On Wed, Jun 19, 2013 at 1:19 PM, Benoît Thiébault <thieba...@artenum.com> wrote: > Multiple JVM (and separate processes). > > Le 19 juin 2013 à 09:47, Chetan Mehrotra a écrit : > >> Do you want to launch multiple jvm (seprate processes) of Felix or >> within same process multiple Felix instances? >> >> Chetan Mehrotra >> >> >> On Wed, Jun 19, 2013 at 1:12 PM, Benoît Thiébault <thieba...@artenum.com> >> wrote: >>> Hi everyone, >>> >>> We have developed a simulation software based on OSGi and using Felix. >>> >>> The execution of the application is done in a script that executes the >>> following command: >>> java -jar >>> -Dfelix.config.properties=file:./resources/felix/config.properties >>> ./dependencies/thirdparty/felix-4.0.2/felix.jar >>> >>> We then have two folders containing all the OSGi bundles that are >>> automatically installed and started by felix when it is launched. >>> >>> This works very well. >>> >>> Users have however requested to be able to launch several instances of our >>> software (to run several simulations in parallel for instance). This >>> however does not work and I think felix has difficulties dealing with the >>> cache folder when multiple instances are running in parallel >>> >>> Our Felix config.properties file is in attachement. >>> >>> Does anyone know how to solve this problem? >>> >>> Kind regards, >>> >>> Ben >>> >>> # Licensed to the Apache Software Foundation (ASF) under one >>> # or more contributor license agreements. See the NOTICE file >>> # distributed with this work for additional information >>> # regarding copyright ownership. The ASF licenses this file >>> # to you under the Apache License, Version 2.0 (the >>> # "License"); you may not use this file except in compliance >>> # with the License. You may obtain a copy of the License at >>> # >>> # http://www.apache.org/licenses/LICENSE-2.0 >>> # >>> # Unless required by applicable law or agreed to in writing, >>> # software distributed under the License is distributed on an >>> # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> # KIND, either express or implied. See the License for the >>> # specific language governing permissions and limitations >>> # under the License. >>> >>> # >>> # Framework config properties. >>> # >>> >>> # To override the packages the framework exports by default from the >>> # class path, set this variable. >>> #org.osgi.framework.system.packages= >>> >>> # To append packages to the default set of exported system packages, >>> # set this value. >>> #org.osgi.framework.system.packages.extra= >>> >>> # The following property makes specified packages from the class path >>> # available to all bundles. You should avoid using this property. >>> org.osgi.framework.bootdelegation=sun.awt.*, sun.sun.*, com.sun.org.*, >>> com.sun.*, sun.*, org.w3c.dom.traversal >>> #sun.*, com.sun.* >>> >>> # Felix tries to guess when to implicitly boot delegate in certain >>> # situations to ease integration without outside code. This feature >>> # is enabled by default, uncomment the following line to disable it. >>> #felix.bootdelegation.implicit=false >>> >>> # The following property explicitly specifies the location of the bundle >>> # cache, which defaults to "felix-cache" in the current working directory. >>> # If this value is not absolute, then the felix.cache.rootdir controls >>> # how the absolute location is calculated. (See next property) >>> #org.osgi.framework.storage=${felix.cache.rootdir}/felix-cache >>> >>> # The following property is used to convert a relative bundle cache >>> # location into an absolute one by specifying the root to prepend to >>> # the relative cache path. The default for this property is the >>> # current working directory. >>> felix.cache.rootdir=${user.dir} >>> >>> # The following property controls whether the bundle cache is flushed >>> # the first time the framework is initialized. Possible values are >>> # "none" and "onFirstInit"; the default is "none". >>> org.osgi.framework.storage.clean=onFirstInit >>> >>> # The following property determines which actions are performed when >>> # processing the auto-deploy directory. It is a comma-delimited list of >>> # the following values: 'install', 'start', 'update', and 'uninstall'. >>> # An undefined or blank value is equivalent to disabling auto-deploy >>> # processing. >>> felix.auto.deploy.action=install,start >>> >>> # The following property specifies the directory to use as the bundle >>> # auto-deploy directory; the default is 'bundle' in the working directory. >>> felix.auto.deploy.dir=./dependencies/main >>> >>> # The following property is a space-delimited list of bundle URLs >>> # to install when the framework starts. The ending numerical component >>> # is the target start level. Any number of these properties may be >>> # specified for different start levels. >>> #felix.auto.install.1= >>> >>> # The following property is a space-delimited list of bundle URLs >>> # to install and start when the framework starts. The ending numerical >>> # component is the target start level. Any number of these properties >>> # may be specified for different start levels. >>> #felix.auto.start.1= >>> >>> felix.log.level=1 >>> >>> # Sets the initial start level of the framework upon startup. >>> #org.osgi.framework.startlevel.beginning=1 >>> >>> # Sets the start level of newly installed bundles. >>> #felix.startlevel.bundle=1 >>> >>> # Felix installs a stream and content handler factories by default, >>> # uncomment the following line to not install them. >>> #felix.service.urlhandlers=false >>> >>> # The launcher registers a shutdown hook to cleanly stop the framework >>> # by default, uncomment the following line to disable it. >>> #felix.shutdown.hook=false >>> >>> # >>> # Bundle config properties. >>> # >>> org.osgi.service.http.port=8080 >>> obr.repository.url=http://felix.apache.org/obr/releases.xml >>> >>> # File install configuration >>> felix.fileinstall.dir=./lib >>> felix.fileinstall.log.level=1 >>> felix.fileinstall.noInitialDelay=true >>> felix.fileinstall.poll=10000 >>> >>> >>> -- >>> Dr Benoît Thiébault >>> Project Manager >>> >>> Artenum Toulouse - Science & Groupware >>> http://www.artenum.com >>> >>> Bâtiment Calfocenter >>> 10, rue Marguerite-Long >>> 31320 Castanet-Tolosan >>> France >>> Phone: +33 (0)5 82 95 19 00 >>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@felix.apache.org >>> For additional commands, e-mail: users-h...@felix.apache.org >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@felix.apache.org >> For additional commands, e-mail: users-h...@felix.apache.org >> > > -- > Dr Benoît Thiébault > Project Manager > > Artenum Toulouse - Science & Groupware > http://www.artenum.com > > Bâtiment Calfocenter > 10, rue Marguerite-Long > 31320 Castanet-Tolosan > France > Phone: +33 (0)5 82 95 19 00 > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@felix.apache.org For additional commands, e-mail: users-h...@felix.apache.org