Sorry, I wrote "Transaction Scope" when I meant to say only "The Scope of 
one Transaction".

I am getting the session that is already open, and not disposing it. I will 
rewrite the code and try to use correctly the TransactionScope, and also 
dispose the session right after the Transaction.

Thanks

Rudolf

Em terça-feira, 23 de outubro de 2012 09h15min11s UTC-2, Oskar Berggren 
escreveu:
>
> I don't see any TransactionScope. Where are you disposing the session? Be 
> aware that if you continue to use the session instead of disposing or 
> clearing it (or open a new transaction) immediately after rollback, you run 
> the risk of the session performing SQL INSERT/UPDATE outside of the 
> transaction. A session should be discarded "quickly" when an error occurs.
>
> Note that you don't need to rollback explicitly as long as you ensure the 
> transaction is disposed. It will then rollback unless it has been expressly 
> committed.
>
> /Oskar
>
>
>
> 2012/10/23 graffitiMSX <rudolf...@gmail.com <javascript:>>
>
>> Hi folks, I am doing several operations inside a Transaction Scope, when 
>> a failure occurs then it is redirected to the Rollback but the pre-failure 
>> saves are committed to db.
>>
>> My code is essentialy this:
>>
>> if (!_session.IsOpen) _session.SessionFactory.OpenSession();
>> using (_session.BeginTransaction())
>> {
>> try
>> {
>>  Remittance remittance = new Remittance();
>> ...
>> _remittanceDao.SaveOrUpdate(remittance);
>>  TripSent tripSent = new TripSent();
>> try
>> {
>> TripSent tripSent = CreatTripSent(); 
>>  _tripSentDao.Save(tripSent);
>> }
>> catch (Exception ex)
>>  {
>>  throw new Exception(String.Format("Erro criando TripSent com índice 
>> {0}", i), ex);
>> }
>> Entity.TransactionFile eTransactionFile = new Entity.TransactionFile();
>>  ...
>> _transactionFileDao.SaveOrUpdate(eTransactionFile);
>> _session.Transaction.Commit();
>>  processOk = true;
>> }
>> catch
>> {
>>  _session.Transaction.Rollback();
>> throw;
>> }
>> }
>>
>> The error is occuring in the line _tripSentDao.Save(tripSent); and, even 
>> after the Rollback I check the DB and the 
>> _remittanceDao.SaveOrUpdate(remittance); is there.
>>
>> Any help?
>>
>> Rudolf
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Fluent NHibernate" group.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msg/fluent-nhibernate/-/4ONRBEksw98J.
>> To post to this group, send email to 
>> fluent-n...@googlegroups.com<javascript:>
>> .
>> To unsubscribe from this group, send email to 
>> fluent-nhibern...@googlegroups.com <javascript:>.
>> For more options, visit this group at 
>> http://groups.google.com/group/fluent-nhibernate?hl=en.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/fluent-nhibernate/-/jyOcjU-FBN8J.
To post to this group, send email to fluent-nhibernate@googlegroups.com.
To unsubscribe from this group, send email to 
fluent-nhibernate+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/fluent-nhibernate?hl=en.

Reply via email to