При использовании базы данных SQL Azure в серверной части .Net у меня возникла проблема с повторной попыткой транзакций, включающих несколько контекстов.
Я делаю несколько обновлений для разных баз данных, но требование что все транзакции SQL должны либо успешно фиксироваться, либо завершаться неудачей.
В обоих контекстах я реализовал механизм повтора по умолчанию в файле запуска.
services.AddDbContext(options => options
.UseSqlServer("Name=database1", sqlServerOptions =>
.EnableRetryOnFailure()));
services.AddDbContext(options => options
.UseSqlServer("Name=database2", sqlServerOptions =>
.EnableRetryOnFailure()));
Но, поскольку транзакции, инициированные пользователем, не повторяются, как мне убедиться, что они повторяются правильно при возникновении каких-либо проблем?
Это сообщение об ошибке, которое я получаю, когда происходит какой-либо временный сбой.
Настроенная стратегия выполнения «SqlServerRetryingExecutionStrategy» не поддерживает транзакции, инициированные пользователем. Используйте стратегию выполнения, возвращаемую функцией «DbContext.Database.CreateExecutionStrategy()», чтобы выполнить все операции в транзакции как повторяемую единицу.
Итак, я необходимо убедиться, что следующая область повторяется правильно.
using (var scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted }))
{
// these methods don't call the dB contexts directly
// call the method that makes the updates using the dbcontext1 in database1
// call the method that does the updates using the dbcontext2 in database2
scope.complete();
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... -mechanism
Использование TransactionScope для нескольких DbContexts и добавление механизма повтора ⇐ C#
Место общения программистов C#
1729608607
Anonymous
При использовании базы данных SQL Azure в серверной части .Net у меня возникла проблема с повторной попыткой транзакций, включающих несколько контекстов.
Я делаю несколько обновлений для разных баз данных, но требование что все транзакции SQL должны либо успешно фиксироваться, либо завершаться неудачей.
В обоих контекстах я реализовал механизм повтора по умолчанию в файле запуска.
services.AddDbContext(options => options
.UseSqlServer("Name=database1", sqlServerOptions =>
.EnableRetryOnFailure()));
services.AddDbContext(options => options
.UseSqlServer("Name=database2", sqlServerOptions =>
.EnableRetryOnFailure()));
Но, поскольку транзакции, инициированные пользователем, не повторяются, как мне убедиться, что они повторяются правильно при возникновении каких-либо проблем?
Это сообщение об ошибке, которое я получаю, когда происходит какой-либо временный сбой.
Настроенная стратегия выполнения «SqlServerRetryingExecutionStrategy» не поддерживает транзакции, инициированные пользователем. Используйте стратегию выполнения, возвращаемую функцией «DbContext.Database.CreateExecutionStrategy()», чтобы выполнить все операции в транзакции как повторяемую единицу.
Итак, я необходимо убедиться, что следующая область повторяется правильно.
using (var scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted }))
{
// these methods don't call the dB contexts directly
// call the method that makes the updates using the dbcontext1 in database1
// call the method that does the updates using the dbcontext2 in database2
scope.complete();
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79113039/using-transactionscope-for-multiple-dbcontexts-and-add-retry-mechanism[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия