Table of Contents

Class ClickHouseRetryPolicy

Namespace
LinqToDB.DataProvider.ClickHouse
Assembly
linq2db.dll

Retry policy handles only following exceptions:

  • Octonica client ClickHouseException with codes ClickHouseErrorCodes.InvalidConnectionState, ClickHouseErrorCodes.ConnectionClosed, ClickHouseErrorCodes.NetworkError
  • MySqlConnector MySqlException.IsTransient == true (requires .NET 6+ and MySqlConnector 1.3.0 or greater)
public class ClickHouseRetryPolicy : RetryPolicyBase, IRetryPolicy
Inheritance
ClickHouseRetryPolicy
Implements
Inherited Members
Extension Methods

Constructors

ClickHouseRetryPolicy()

Creates a new instance of ClickHouseRetryPolicy.

public ClickHouseRetryPolicy()

ClickHouseRetryPolicy(int)

Creates a new instance of ClickHouseRetryPolicy.

public ClickHouseRetryPolicy(int maxRetryCount)

Parameters

maxRetryCount int

The maximum number of retry attempts.

ClickHouseRetryPolicy(int, TimeSpan, double, double, TimeSpan, ICollection<int>?)

Creates a new instance of ClickHouseRetryPolicy.

public ClickHouseRetryPolicy(int maxRetryCount, TimeSpan maxRetryDelay, double randomFactor, double exponentialBase, TimeSpan coefficient, ICollection<int>? errorNumbersToAdd)

Parameters

maxRetryCount int

The maximum number of retry attempts.

maxRetryDelay TimeSpan

The maximum delay in milliseconds between retries.

randomFactor double

The maximum random factor.

exponentialBase double

The base for the exponential function used to compute the delay between retries.

coefficient TimeSpan

The coefficient for the exponential function used to compute the delay between retries.

errorNumbersToAdd ICollection<int>

Additional SQL error numbers that should be considered transient.

Methods

GetNextDelay(Exception)

Determines whether the operation should be retried and the delay before the next attempt.

protected override TimeSpan? GetNextDelay(Exception lastException)

Parameters

lastException Exception

The exception thrown during the last execution attempt.

Returns

TimeSpan?

Returns the delay indicating how long to wait for before the next execution attempt if the operation should be retried; null otherwise

ShouldRetryOn(Exception)

Determines whether the specified exception represents a transient failure that can be compensated by a retry.

protected override bool ShouldRetryOn(Exception exception)

Parameters

exception Exception

The exception object to be verified.

Returns

bool

true if the specified exception is considered as transient, otherwise false.