Използвам дистрибутора в NServiceBus и се натъкнах на стената на невежество по отношение на DTC. Използвал съм DTC само веднъж, може би два пъти преди, когато правех неща в процеси и не много, така че съм много начинаещ с цялата концепция на DTC.
Question:
To ensure durable messaging with NSB, is it absolutely necessary to use DTC's?
Причината, поради която питам, е, че бих очаквал NSB да може да открие всяко изключение, да речем манипулатор, и следователно да реагира на грешката, като не премахва съобщението от опашката. Следователно няма нужда от DTC. Това, разбира се, би означавало, че всеки достъп до база данни или външна услуга в манипулатора ще изисква от програмиста да извърши нейни/свои собствени връщания назад и т.н. И поради тази причина DTC наистина изглежда като най-добрия начин. Така че аз съм за DTC (ако ги разбирам правилно), тъй като от моя гледна точка те гарантират, че съобщенията никога не се губят от опашките и обработката на съобщения никога няма да бъде повредена, стига манипулаторите да са внедрени правилно и други външни услуги да участват в DTC .
Но не съм сигурен, особено след като един уважаван човек от екипа по поддръжка на сървъра използва изречението „DTC ще ви причини цяла болка!“, когато пуснах идеята за активиране на DTC на сървъра на базата данни от него... Но той все още не е представил аргументи защо изпитвам толкова много болка с DTC... :/.
Може ли някой с добро разбиране на DTC и NSB, моля, помогнете ми да изясня дали напълно не разбирам DTC и дали има някакъв голям капан, който напълно съм пропуснал с DTC?
Поздрави