Я пытаюсь реализовать оба DbContext
(SQLDBContext
& DB2Context
) в одной транзакции, но каждый раз сталкиваюсь с проблемой, связанной с DB2.
Он отлично работает с SQL, но выдает ошибку при попыткедля доступа к DB2.
Исключением является:
Ошибка в получателе DB2Entities. Сбой связи с базовым менеджером транзакций.
Менеджер транзакций MSDTC не смогполучить транзакцию из исходного менеджера транзакций из-за проблем со связью.Возможные причины: брандмауэр присутствует и у него нет исключения для процесса MSDTC, две машины не могут найти друг друга по их именам NetBIOS или поддержка сетевых транзакций не включена для одного из двух менеджеров транзакций.(Исключение из HRESULT: 0x8004D02B)
Пожалуйста, помогите мне реализовать обе транзакции БД в рамках одной транзакции ИЛИ, если одна из них завершится неудачно, то обе должны выполнить откат.
Код похож на:
var option = new TransactionOptions
{
IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted,
Timeout = TimeSpan.FromSeconds(60)
};
using (var scopeOuter = new TransactionScope(TransactionScopeOption.Required, option))
{
SQLDBContext.Table.AddSomething();
SQLDBContext.SaveChanges();
using (var scopeInner = new TransactionScope(TransactionScopeOption.Required, option))
{
DB2Context.Table.AddSomething();
DB2Context.SaveChanges();
scopeInner.Complete();
}
scopeOuter.Complete();
}
Спасибо!