yes

On Mon, Mar 23, 2009 at 3:12 PM, Michael Teper <[email protected]>wrote:

>  Ayende, I am not sure what you meant by this comment, but from your other
> replies, it sound like you agree with me that it would be better if explicit
> session.BeginTransaction was not requried, correct?
>
> Thanks!
> -Michael
>
>  ------------------------------
> *From:* [email protected] [
> [email protected]] On Behalf Of Ayende Rahien [
> [email protected]]
> *Sent:* Monday, March 23, 2009 11:48 AM
>
> *To:* [email protected]
> *Subject:* [nhibernate-development] Re: More DTC issues
>
>  We don't really care for that, we let the DTC infrastructure take care of
> this.
>
> On Mon, Mar 23, 2009 at 12:57 PM, Michael Teper 
> <[email protected]>wrote:
>
>>  Fabio, Ayende,
>>
>> Another thing to consider is the nested transaction scenario like this:
>>
>> using (var scopeOuter = new TransactionScope())
>> {
>>    // load / change some object(s)
>>
>>    using (var innerScope = new TransactionScope())
>>    {
>>        try
>>        {
>>            // load / change something else
>>            innerScope.complete();
>>        }
>>        catch { // do something }
>>     }
>>
>>     outerScope.complete();
>> }
>>
>> This may look silly but if the inner transaction is encapsulated in a
>> different class, this is a very plausible scenario. Wherever NH keeps track
>> of the current transaction scope, it needs to be aware of potential for
>> nesting.
>>
>> Thanks!
>> -Michael
>>
>>
>>  ------------------------------
>> *From:* [email protected] [
>> [email protected]] On Behalf Of Fabio Maulo [
>> [email protected]]
>> *Sent:* Monday, March 23, 2009 9:45 AM
>> *To:* [email protected]
>> *Subject:* [nhibernate-development] Re: More DTC issues
>>
>>
>>
>> 2009/3/23 Ayende Rahien <[email protected]>
>>
>>> The problem is that usually the DTC is opened by a lower level component,
>>> and my code has no control over it. More than that, I usually don't have
>>> control over NH's code as well.
>>>
>>>  It goes like this:
>>>
>>>  1/ low level infrastructure - dtc
>>> 2/ high level infarstruture - nh
>>> 3/ business code - my stuff
>>>
>>
>>  and then
>> 3 -end
>> 2- end
>> 1-end
>>
>>  If 2 don't know about 1, 2 should use session.BeginTransaction and
>> session.Transaction.Commit().
>>
>>
>>>
>>>  I don't want to be aware of all of this issues, I just want to make
>>> this work.
>>> So explicitly flushing is an option that I would generally be against.
>>>
>>>  Making NH's transaction equal to the dtc is also not a good option,
>>> because the use of the DTC is to manage several resources, not just NH.
>>>
>>
>>  You know... I never said dtc=nhTx
>> What I would like to avoid is If(DTC) {something} else {somethingelse}
>> inside NH-Core.
>>
>>  --
>> Fabio Maulo
>>
>
>

Reply via email to