SqlServerRetryingExecutionStrategy Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
An IExecutionStrategy implementation for retrying failed executions on SQL Server.
public class SqlServerRetryingExecutionStrategy : Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy
[System.Runtime.CompilerServices.Nullable(0)]
public class SqlServerRetryingExecutionStrategy : Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy
type SqlServerRetryingExecutionStrategy = class
inherit ExecutionStrategy
[<System.Runtime.CompilerServices.Nullable(0)>]
type SqlServerRetryingExecutionStrategy = class
inherit ExecutionStrategy
Public Class SqlServerRetryingExecutionStrategy
Inherits ExecutionStrategy
- Inheritance
- Attributes
Remarks
This strategy is specifically tailored to SQL Server (including Azure SQL). It is pre-configured with error numbers for transient errors that can be retried. Additional error numbers to retry on can also be supplied.
The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.
See Connection resiliency and database retries for more information and examples.
Constructors
Fields
| Name | Description |
|---|---|
| DefaultMinDelayThrottling |
The default minimum time delay between retries for throttling errors. |
Properties
| Name | Description |
|---|---|
| AdditionalErrorNumbers |
Additional SQL error numbers that should be considered transient. |
| Context |
The context on which the operations will be invoked. (Inherited from ExecutionStrategy) |
| Dependencies |
Dependencies for this service. (Inherited from ExecutionStrategy) |
| ExceptionsEncountered |
The list of exceptions that caused the operation to be retried so far. (Inherited from ExecutionStrategy) |
| Logger |
The logger for this ExecutionStrategy. (Inherited from ExecutionStrategy) |
| MaxRetryCount |
The maximum number of retry attempts. (Inherited from ExecutionStrategy) |
| MaxRetryDelay |
The maximum delay between retries. (Inherited from ExecutionStrategy) |
| Random |
A pseudo-random number generator that can be used to vary the delay between retries. (Inherited from ExecutionStrategy) |
| RetriesOnFailure |
Indicates whether this IExecutionStrategy might retry the execution after a failure. (Inherited from ExecutionStrategy) |
Methods
| Name | Description |
|---|---|
| Execute<TState,TResult>(Func<TState,TResult>, Func<TState,ExecutionResult<TResult>>, TState) |
Executes the specified operation and returns the result. (Inherited from ExecutionStrategy) |
| Execute<TState,TResult>(TState, Func<DbContext,TState,TResult>, Func<DbContext,TState,ExecutionResult<TResult>>) |
Executes the specified operation and returns the result. (Inherited from ExecutionStrategy) |
| ExecuteAsync<TState,TResult>(Func<TState,CancellationToken,Task<TResult>>, Func<TState,CancellationToken,Task<ExecutionResult<TResult>>>, TState, CancellationToken) |
Executes the specified asynchronous operation and returns the result. (Inherited from ExecutionStrategy) |
| ExecuteAsync<TState,TResult>(TState, Func<DbContext,TState,CancellationToken, Task<TResult>>, Func<DbContext,TState,CancellationToken,Task<ExecutionResult<TResult>>>, CancellationToken) |
Executes the specified asynchronous operation and returns the result. (Inherited from ExecutionStrategy) |
| ExecuteInTransaction<TState,TResult>(Func<TState,TResult>, Func<TState,Boolean>, TState) |
Executes the specified operation in a transaction and returns the result after commiting it. (Inherited from ExecutionStrategy) |
| ExecuteInTransactionAsync<TState,TResult>(Func<TState,CancellationToken, Task<TResult>>, Func<TState,CancellationToken,Task<Boolean>>, TState, CancellationToken) |
Executes the specified asynchronous operation and returns the result. (Inherited from ExecutionStrategy) |
| GetNextDelay(Exception) |
Determines whether the operation should be retried and the delay before the next attempt. |
| OnFirstExecution() |
Method called before the first operation execution (Inherited from ExecutionStrategy) |
| OnRetry() |
Method called before retrying the operation execution (Inherited from ExecutionStrategy) |
| ShouldRetryOn(Exception) |
Determines whether the specified exception represents a transient failure that can be compensated by a retry. Additional exceptions to retry on can be passed to the constructor. |
| ShouldVerifySuccessOn(Exception) |
Determines whether the specified exception could be thrown after a successful execution. (Inherited from ExecutionStrategy) |