Edgar, si haces return adentro del catch, absorbiste el throw o sea que en
tu vida vas a llegar a la excepcion de tu session manager, a menos que
"tengas suerte" y return View(objeto) de una excepcion :).

Gustavo.

2010/7/19 Edgar Ramos <[email protected]>

> 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

-- 
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