Blacklist Refactoring #89

Merged
merged 3 commits into from Nov 21, 2012
Commits on Nov 20, 2012
  1. @eplowe

    Merge pull request #1 from managedfusion/master

    eplowe committed Nov 20, 2012
    Updating My Fork.
Commits on Nov 21, 2012
  1. @eplowe

    Some bug tweaks to blacklisting enhancements

    eplowe committed Nov 21, 2012
    	*When removing a server from the blacklist it was not being sent back to the serverqueue
    	*Added some additional exception types to handle in Operation::TryExecute()
    	*Added an additional input parameter on Operation::ExceptionOccuredRetryExecution called: bool markClientAsUnhealthy
    	so that we can selectively blacklist a server when retrying.
    	*In Operation::TryExecute() after Execute() is called must mark HasError = false and Error = null. If not and there is
    	an exception thrown on the first pass but the next pass results in a valid execution the exception was still being thrown.
    
    Added ServerRecoveryInterval to ConnectionString/Builder.
    	Turned the recovery timer into a "one shot" timer and calling the Timer::Change() method at the end of the callback
    	to avoid potential overlap. We could consider using Timers.Timer but then we'd need to think about to handle overlap there as well.
    	Potentially with a Monitor.TryEnter? I am open to suggestions.
  2. @eplowe