[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] Remote service problems after update to 3.5


On 6/6/2011 6:18 AM, Eugen Reiswich wrote:
Hi folks,

I just updated ECF to version 3.5 and got some problems retrieving remote services. I traced the problem down to the ECF class "RegistrySharedObject" and realized that the method "addReferencesFromRemoteRegistry" does not have any remoteRegistry although I got several hosts connected and providing remote services. Any idea why?

No, no idea why at this point.

That method (addReferencesFromRemoteRegistrys) simply looks to see if there are any remote registrations that have been received. If there have not been any registrations received (via handleAddRegistrations) when addReferencesFromRemoteRegistry gets called by (getRemoteServiceReferences), then it won't find anything. It sounds as if this is what is happening (I'm assuming that you are calling getRemoteServiceReferences.

It's possible that you have a race...i.e. the references haven't been received at the point when you call getRemoteServiceReferences. If you want to make sure that the registrations are received from some remote target you can listen for them with a RemoteServiceTracker...or you can call getRemoteServiceReferences(ID targetID, ID[] idFilter, clazz, filter) with some idFilter...and the getRemoteServiceReferences call will then send a message to the target ids in ID[] idFilter...and wait for their response...so, for example:

getRemoteServiceReferences(connectID, new ID[] { targetHostID }, clazz, filter);

will wait for a response from targetHostID (if it has any remote registrations in it's local registry at the time of the message receive).

Also...this code hasn't substantively changed since 3.4...the only changes to RegistrySharedObject were unrelated issues...so it's a little puzzeling to me why you are seeing changed behavior (from 3.4 I assume).

Also...I assume you mean 3.5.1? (as opposed to 3.5.0)?

If this doesn't help, then it might help to create a bug and post some code that's showing different behavior for 3.4 and 3.5.1....along with some more information about the use case and provider...if possible.