Re вашего 2-го пункта (и чтение комментария); действительно, «один сбой, все сразу откатывается» является неотъемлемой частью DTC; вся внешняя транзакция является атомной единицей. Вы можете иметь возможность использовать некоторые обычные транзакции SQL внутри транзакции DTC, но, честно говоря, это усложняет ситуацию ...
Мое предложение:
- либо записать SQL в успешно (т.е. при откате, если что-то сильно заболело; не только для удобства экспериментальных запросов)
- или: не используйте DTC
и я предпочитаю первое, так как откат дорог (коммит дешев).
(я не знаю точно, по какому первому вопросу, но я считаю довольно каменным)