Opendb, close y dispose con oracle y .net
Quería preguntarte que opción es más adecuada al programar arrays de objetos con .net contra BD Oracle y pool de conexiones:
1)Que cada objeto se encargue de serializarse a si mismo, abriendo la conexión con la BD y cerrándola. Por tanto hay tantas aperturas/cierres de Bd como objetos. No entra el siguiente objeto si el anterior no ha hecho el dispose.
2)Que la acción de usuario abra la conexión de BD, se la pase a cada uno de los objetos para que cada uno haga lo que tenga que hacer y después cerrar la conexión con la BD una sola vez.
La opción 1) es la que tenemos programada y los de BD me dicen que de repente mi aplicación les pega un subidón de conexiones hasta el máximo que tenemos programado en el web. Config. Y que estamos afectando a otras aplicaciones e incluso las hacemos fallar pues superamos lo máximo que aguanta oracle. Sospecho que el dispose no es instantáneo. Solo es una "petición de dispose" que oracle ejecuta cuando le venga bien y por eso pega el subidón de conexiones abiertas del pool.
Mi duda es si al programar hemos heho una chapucilla y por tanto hemos de pasarnos a programar la opción 2 o bien es un problema de ajuste en Oracle que los de BD no han sabido configurar. El array de objetos pueden llegar a ser entre 50 y 100.
1)Que cada objeto se encargue de serializarse a si mismo, abriendo la conexión con la BD y cerrándola. Por tanto hay tantas aperturas/cierres de Bd como objetos. No entra el siguiente objeto si el anterior no ha hecho el dispose.
2)Que la acción de usuario abra la conexión de BD, se la pase a cada uno de los objetos para que cada uno haga lo que tenga que hacer y después cerrar la conexión con la BD una sola vez.
La opción 1) es la que tenemos programada y los de BD me dicen que de repente mi aplicación les pega un subidón de conexiones hasta el máximo que tenemos programado en el web. Config. Y que estamos afectando a otras aplicaciones e incluso las hacemos fallar pues superamos lo máximo que aguanta oracle. Sospecho que el dispose no es instantáneo. Solo es una "petición de dispose" que oracle ejecuta cuando le venga bien y por eso pega el subidón de conexiones abiertas del pool.
Mi duda es si al programar hemos heho una chapucilla y por tanto hemos de pasarnos a programar la opción 2 o bien es un problema de ajuste en Oracle que los de BD no han sabido configurar. El array de objetos pueden llegar a ser entre 50 y 100.
1 respuesta
Respuesta de sindimad
1