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
