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

Responder a