none
Requests que entran simultaneamente a un metodo que realiza una operacion con DataReader da Excepcion. RRS feed

  • Question

  • Hola a todos.

    Tengo la sospecha de que los hilos de llamados a una funcion en ASP.NET son compartidos entre los requests. Esto debido a que cuando estreso un comando en una pagina que realiza consulta de tipo DataReader a una base de datos, a veces me aparece un error que dice que la conexion con la cual pretendo acceder a dicha consulta actualmente se encuentra en uso.  Cabe mencionar que en el método donde existe dicha conexion he colocado tanto el cierre del Datareader como el de la conexion de manera explicita en un bloque Finally de un Try Catch.

    Como dato, he colocado el objeto conexion que ocupo en una clase de tipo singleton, donde solo permito una conexion a la vez. (Esto lo hice considerando que los request en ASP.NET se manejan aislados en el propio contexto de la sesión de usuario, para evitar que se generaran mas conexiones en el pool).

    ¿Que recomendaciones hay para evitar éstas colisiones durante el manejo estresado de un servidor para evitar que dos peticiones ocupen la misma conexión? - De primera mano se me ocurriría quitar el singleton, pero de cualquier forma, dado que la cadena de conexion no sufre cambios, ésta permanecería de forma única en el pool de conexiones, por lo que creo que en escencia sería lo mismo que un singleton... y la otra se me ocurre poner un semaforo en el método pero no creo que esta sea la solucion mas elegante, por así decirlo.

    Agradezco mucho sus comentarios.

    Monday, June 5, 2017 7:55 PM

Answers

  • I'd ask over here in microsoft official ASP.Net forums but I believe they are English only forums.

    https://forums.asp.net/

     

     



    Regards, Dave Patrick ....
    Microsoft Certified Professional
    Microsoft MVP [Windows Server] Datacenter Management

    Disclaimer: This posting is provided "AS IS" with no warranties or guarantees, and confers no rights.

    Monday, June 5, 2017 8:30 PM
    Moderator