On 10/02/2013 11:18 PM, Dmitry Samersoff wrote:
Chris,

I'm not sure immediate native retry make sence here because tipically
EAGAIN of getaddrinfo caused by network failure, like unreachable
nameserver. (see my previous letter)

OK, while not ideal ( please don't shoot! ) what do others think of Thread.yield() before retry. It is an attempt to allow other threads on the system do some work before us, therefore potentially swapping out our failed lookup thread until rescheduled. I'm just trying to avoid baking in a hardcoded sleep/wait value ( since we don't know what that should be ).

The use of Thread.yield(), if acceptable, would of course most likely make sense to push the retry logic back up into the Java level.

-Chris.


-Dmitry

On 2013-10-02 23:53, Chris Hegarty wrote:
On 10/02/2013 08:40 PM, Brian Burkhalter wrote:
....
So, how about this approach:

1) If the error is EAI_AGAIN / EIA_SYSTEM+EAGAIN / WSATRY_AGAIN then
do one immediate native retry.
2) If the retry fails with the same error, then throw a UHE with a
specific message or cause.

Sounds good to me.

Questions:

A) Would it be better to do the retry in the Java layer, perhaps with
a very short wait?

native, without any wait, should be sufficient.

B) Should the message or cause in #2 be explicitly document in the
javadoc?

I don't think it is necessary for this to be documented. It is more
informational.

-Chris.


Reply via email to