Hi Ronny,
I guess it's because you enabled the synchronizer.
I will take a look tonight (it's cast in Blueprint). I bet it doesn't
occur with listener (as it's the recommended configuration and the one
that I tested by default).
I keep you posted.
Regards
JB
On 01/27/2015 06:41 PM, Ronny Bräunlich wrote:
Hi Jean-Baptiste,
the configuration you suggested doesn’t work.
The factory on node2 doesn’t make a move. But I can see this in the log:
2015-01-27 18:39:10,582 | WARN | r.IO.thread-in-1 | ReadHandler
| 66 - com.hazelcast - 3.3.4 | [192.168.0.125]:5702
[cellar] [3.3.4] hz._hzInstance_1_cellar.IO.thread-in-1 Closing socket
to endpoint Address[192.168.0.125]:5703, Cause:java.io.EOFException:
Remote socket closed!
2015-01-27 18:39:10,592 | ERROR | FelixStartLevel |
BlueprintContainerImpl | 15 - org.apache.aries.blueprint.core
- 1.4.1 | Unable to start blueprint container for bundle
org.apache.karaf.cellar.hazelcast
org.osgi.service.blueprint.container.ComponentDefinitionException:
org.osgi.service.blueprint.container.ComponentDefinitionException:
Unable to initialize bean groupManager
at
org.apache.aries.blueprint.container.ServiceRecipe.createService(ServiceRecipe.java:299)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.ServiceRecipe.internalGetService(ServiceRecipe.java:251)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.ServiceRecipe.internalGetService(ServiceRecipe.java:239)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.ServiceRecipe.getClasses(ServiceRecipe.java:372)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.ServiceRecipe.register(ServiceRecipe.java:185)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.BlueprintContainerImpl.registerServices(BlueprintContainerImpl.java:703)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:377)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:269)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:276)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:245)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:235)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)[9:org.apache.aries.util:1.1.0]
at
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)[9:org.apache.aries.util:1.1.0]
at
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)[9:org.apache.aries.util:1.1.0]
at
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)[9:org.apache.aries.util:1.1.0]
at
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)[9:org.apache.aries.util:1.1.0]
at
org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1103)[org.apache.felix.framework-4.2.1.jar:]
at
org.apache.felix.framework.util.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:695)[org.apache.felix.framework-4.2.1.jar:]
at
org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:483)[org.apache.felix.framework-4.2.1.jar:]
at
org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4403)[org.apache.felix.framework-4.2.1.jar:]
at
org.apache.felix.framework.Felix.startBundle(Felix.java:2092)[org.apache.felix.framework-4.2.1.jar:]
at
org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1291)[org.apache.felix.framework-4.2.1.jar:]
at
org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:304)[org.apache.felix.framework-4.2.1.jar:]
at java.lang.Thread.run(Thread.java:722)[:1.7.0_17]
Caused by:
org.osgi.service.blueprint.container.ComponentDefinitionException:
Unable to initialize bean groupManager
at
org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:714)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:824)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:787)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)
at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)[:1.7.0_17]
at java.util.concurrent.FutureTask.run(FutureTask.java:166)[:1.7.0_17]
at
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:62)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:106)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:933)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:907)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:888)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:820)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:787)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)
at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)[:1.7.0_17]
at java.util.concurrent.FutureTask.run(FutureTask.java:166)[:1.7.0_17]
at
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:62)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:106)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.ServiceRecipe.createService(ServiceRecipe.java:284)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.ServiceRecipe.internalGetService(ServiceRecipe.java:251)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.ServiceRecipe.getService(ServiceRecipe.java:354)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.ServiceRecipe$TriggerServiceFactory.getService(ServiceRecipe.java:507)
at
org.apache.felix.framework.ServiceRegistrationImpl.getFactoryUnchecked(ServiceRegistrationImpl.java:308)
at
org.apache.felix.framework.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:219)
at
org.apache.felix.framework.ServiceRegistry.getService(ServiceRegistry.java:320)
at
org.apache.felix.framework.Felix.getService(Felix.java:3568)[org.apache.felix.framework-4.2.1.jar:]
at
org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:468)[org.apache.felix.framework-4.2.1.jar:]
at
org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.getServiceSecurely(AbstractServiceReferenceRecipe.java:238)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.ReferenceListRecipe$ServiceDispatcher.call(ReferenceListRecipe.java:211)
at Proxy7b861b7c_07b4_4f14_9b29_85f68cd989a5.getType(Unknown Source)
at
org.apache.karaf.cellar.core.event.EventHandlerServiceRegistry.bind(EventHandlerServiceRegistry.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_17]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_17]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_17]
at java.lang.reflect.Method.invoke(Method.java:601)[:1.7.0_17]
at
org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:297)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe$Listener.invokeMethods(AbstractServiceReferenceRecipe.java:574)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe$Listener.bind(AbstractServiceReferenceRecipe.java:556)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.bind(AbstractServiceReferenceRecipe.java:451)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.ReferenceListRecipe.track(ReferenceListRecipe.java:134)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.serviceAdded(AbstractServiceReferenceRecipe.java:368)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.serviceChanged(AbstractServiceReferenceRecipe.java:347)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932)[org.apache.felix.framework-4.2.1.jar:]
at
org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:793)[org.apache.felix.framework-4.2.1.jar:]
at
org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:543)[org.apache.felix.framework-4.2.1.jar:]
at
org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4419)[org.apache.felix.framework-4.2.1.jar:]
at
org.apache.felix.framework.Felix.registerService(Felix.java:3423)[org.apache.felix.framework-4.2.1.jar:]
at
org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:346)[org.apache.felix.framework-4.2.1.jar:]
at
org.apache.aries.blueprint.container.BlueprintContainerImpl.registerService(BlueprintContainerImpl.java:452)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.ServiceRecipe.register(ServiceRecipe.java:192)[15:org.apache.aries.blueprint.core:1.4.1]
... 19 more
Caused by: java.lang.ClassCastException:
Proxydd524705_c712_4fa1_8eca_0b3c619efca8 cannot be cast to
org.apache.karaf.cellar.core.Synchronizer
at
org.apache.karaf.cellar.hazelcast.HazelcastGroupManager.registerGroup(HazelcastGroupManager.java:403)
at
org.apache.karaf.cellar.hazelcast.HazelcastGroupManager.registerGroup(HazelcastGroupManager.java:427)
at
org.apache.karaf.cellar.hazelcast.HazelcastGroupManager.init(HazelcastGroupManager.java:101)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_17]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_17]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_17]
at java.lang.reflect.Method.invoke(Method.java:601)[:1.7.0_17]
at
org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:297)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:958)[15:org.apache.aries.blueprint.core:1.4.1]
at
org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:712)[15:org.apache.aries.blueprint.core:1.4.1]
... 70 more
It happened the first time after I wanted to start the factory on node
two and stays that way even after restart.
Cheers,
Ronny
Am 23.01.2015 um 08:07 schrieb Jean-Baptiste Onofré <[email protected]
<mailto:[email protected]>>:
Hi Ronny,
As you use cfg file in etc folder, having:
- config.listener=true
- and service.factoryPid in the excluded properties
should work. I mean the -1.cfg should be sync on both node.
Correct ?
Regards
JB
On 01/23/2015 07:38 AM, Ronny Bräunlich wrote:
Hi Achim, Hi Jean-Baptiste,
that was a lot of input for me.
Let me start with your questions:
>The ManagedServiceFactory comes from a bundle right ?
>It's a bundle containing a service implementing ManagedServiceFactory.
Right!
>So, you have to sync the bundle with Cellar: you will have the factory
on the nodes, and the sync on the config created by the factory.
>You see what I mean ?
I am not sure what you mean. Synchronising the bundle will lead to a
factory on each node, right. But what do you mean with "the sync on the
config created by the factory"? Do you mean the actual file or the object?
>By the way, do you use etc/*.cfg file or config:* commands to create
the config files ?
I used a .cfg file. As you taught me its name is the Factory PID "-1.cfg".
>Sometime I think a management server isn't always the worst idea when
configuring a cluster.
No objections ;)
Cheers,
Ronny
2015-01-22 21:24 GMT+01:00 Jean-Baptiste Onofré <[email protected]
<mailto:[email protected]>
<mailto:[email protected]>>:
Anyway, honestly, I don't see a huge issue just by excluding
factoryPid and sync the PID. It's not perfect, but it works fine if
the file are present in the etc folder.
Regards
JB
On 01/22/2015 08:50 PM, Achim Nierbeck wrote:
JB, no problem at all.
My first idea to use a UUID made of the nodeID and the
factoryPid, does
have some dangers though.
If someone adds this configuration on two nodes it is
duplicated. But
one has to die one death ;)
Sometime I think a management server isn't always the worst idea
when
configuring a cluster.
regards, Achim
2015-01-22 20:43 GMT+01:00 Jean-Baptiste Onofré
<[email protected] <mailto:[email protected]>
<mailto:[email protected]>
<mailto:[email protected] <mailto:[email protected]>>>:
By the way, thanks Achim again for the discussion ;)
On 01/22/2015 08:41 PM, Jean-Baptiste Onofré wrote:
In order to manage service factory in a better way, I
can implement
something similar to fileinstall: a specific property like
karaf.cellar.factoryPid to know where the factory comes
from.
It's the way that fileinstall manage each *.cfg file
(adding the
felix.fileinstall.filename property).
Let me dig around that and improve this.
Regards
JB
On 01/22/2015 06:27 PM, Ronny Bräunlich wrote:
Hi everyone,
I am using Apache Karaf 3.0.2 and Cellar
3.0.1-SNAPSHOT
(built from
commit
7a598b285f7b302efa15d9887dfea9____d855b9951a) and I
think I found a
bug.
I have two Karaf instances running. On both I
installed
Cellar and this
simple project
https://github.com/____rbraeunlich/karaf-managed-____service-factory-example
<https://github.com/__rbraeunlich/karaf-managed-__service-factory-example>
<https://github.com/__rbraeunlich/karaf-managed-__service-factory-example
<https://github.com/rbraeunlich/karaf-managed-service-factory-example>>
After setting config.listener = true on both and
removing
service.factoryPid from the
config.excluded.properties I
dropped a
config file into the etc/ directory.
Then I could see the factory on the first Karaf
instance
getting called
with the properties roughly every 100ms.
Debugging the Karaf couldn’t show me the source of the
problem. I
suggest the Karaf updates itself and therefore
calls the
update() method
all the time.
The second instance didn’t make a move all the time.
Does anyone have a clue?
Cheers,
Ronny
--
Jean-Baptiste Onofré
[email protected] <mailto:[email protected]>
<mailto:[email protected]>
<mailto:[email protected] <mailto:[email protected]>>
http://blog.nanthrax.net
Talend - http://www.talend.com
--
Apache Member
Apache Karaf <http://karaf.apache.org/> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/__display/paxweb/Pax+Web/
<http://wiki.ops4j.org/display/paxweb/Pax+Web/>> Committer
& Project Lead
blog <http://notizblog.nierbeck.de/__>
Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
Software Architect / Project Manager / Scrum Master
--
Jean-Baptiste Onofré
[email protected] <mailto:[email protected]>
<mailto:[email protected]>
http://blog.nanthrax.net
Talend - http://www.talend.com
--
Jean-Baptiste Onofré
[email protected] <mailto:[email protected]>
http://blog.nanthrax.net
Talend - http://www.talend.com
--
Jean-Baptiste Onofré
[email protected]
http://blog.nanthrax.net
Talend - http://www.talend.com