Porque el GC tendria que hacer algo cuando haces Dispose? De hecho no queres
que haga nada cada vez que hagas dispose a menos que no quieras que tu
aplicacion trabaje :). GC es una tarea cara que C# en general hace cuando se
esta quedando sin memoria nada mas.
Si haces using (ISession session = OpenSession()) { ... } cada vez que usas
NH, entonces no te preocupes por el lado del manejo de la session al menos.

Yo tengo un sistema que testee hace poco con 10 estaciones de trabajo
haciendo una tarea cada 1 segundo (la carga que esperamos en las horas pico
en nuestro sistema), cada accion implicaba un opensession - closession. En
el servidor no vi aumento del uso de la memoria en un dia entero de trabajo
con este test.

Yo no hago nunca tests en ambientes que no son el que voy a trabajar y no
son reales...no ayudan mucho...Por ejemplo podrias probar si un PDA resiste
una caida de 2000 metros. Pero bueno, salvo que seas un alpinista que va
andar con un PDA...no hay muchos casos en los que esa prueba sea util. Mas
vale agarrar a Shaquille O'neal o al chino que no me acuerdo el nombre,
pedirle que levante los brazos, darle el PDA y que lo suelte...y bueno, ahi
mas o menos tenes un caso que te sirve realmente.

Gustavo.

2009/1/23 Plugin <[email protected]>

>
> Saludos a todos.
>
> En primer lugar debo agradeceros vuestra dedicación y consejo, que en
> más de una situación delicada me han salvado.
>
> La cuestión que quiero plantear es la siguiente:
> Hemos puesto en marcha una aplicación ASP.Net que emplea NHibernate.
>
> Para la gestión de las sesiones, hemos usado el "Command Pattern", de
> forma que cada caso de uso
> se enmarca en una apertura/cierre de sesión. (de forma similar a como
> se hace en el Session per view )
>
> Ahora bien. Lo que hemos observado es que al hacer un Close o un
> Dispose de la sesión, el GC hace caso omiso, y la memoria no se está
> recuperando, de modo que tras hacer uso varios usuarios de la
> aplicación, se produce una OutOfMemoryException...
>
> He probado a hacer un test de stress haciendo apertura/cierre/dispose
> de sesiones, recuperando un objeto, y he comprobado que efectivamente,
> el uso de memoria crece, crece....
>
> Dónde puede estar el problema?
> Hay algo que no entendí bien?
>
> Un saludo.
> >
>

--~--~---------~--~----~------------~-------~--~----~
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