En mi pequeño ejemplo de una aplicacion asp net mvc + nh 2.1, he
implementado IHttpModule, pero tengo una duda,
en mi controller tengo lo siguiente

try {
  //codigo que puede lanzar una exception
}
catch (Exception) {
    return View(objeto);
}

si por cualquier motivo entra al catch , el codigo abajo descrito
Application_EndRequest(), es suficiente para que haga un Rollback() ?,
este
sería automatico ?, o tengo que implementar algo adicional ?

Por un lado el patron me dice por cada request una session, noto que
en mi ejemplo eso lo esta haciendo, pero por otro lado la parte ACID,
con el unit of work , no me esta funcionando, o la verdad ya estoy
confundido, si tengo que leer en español o en ingles, cualquier link,
pdf, lo que sea me es bienvenido

private void Application_EndRequest(object sender, EventArgs e) {

            ISession session = CurrentSessionContext.Unbind(
            ServiceLocator.Current.GetInstance<ISessionFactory>());

             try {

                    if (session.Transaction.IsActive) {
                        session.Transaction.Commit();
                    }

                }
                catch (Exception) {
                    if (session.Transaction.IsActive) {
                        session.Transaction.Rollback();
                    }

                    throw;

                }
                finally {
                    session.Close();
                }
        }



Saludos

Edgar

PD: Me sugirieron hacer unos test, pero recien estoy entrando a ese mundo,

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a