and what happen with the transactionFactory ?

2009/10/7 Ayende Rahien <[email protected]>

> I disagree, I think that we should be supporting only a single TX model.If
> we are doing DTC we shouldn't need to manage them for NH
>
>
> On Thu, Oct 8, 2009 at 12:10 AM, Fabio Maulo <[email protected]> wrote:
>
>> It is the same matter of few months ago...I'm using what we (both you and
>> me) said is a best practice: enclose each NH action in a NH transaction ;)
>>
>>
>> 2009/10/7 Ayende Rahien <[email protected]>
>>
>>> yes
>>>
>>>
>>> On Thu, Oct 8, 2009 at 12:05 AM, Fabio Maulo <[email protected]>wrote:
>>>
>>>> And if you abort the DTC nothing happen to db, right ?
>>>>
>>>>
>>>> 2009/10/7 Ayende Rahien <[email protected]>
>>>>
>>>>> This works:
>>>>>
>>>>> using (var tx = new TransactionScope())
>>>>>
>>>>> using (ISession s = sessions.OpenSession())
>>>>>
>>>>> using(s.BeginTransaction())
>>>>>
>>>>> {
>>>>>
>>>>> s.Get<Person>(id);
>>>>>
>>>>>
>>>>>  new ForceEscalationToDistributedTx();
>>>>>
>>>>>
>>>>>  s.Save(new Person
>>>>>
>>>>> {
>>>>>
>>>>> CreatedAt = DateTime.Now
>>>>>
>>>>> });
>>>>>
>>>>>
>>>>>  s.Transaction.Commit();
>>>>>
>>>>>  tx.Complete();
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>> But the reason that it works is that the Commit() will force a flush,
>>>>> and then in the DTC commit, we aren't flushing.
>>>>>
>>>>> The actual issue is that we fail to flush on the DTC commit.
>>>>>
>>>>> On Wed, Oct 7, 2009 at 11:30 PM, Fabio Maulo <[email protected]>wrote:
>>>>>
>>>>>> question.does it work if you put a BeginTransaction after the
>>>>>> OpenSession ?
>>>>>>
>>>>>> 2009/10/7 Ayende Rahien <[email protected]>
>>>>>>
>>>>>> I am trying to figure out why this is failing, but I can't figure it
>>>>>>> out (attached is a patch against trunk for this test).
>>>>>>> Any ideas?
>>>>>>>
>>>>>>> [Test]
>>>>>>>
>>>>>>> public void CanLoadAndSaveWithDtc()
>>>>>>>
>>>>>>> {
>>>>>>>
>>>>>>> object id;
>>>>>>>
>>>>>>> using (ISession s = sessions.OpenSession())
>>>>>>>
>>>>>>> using(s.BeginTransaction())
>>>>>>>
>>>>>>> {
>>>>>>>
>>>>>>> var person = new Person {CreatedAt = DateTime.Now};
>>>>>>>
>>>>>>> id = s.Save(person);
>>>>>>>
>>>>>>>
>>>>>>>  s.Transaction.Commit();
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>> using (var tx = new TransactionScope())
>>>>>>>
>>>>>>> using (ISession s = sessions.OpenSession())
>>>>>>>
>>>>>>> {
>>>>>>>
>>>>>>> s.Get<Person>(id);
>>>>>>>
>>>>>>>
>>>>>>>  new ForceEscalationToDistributedTx();
>>>>>>>
>>>>>>>
>>>>>>>  s.Save(new Person
>>>>>>>
>>>>>>> {
>>>>>>>
>>>>>>> CreatedAt = DateTime.Now
>>>>>>>
>>>>>>> });
>>>>>>>
>>>>>>>  tx.Complete();
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>>  using (ISession s = sessions.OpenSession())
>>>>>>>
>>>>>>> using (s.BeginTransaction())
>>>>>>>
>>>>>>> {
>>>>>>>
>>>>>>> s.Delete("from Person");
>>>>>>>
>>>>>>> s.Transaction.Commit();
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Fabio Maulo
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Fabio Maulo
>>>>
>>>
>>>
>>
>>
>> --
>> Fabio Maulo
>>
>
>


-- 
Fabio Maulo

Reply via email to