0

Я тестирую область транзакции приема в фундаменте рабочего процесса 4.5, и я думаю, что с ней что-то не так!Операция Workflow Foundation и транзакция DTC Сбой отката

Смотрите, когда я roolback сделки либо явным roolback:

using (TransactionScope s = new TransactionScope()) 
{ 
    using (ServiceReference1.ServiceClient cli = new ServiceReference1.ServiceClient()) 
    { 
     Transaction t = Transaction.Current;      
     cli.GetData(new ServiceReference1.GetData() { data = 10, ID = id }); 
     t.Rollback();           
    } 
} 

или бросая исключение в TransactionScope:

using (TransactionScope s = new TransactionScope()) 
{ 
    using (ServiceReference1.ServiceClient cli = new ServiceReference1.ServiceClient()) 
    { 
     cli.GetData(new ServiceReference1.GetData() { data = 10, ID = id }); 
     throw new Exception("Error!"); 
    } 
} 

Я ожидаю, что рабочий процесс будет rolledback тоже! Другими словами, я ожидаю, что получение «GetData» остается в силе! но этого не происходит. Рабочий процесс выполняется, и GetData больше недействителен!

Есть другие «получает» после «GetData», чтобы гарантировать, что рабочий процесс не будет входить в «заполненное» состоянии ...

Я уверен, что моя сделка течет в рабочий процесс, так как внутри в рабочем процессе у меня есть активность, которая возвращает мне идентификатор транзакции (который, конечно, совпадает с идентификатором приложения)

Может ли кто-нибудь сказать, что происходит? что мне не хватает?

Futher ноты:
Все работает в моей машине (включая резервное хранилище, на Sql Server 2012) DTC включена

ответ

0

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

+0

, но мой экземпляр сам сохраняется! он появляется, если я запрашиваю базу данных вручную! – Leonardo

+0

Является ли такое же поведение, даже когда AbortInstanceOnTransactionFailure = true? (TransactedReceiveScope) – Sentinel

Смежные вопросы