efectivamente el problema esta en contruir un session factory en cada request...
lo que debes construir en cada request es el  Session.
podes guardar el SessionFactory en algo estatico, e inicializarlo solo una vez.
saludos


Mario Dal Lago

--- El mar 19-jul-11, Gustavo Garcia <[email protected]> escribió:

De: Gustavo Garcia <[email protected]>
Asunto: Re: [NHibernate-Hispano] Re: No recuperación de memori
Para: [email protected]
Cc: [email protected]
Fecha: martes, 19 de julio de 2011, 13:35

Hola lista!
Ha pasado harto tiempo desde este thread, pero me tocó que estoy teniendo el 
mismo problema, bueno, similar.
Estoy realizando un proyecto con WCF (self-hosted) y estoy inicializando un 
SessionFactory en cada request (son servicios REST), muy parecido a como lo 
estaba haciendo Plugin, el código se ve algo así como esto:
  public class DispatcherService : IDispatcherService  {
    private readonly ISessionFactory _sessionFactory;
        
    public DispatcherService()
    {
      _sessionFactory = new Configuration().Configure().BuildSessionFactory();
    }
        
    public MOResponseDTO ProcessMO(string text, string ani, string op, string 
id, string to)
    {
      try
      {
        using (ISession session = _sessionFactory.OpenSession())
        {           ....        }      }    }  } 
Hice un test de pruebas de stress: hago 2 requests cada 0.5 segundos (un 
escenario común en mi caso) y al cabo de unos 4 minutos me quedé sin memoria 
RAM (tengo 3GB)
Al parecer el modo correcto en una aplicación ASP en construir el 
SessionFactory en el Application_Start() (para el patrón Session Per Request), 
pero tratándose de un servicio WCF, no logro encontrar cómo implementarlo. Leí 
por ahí que al ser "self-hosted" tengo más chance de hacerlo.
Alguien tiene algún conocimiento sobre esto?
Muchas gracias de antemano!



-- 

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