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

Responder a