2009-10-05 2 views
1

Мне интересно, можно ли создать собственные службы, которые я могу использовать в транзакции ADO. Например, я хотел быДобавление произвольной транзакционной услуги к транзакции ADO

  1. сделать некоторые обновления базы данных в транзакции ADO
  2. сделать некоторые произвольные обновления в некоторой произвольной службе, которые я создаю
  3. либо совершить или откат транзакции, и есть мой произвольный что сделка была совершена или откатна, и предпринять соответствующие действия

В принципе, я бы хотел реализовать методы Commit() и Rollback(), но не могу понять как «присоединиться» к транзакции ADO.

Приветствия, спасибо большое.

ответ

0

Вы используете транзакции Net, а не транзакции ADO. ADO знает об инфраструктуре System.Transactions и, находясь под номером TransactionScope, заведет все операции ADO в эту системную транзакцию.

Чтобы добавить свою собственную операцию, вы должны создать новый диспетчер ресурсов, класс, который реализует IEnlistmentNotifications. Построение RM не является тривиальным, и вы должны понимать такие понятия, как Durable enlistment против Volatile enlistment, Two Phase Commit, Promotable Single Phase Enlistmen t и т. Д. И т. Д.

Удачи.

+0

Perfect - спасибо! – Alex

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