Неправильный результат SQL после временных сбоев при использовании EnableRetryOnFailure - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть программа, которая управляет промышленным производственным оборудованием и всегда выполняет задачи в цикле. Частью этих задач является проверка значений в базе данных SQLServer.

Время от времени (несколько раз в день) мы получим временные сбои, которые приводили к перезапуску программы вручную. Чтобы предотвратить это, я включил опцию EnableRetryOnFailure для UseSqlServer. Теперь программа больше не падает, но иногда принимает неправильные решения.

services.AddDbContext<DbContext>(options =>
{
    options.UseSqlServer(connectionString, o =>
    {
        o.EnableRetryOnFailure();
    });
});

Пример результатов запроса без EnableRetryOnFailure:

Каждую секунду мы делаем SELECT count(*) FROM table (через linq):

1500
1500
1500
1500
Exception: Transient Failure....
1500
1500

Пример результатов запроса с EnableRetryOnFailure:

Каждую секунду мы делаем SELECT count(*) FROM table (через linq):

1500
1500
1500
1500
0
1500
1500

Это известная ошибка в EF Core? Если что-то дает неправильные результаты, это МЕДШЕЕ, чем получение исключения. Приведет ли переключение на использование совместно используемой памяти к меньшим временным сбоям? Использование EF Core 2.2, .net Core 2.2 SQL Server 2014

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...