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

Responder a