-
Bug
-
Resolution: Unresolved
-
Major
-
4.0.37.Final
-
None
This issue replaces the work done in EJBCLIENT-356 which introduces several mechanisms (eagerNodes, additional-discovery-timeout) to deal with the problem of clients hanging on discovery calls due to connections initiated in DiscoveryAttempt which hang. It also replaces the need for EJBCLIENT-398 which would add further complexity to the usage of timeouts in the Discovery interceptor.
The two mechanisms above are replaced by a simple, easy-to-understand mechanism of adding a connection time limit for establishing discovery connections during DiscoveryAttempt processing. Now, when considering the length of time it takes to search through serviceURLs, you can:
- apply a timeout when pulling service URLs from the queue (which limits how much you delay the processing of the invocation) or
- apply a timeout for the time given to DiscoveryAttempt to try to connect to nodes (some responsive, some unresponsive) when refreshing the DNR
The key advantage here is that the discovery code becomes less complex than it would be with additional-timeout processing (used in the interceptor in various places) and eager nodes processing (in the DiscoveryAttempt).