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

Responder a