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
