Я пытаюсь реализовать оба 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();
}
Спасибо!