Hi Scott,
I tracked down the cause of the problem. Inside RemoteServiceEndpointDescriptionImpl.equals() it compares the service id location and remote service id for equality. In my case since I'm running the two hosts on the same machine, the locations are equal as the values are the IP address of the machine, and the service ids are both 0. This causes the DiscoveredServiceTrackerImpl.isValidDescription() to return false and the endpoint is not dispatched in the DiscoveredServiceTrackerImpl.serviceChanged(). It's not clear if the root cause is that the location values are only the IP address or if the equals() should compare the endpointId as the endpoint ids are unique.
Bryan
On Oct 5, 2010, at 11:21 AM, Scott Lewis wrote:
Hi Bryan,
I need to let you/all know...I am very occupied right now and so
can't work on this immediately as much as I would like.
One thing that might help diagnose this Bryan...could you describe a
few things?...e.g. what remote services are on exposed via hosts,
what is desired/expected to happen, what is the timing of the remote
service registrations (i.e. what order do things happen in), and
anything else about this use case you think is relevant.
Also...do you think you could use the Logging*DiscoveryListener, and
the Logging*DistributionListeners and have things produce the output
these listeners?
Thanks,
Scott
On 10/5/2010 8:29 AM, Bryan Hunt wrote:
Hi Scott,
I added in the listeners as suggested - results below. It
looks like the client discovers the second proxy, but never
retrieves the second proxy. Do you have a recommended
breakpoint from this datapoint?
Bryan
Output from client:
ZooDiscovery> Service Discovered: Oct 5, 2010 10:18:37
AM.
ServiceInfo[uri=9.41.188.106;id=ServiceID[type=ServiceTypeID[ typeName=_osgiservices._tcp.default._iana];location=9.41.188.106;full=_osgiservices._tcp.default._iana@9.41.188.106];priority=0;weight=0;props=ServiceProperties[{com.ibm.hdwb.jobs.common.monitor.port=9020,
ecf.sp.ect=ecf.generic.server,
com.ibm.hdwb.jobs.common.monitor.command=/afs/awd/projects/cte/tools/hdwb/prod/llmonitor/monitor.ksh,
component.id=22,
com.ibm.hdwb.jobs.common.monitor.host=tritium.austin.ibm.com,
component.name=com.ibm.hdwb.ll.server.job_queue_service,
ll_submit_command=,
ecf.rsvc.id=org.eclipse.ecf.discovery.ServiceProperties$ByteArrayWrapper@313a313a,
ecf.sp.cid=org.eclipse.ecf.discovery.ServiceProperties$ByteArrayWrapper@2e9f2e9f,
com.ibm.hdwb.jobs.common.pool.uuid=4ab60c63-c188-48e2-9db5-64d21063b01f,
com.ibm.hdwb.jobs.common.monitor.submitter=bhunt,
service.factoryPid=com.ibm.hdwb.ll.server.job_queue_service,
service.pid=com.ibm.hdwb.ll.server.job_queue_service-1286291916914-0,
com.ibm.hdwb.jobs.common.monitor.restlet.port=8080,
osgi.remote.service.interfaces=com.ibm.hdwb.jobs.common.IJobQueueService,
ecf.rsvc.ns=ecf.namespace.generic.remoteservice,
ecf.sp.cns=org.eclipse.ecf.core.identity.StringID,
com.ibm.hdwb.jobs.common.monitor.restlet.host=tritium.austin.ibm.com}]]
Proxy discovery discovered: null
Proxy distribution retrieving: 0
Proxy distribution registering:
org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://tritium.austin.ibm.com:30001/server];containerRelativeID=0]
Proxy distribution registered:
org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://tritium.austin.ibm.com:30001/server];containerRelativeID=0]
ZooDiscovery> Service Discovered: Oct 5, 2010 10:20:16
AM.
ServiceInfo[uri=9.41.188.106;id=ServiceID[type=ServiceTypeID[ typeName=_osgiservices._tcp.default._iana];location=9.41.188.106;full=_osgiservices._tcp.default._iana@9.41.188.106];priority=0;weight=0;props=ServiceProperties[{com.ibm.hdwb.jobs.common.monitor.port=9020,
ecf.sp.ect=ecf.generic.server,
com.ibm.hdwb.jobs.common.monitor.command=/afs/awd/projects/cte/tools/hdwb/prod/llmonitor/monitor.ksh,
component.id=22,
com.ibm.hdwb.jobs.common.monitor.host=tritium.austin.ibm.com,
component.name=com.ibm.hdwb.ll.server.job_queue_service,
ll_submit_command=,
ecf.rsvc.id=org.eclipse.ecf.discovery.ServiceProperties$ByteArrayWrapper@2fc12fc1,
ecf.sp.cid=org.eclipse.ecf.discovery.ServiceProperties$ByteArrayWrapper@2e662e66,
com.ibm.hdwb.jobs.common.pool.uuid=4ab60c63-c188-48e2-9db5-64d21063b01f,
com.ibm.hdwb.jobs.common.monitor.submitter=bhunt,
service.factoryPid=com.ibm.hdwb.ll.server.job_queue_service,
service.pid=com.ibm.hdwb.ll.server.job_queue_service-1286292015780-0,
com.ibm.hdwb.jobs.common.monitor.restlet.port=8080,
osgi.remote.service.interfaces=com.ibm.hdwb.jobs.common.IJobQueueService,
ecf.rsvc.ns=ecf.namespace.generic.remoteservice,
ecf.sp.cns=org.eclipse.ecf.core.identity.StringID,
com.ibm.hdwb.jobs.common.monitor.restlet.host=tritium.austin.ibm.com}]]
Proxy discovery discovered: null
Output from server 1:
Host discovery publish: svc_X3RtmpkBZ991jRm1KJBed4xNURA=
ZooDiscovery> Service Published: Oct 5, 2010 10:18:37
AM.
ServiceInfo[uri=osgiservices://9.41.188.106:30001/svc_X3RtmpkBZ991jRm1KJBed4xNURA=;id=ServiceID[type=ServiceTypeID[ typeName=_osgiservices._tcp.default._iana];location=osgiservices://9.41.188.106:30001/svc_X3RtmpkBZ991jRm1KJBed4xNURA=;full=_osgiservices._tcp.default._iana@osgiservices://9.41.188.106:30001/svc_X3RtmpkBZ991jRm1KJBed4xNURA=];priority=0;weight=0;props=ServiceProperties[{com.ibm.hdwb.jobs.common.monitor.port=9020,
ecf.sp.ect=ecf.generic.server,
com.ibm.hdwb.jobs.common.monitor.command=/afs/awd/projects/cte/tools/hdwb/prod/llmonitor/monitor.ksh,
component.id=22,
com.ibm.hdwb.jobs.common.monitor.host=tritium.austin.ibm.com,
component.name=com.ibm.hdwb.ll.server.job_queue_service,
ecf.rsvc.id=org.eclipse.ecf.discovery.ServiceProperties$ByteArrayWrapper@5ad05ad0,
ll_submit_command=,
ecf.sp.cid=org.eclipse.ecf.discovery.ServiceProperties$ByteArrayWrapper@27412741,
com.ibm.hdwb.jobs.common.pool.uuid=4ab60c63-c188-48e2-9db5-64d21063b01f,
com.ibm.hdwb.jobs.common.monitor.submitter=bhunt,
service.factoryPid=com.ibm.hdwb.ll.server.job_queue_service,
service.pid=com.ibm.hdwb.ll.server.job_queue_service-1286291916914-0,
com.ibm.hdwb.jobs.common.monitor.restlet.port=8080,
osgi.remote.service.interfaces=com.ibm.hdwb.jobs.common.IJobQueueService,
ecf.rsvc.ns=ecf.namespace.generic.remoteservice,
ecf.sp.cns=org.eclipse.ecf.core.identity.StringID,
com.ibm.hdwb.jobs.common.monitor.restlet.host=tritium.austin.ibm.com}]]
Proxy discovery discovered:
svc_X3RtmpkBZ991jRm1KJBed4xNURA=
Host distribution registered:
org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://tritium.austin.ibm.com:30001/server];containerRelativeID=0]
Proxy distribution retrieving: 0
Proxy distribution registering:
org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://tritium.austin.ibm.com:30001/server];containerRelativeID=0]
Proxy distribution registered:
org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://tritium.austin.ibm.com:30001/server];containerRelativeID=0]
Output from server 2:
Host discovery publish: svc_VFGjr0XPp/FyTwDrcYMaYDdETwY=
ZooDiscovery> Service Published: Oct 5, 2010 10:20:16
AM.
ServiceInfo[uri=osgiservices://9.41.188.106:30002/svc_VFGjr0XPp/FyTwDrcYMaYDdETwY=;id=ServiceID[type=ServiceTypeID[ typeName=_osgiservices._tcp.default._iana];location=osgiservices://9.41.188.106:30002/svc_VFGjr0XPp/FyTwDrcYMaYDdETwY=;full=_osgiservices._tcp.default._iana@osgiservices://9.41.188.106:30002/svc_VFGjr0XPp/FyTwDrcYMaYDdETwY=];priority=0;weight=0;props=ServiceProperties[{com.ibm.hdwb.jobs.common.monitor.port=9020,
ecf.sp.ect=ecf.generic.server,
com.ibm.hdwb.jobs.common.monitor.command=/afs/awd/projects/cte/tools/hdwb/prod/llmonitor/monitor.ksh,
component.id=22,
com.ibm.hdwb.jobs.common.monitor.host=tritium.austin.ibm.com,
component.name=com.ibm.hdwb.ll.server.job_queue_service,
ecf.rsvc.id=org.eclipse.ecf.discovery.ServiceProperties$ByteArrayWrapper@1c701c70,
ll_submit_command=,
ecf.sp.cid=org.eclipse.ecf.discovery.ServiceProperties$ByteArrayWrapper@e090e09,
com.ibm.hdwb.jobs.common.pool.uuid=4ab60c63-c188-48e2-9db5-64d21063b01f,
com.ibm.hdwb.jobs.common.monitor.submitter=bhunt,
service.factoryPid=com.ibm.hdwb.ll.server.job_queue_service,
service.pid=com.ibm.hdwb.ll.server.job_queue_service-1286292015780-0,
com.ibm.hdwb.jobs.common.monitor.restlet.port=8080,
osgi.remote.service.interfaces=com.ibm.hdwb.jobs.common.IJobQueueService,
ecf.rsvc.ns=ecf.namespace.generic.remoteservice,
ecf.sp.cns=org.eclipse.ecf.core.identity.StringID,
com.ibm.hdwb.jobs.common.monitor.restlet.host=tritium.austin.ibm.com}]]
Proxy discovery discovered:
svc_VFGjr0XPp/FyTwDrcYMaYDdETwY=
Host distribution registered:
org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://tritium.austin.ibm.com:30002/server];containerRelativeID=0]
Proxy distribution retrieving: 0
Proxy distribution registering:
org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://tritium.austin.ibm.com:30002/server];containerRelativeID=0]
Proxy distribution registered:
org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://tritium.austin.ibm.com:30002/server];containerRelativeID=0]
On Oct 4, 2010, at 1:00 PM, Scott Lewis wrote:
Hi Bryan,
In addition to breakpoints, it might be useful to use
these listeners:
(on host side)
org.eclipse.ecf.osgi.services.discovery.IHostDiscoveryListener
org.eclipse.ecf.osgi.services.distribution.IHostDistributionListener
(on consumer side)
org.eclipse.ecf.osgi.services.discovery.IProxyDiscoveryListener
org.eclipse.ecf.osgi.services.distribution.IProxyDistributionListener
Each of these use the OSGi whiteboard pattern...i.e.
create an implementer of these interfaces and register
them as OSGi services. Then when things happen in the
discovery and/or distribution implementations, the
appropriate methods are called back.
Examples of usage exist in the hello examples projects
(i.e. in org.eclipse.ecf.examples.remoteservices.hello.host
and org.eclipse.ecf.examples.remoteservices.hello.consumer)...i.e.
in the HelloHostApplication and HelloConsumerApplication.
Scott
On 10/4/2010 10:07 AM, Bryan Hunt wrote:
Wim,
I need to start debugging the problem where a remote service is discovered by zookeeper, but no proxy is created when I run multiple servers on the same machine exporting the same service. Where should I be setting breakpoints to track down this problem?
Bryan
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev
_______________________________________________ ecf-dev mailing list ecf-dev@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/ecf-dev
|