On Thu, Aug 27, 2009 at 10:36 AM, Giorgio Zoppi<[email protected]> wrote: > 2009/8/27 ant elder <[email protected]>: >> I've added a testcase in r808333 for using multiple nodes and having a >> service node stopped and replaced with a new node running the service, >> this should work but doesn't as the client node keeps using the >> references for the original node. I'm wondering how to fix this, it >> seems like the runtime should be looking up the endpoint from the >> registry on each invocation. > > It's exactly what happens from 1.1 up to know and it's a penalty kick > for performance. At that time i modified the node to avoid it, > caching most recently used endpoints. Avoiding > resolution every time. Doing resolution every time at lower level > could mean open a socket towards the domain, so handling tcp, > processing soap, and so on. > It worked well in my workpool-demo apps because the working set of > endpoint it was pretty the same, it may not work in the general case. > > Cheers, > Giorgio. >
I was thinking it would be something like the EndpointRegistry impl managing its local copy of the endpoints it knows about and the sca binding invoker on each invocation looking up the endpoint from the registry. That way the binding lookup is still a quick local call and its only the EndpointRegistry impl that has to handle keeping its local cache up to date. Does that sound ok? ...ant
