Si es una aplicación asp.net MVC
El 10 de agosto de 2010 21:15, Edgar Ramos <[email protected]> escribió: > Esa implementacion del manejo de tu session es para la aplicacion Web Asp > Net MVC ? > > saludos > > El 10 de agosto de 2010 13:58, Maria Teresa Ruiz Espinosa < > [email protected]> escribió: > >> No es singleton es static >> >> Continuamos teniendo problemas. Ven correcta la clase de session que les >> indique anteriormente? >> >> Cada vez que se hace una petición se hace un OpenSession >> >> >> >> El 10 de agosto de 2010 07:28, Gustavo Ringel >> <[email protected]>escribió: >> >> Ok, tenes razon que eso podria llevar a que para cada accion alguien >>> piense que es bueno hacer apertura y cerrado de la session. >>> >>> El tema es usar la session por el periodo que dura el caso de uso / >>> business transaccion y no mas que eso. >>> >>> En este caso habla de MVC y por tanto en general es por todo el request. >>> >>> No usar la session como un singleton, ni abrirla y cerrarla por cada >>> accion con la base... >>> >>> Gustavo. >>> >>> 2010/8/10 Fabio Maulo <[email protected]> >>> >>> la session "lo mas corto" ? >>>> seguro no hay que tener una sola session para toda la app, pero "corto" >>>> ? >>>> >>>> 2010/8/9 Gustavo Ringel <[email protected]> >>>> >>>>> ISessionStorage, me suena a dinamita... >>>>> En la documentacion de NH dice que session tiene que ser lo mas corto >>>>> posible y apenas da una excepcion hay que tirarla >>>>> Ahi lo que parece es que crean una session al principio y van >>>>> devolviendo la misma session, no se cual es el life cycle, pero >>>>> bueno...fijense bien si estan siguiendo los principios de manejo de >>>>> session. >>>>> >>>>> Gustavo. >>>>> >>>>> 2010/8/9 NM <[email protected]> >>>>> >>>>>> Este es nuestro método mediante el cual obtenemos session >>>>>> >>>>>> >>>>>> public static ISession Session(string database) >>>>>> { >>>>>> if (SessionStorage == null) >>>>>> { >>>>>> throw new Exception("NHibernateSession no está >>>>>> inicializado. Llama a Init antes de operar con él. Comprueba también >>>>>> que haya un ISessionStorage asociado a NHibernate."); >>>>>> } >>>>>> >>>>>> ISession session = SessionStorage.Session(database); >>>>>> if (session == null) >>>>>> { >>>>>> session = _sessionFactory[database].OpenSession(); >>>>>> SessionStorage.SetSession(database, session); >>>>>> } >>>>>> >>>>>> return session; >>>>>> } >>>>>> >>>>>> Esta es la forma en que lo empleamos >>>>>> >>>>>> var session = >>>>>> NHibernateSession.Session(NHibernateSession.BBDD); >>>>>> using (var transaction = session.BeginTransaction()) >>>>>> { >>>>>> var listaMensaje = session >>>>>> .CreateQuery(@" >>>>>> from >>>>>> NhOfiMensajeria M >>>>>> where >>>>>> M.Referencia like 'FD:%' >>>>>> And M.AUsuario=:valorUsuarioMensajeria >>>>>> ") >>>>>> .SetParameter("valorUsuarioMensajeria", >>>>>> valorUsuarioMensajeria) >>>>>> .List<NhOfiMensajeria>(); >>>>>> >>>>>> transaction.Commit(); >>>>>> } >>>>>> >>>>>> On 9 ago, 16:40, Gustavo Ringel <[email protected]> wrote: >>>>>> > Si tu flush mode no es en commit el commit no hace flush de todo lo >>>>>> que >>>>>> > escribiste. >>>>>> > Adicionalmente suena a que tenes lo que llama un Time Bomb session >>>>>> > management, o sea suena a que abris una sola session. >>>>>> > Si abris sessions de NHibernate en cada request no tendrias que >>>>>> tener ningun >>>>>> > problema de leer los datos que se escriben en la otra base. >>>>>> > Claro que si por ejemplo cacheas, o le decis a NH que los datos no >>>>>> son >>>>>> > mutables, podes tener distintos tipos de desincronizacion. >>>>>> > >>>>>> > Gustavo. >>>>>> > >>>>>> > 2010/8/9 Maria Teresa Ruiz Espinosa <[email protected]> >>>>>> > >>>>>> > >>>>>> > >>>>>> > > Nuestro funcionamiento normal es hacer un beginTransaction y al >>>>>> finalizar >>>>>> > > la consulta un commit de la transacción. >>>>>> > >>>>>> > > No tenemos definido ningún FlushMode en especifico. >>>>>> > >>>>>> > > -- >>>>>> > > 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 >>>>>> >>>>> >>>>> -- >>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>> [email protected] >>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>>> >>>> >>>> >>>> >>>> -- >>>> Fabio Maulo >>>> >>>> -- >>>> 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 >>> >> >> -- >> 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 > -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
