| Subject: Problems with ZooDiscovery | 
	Author: Robert Lechner | 
	Date: Tue, 16 December 2014 15:04 | 
	
	
	I managed to use the ECF generic server to run an OSGi remote service. This works fine, even when client and server are located on different machines. 
 
Now I want to use ZooKeeper as a centralized service registry as described in wiki.eclipse.org/Zoodiscovery 
 
My problem is now, that the IDiscoveryLocator on the client side never returns any services. I debugged the code and found the following situation: 
 
ZooDiscovery runs on the client in a separate thread and gets the services from ZooKeeper. This is done in org.eclipse.ecf.provider.zookeeper.node.internal.NodeReader.processResult(); also a log is written. The service info is stored in org.eclipse.ecf.provider.zookeeper.node.internal.ReadRoot.discoverdServices 
 
The IDiscoveryLocator (implemented by org.eclipse.ecf.provider.zookeeper.core.ZooDiscoveryContainer) delegates to org.eclipse.ecf.provider.zookeeper.node.internal.WatchManager.getAllKnownServices(), but this map is always empty. 
 
My questions is: how are WatchManager and ReadRoot connected? 
 
I attached logs for ZooKeeper, server and client. 
In the client log you can see a line with "Service Discovered" in it; this shows that the client thread got the service information from ZooKeeper. 
 
I'm using Luna Service Release 1 (4.4.1) with Java 8 and ECF 3.9.0 
 
Thank you! 
	
  
![]()  | 
Attachment: client.log 
(Size: 3.90KB, Downloaded 0 times) |  
![]()  | 
Attachment: server.log 
(Size: 3.53KB, Downloaded 0 times) |  
![]()  | 
Attachment: zookeeper.log 
(Size: 5.79KB, Downloaded 0 times) |  
 
	 | 
	| 
	[ Reply ][ Quote ][ View Topic/Message ][ Unsubscribe from this forum ]
	 |