Pool de conexiones se llena usando ADO.Net

11/02/2004 - 20:15 por Gustavo Santis Mancipe | Informe spam
Hola grupo. El tema tiene que ver con ADO.Net y SQL, espero que alguien me
pueda ayudar porque tengo muchos problemas con este error.

Tengo una App en asp.net desarrollada con VB.Net que se conecta a una BD SQL
2000. La conexión a la BD y el llamado a los Stored Procedures los hago
desde un componente que también esta desarrollado en VB.Net.

El problema que tengo es que por cada consulta o ejecución de un stored
procedure SQL-Server crea un proceso que queda estado "sleeping" y así se
vuelva a realizar el mismo procedimiento sobre la aplicación SQL crea un
nuevo proceso (incluso haciéndolo desde el mismo computador con el mismo
usuario y en la misma sesión del Internet Explorer). Estos procesos no son
liberados por SQL y después de varios ejecuciones de la aplicación el pool
de conexiones de SQL se llena y la aplicación no se vuelve a conectar a la
base de datos.

E intentado cerrando todas las conexiones desde los componentes, e ejecutado
el método dispose de cada objeto que tenga que ver con acceso a la base de
datos (DataSet, Connection, Adapter, .), los e instanciado a Nothing
pero no e logrado solucionar nada. Todos los strored procedures terminan su
ejecución normalmente.

Este es mi string de conexión "Data Source=(local);Initial
Catalog=sic;Persist Security Info=False;User ID=sic;Pwd=sic"

Que debo hacer para Que la ejecución de estas consultas (procesos) sean
liberados por SQL o Para que el proceso no quede en estado "sleeping" o en
general para solucionar el problema.


Muchas gracias por su ayuda.

Preguntas similare

Leer las respuestas

#1 Adrian D. Garcia
12/02/2004 - 04:02 | Informe spam
Intenta con este string e conexion:

"Data Source=(local);Initial Catalog=sic;Persist Security Info=False;User
ID=sic;Pwd=sic; pooling=false;"

y asegurate de cerrar siempre la conexion cuando la hayas utilizado.

Una pregunta: cada usuario de tu aplicacion es tambien un usuario del motor?

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Gustavo Santis Mancipe" wrote in message
news:%
Hola grupo. El tema tiene que ver con ADO.Net y SQL, espero que alguien me
pueda ayudar porque tengo muchos problemas con este error.

Tengo una App en asp.net desarrollada con VB.Net que se conecta a una BD


SQL
2000. La conexión a la BD y el llamado a los Stored Procedures los hago
desde un componente que también esta desarrollado en VB.Net.

El problema que tengo es que por cada consulta o ejecución de un stored
procedure SQL-Server crea un proceso que queda estado "sleeping" y así se
vuelva a realizar el mismo procedimiento sobre la aplicación SQL crea un
nuevo proceso (incluso haciéndolo desde el mismo computador con el mismo
usuario y en la misma sesión del Internet Explorer). Estos procesos no


son
liberados por SQL y después de varios ejecuciones de la aplicación el pool
de conexiones de SQL se llena y la aplicación no se vuelve a conectar a la
base de datos.

E intentado cerrando todas las conexiones desde los componentes, e


ejecutado
el método dispose de cada objeto que tenga que ver con acceso a la base de
datos (DataSet, Connection, Adapter, .), los e instanciado a Nothing
pero no e logrado solucionar nada. Todos los strored procedures terminan


su
ejecución normalmente.

Este es mi string de conexión "Data Source=(local);Initial
Catalog=sic;Persist Security Info=False;User ID=sic;Pwd=sic"

Que debo hacer para Que la ejecución de estas consultas (procesos) sean
liberados por SQL o Para que el proceso no quede en estado "sleeping" o en
general para solucionar el problema.


Muchas gracias por su ayuda.


Respuesta Responder a este mensaje
#2 Eladio Rincón
12/02/2004 - 12:27 | Informe spam
Hola Adrian,

de esta forma estamos deshabilitando el pooling; yo antes de deshabilitarlo intentaría asegurarme que se cierran las conexiones después de ser usadas, y se llama al método Dispose del objeto Connection; yo en alguna ocasión me he encontrado con el mismo problema y SIEMPRE era debido a que no se cerraba la conexión en algún sitio de (DAL- capa de acceso a datos).

Eladio Rincón
Torrevieja - Alicante
MCAD, SQL Server MVP
http://www.siquelnet.com

"Comparte lo que sabes, aprende lo que no sepas." FGG

"Adrian D. Garcia" escribió en el mensaje news:
Intenta con este string e conexion:

"Data Source=(local);Initial Catalog=sic;Persist Security Info=False;User
ID=sic;Pwd=sic; pooling=false;"

y asegurate de cerrar siempre la conexion cuando la hayas utilizado.

Una pregunta: cada usuario de tu aplicacion es tambien un usuario del motor?

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Gustavo Santis Mancipe" wrote in message
news:%
> Hola grupo. El tema tiene que ver con ADO.Net y SQL, espero que alguien me
> pueda ayudar porque tengo muchos problemas con este error.
>
> Tengo una App en asp.net desarrollada con VB.Net que se conecta a una BD
SQL
> 2000. La conexión a la BD y el llamado a los Stored Procedures los hago
> desde un componente que también esta desarrollado en VB.Net.
>
> El problema que tengo es que por cada consulta o ejecución de un stored
> procedure SQL-Server crea un proceso que queda estado "sleeping" y así se
> vuelva a realizar el mismo procedimiento sobre la aplicación SQL crea un
> nuevo proceso (incluso haciéndolo desde el mismo computador con el mismo
> usuario y en la misma sesión del Internet Explorer). Estos procesos no
son
> liberados por SQL y después de varios ejecuciones de la aplicación el pool
> de conexiones de SQL se llena y la aplicación no se vuelve a conectar a la
> base de datos.
>
> E intentado cerrando todas las conexiones desde los componentes, e
ejecutado
> el método dispose de cada objeto que tenga que ver con acceso a la base de
> datos (DataSet, Connection, Adapter, .), los e instanciado a Nothing
> pero no e logrado solucionar nada. Todos los strored procedures terminan
su
> ejecución normalmente.
>
> Este es mi string de conexión "Data Source=(local);Initial
> Catalog=sic;Persist Security Info=False;User ID=sic;Pwd=sic"
>
> Que debo hacer para Que la ejecución de estas consultas (procesos) sean
> liberados por SQL o Para que el proceso no quede en estado "sleeping" o en
> general para solucionar el problema.
>
>
> Muchas gracias por su ayuda.
>
>


Respuesta Responder a este mensaje
#3 Eladio Rincón
12/02/2004 - 23:10 | Informe spam
Hola Adrian,

no recuerdo el post, pero mi comentario ha sido por experiencia propia por haber olvidado una llamada al método Close() de la conexión; me ha parecido que utilizaba la misma cadena de conexión; para verificar que realmente se cierran las conexiones haría un seguimiento con Profiler para ver si los "Audit Login" y "Audit Logoff" están casados para cada SPID ... supongo que ya lo habrá comprobado Gustavo ...

Eladio Rincón
Torrevieja - Alicante
MCAD, SQL Server MVP
http://www.siquelnet.com

"Comparte lo que sabes, aprende lo que no sepas." FGG

"Adrian D. Garcia" escribió en el mensaje news:
Si, tienes razon pero hace un tiempo esta persona, creo, realizo el mismo
POST y se le dio la sugerencia que propones pero aparentemente sin
resultados.

Si cada usuario se logea a la base definiendo sus nombre de usuario y
password en el string de conexion el pool de conexiones no se utilizara casi
nada ya que las conexiones no se podrian reutilizar entre usuarios.
Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Eladio Rincón" wrote in message
news:eCLL$
Hola Adrian,

de esta forma estamos deshabilitando el pooling; yo antes de deshabilitarlo
intentaría asegurarme que se cierran las conexiones después de ser usadas, y
se llama al método Dispose del objeto Connection; yo en alguna ocasión me he
encontrado con el mismo problema y SIEMPRE era debido a que no se cerraba la
conexión en algún sitio de (DAL- capa de acceso a datos).

Eladio Rincón
Torrevieja - Alicante
MCAD, SQL Server MVP
http://www.siquelnet.com

"Comparte lo que sabes, aprende lo que no sepas." FGG

"Adrian D. Garcia" escribió en el mensaje
news:
> Intenta con este string e conexion:
>
> "Data Source=(local);Initial Catalog=sic;Persist Security Info=False;User
> ID=sic;Pwd=sic; pooling=false;"
>
> y asegurate de cerrar siempre la conexion cuando la hayas utilizado.
>
> Una pregunta: cada usuario de tu aplicacion es tambien un usuario del
motor?
>
> Saludos
> Adrian D. Garcia
> MCSD
> NDSoft Consultoria y Desarrollo
>
> "Gustavo Santis Mancipe" wrote in message
> news:%
> > Hola grupo. El tema tiene que ver con ADO.Net y SQL, espero que alguien
me
> > pueda ayudar porque tengo muchos problemas con este error.
> >
> > Tengo una App en asp.net desarrollada con VB.Net que se conecta a una BD
> SQL
> > 2000. La conexión a la BD y el llamado a los Stored Procedures los hago
> > desde un componente que también esta desarrollado en VB.Net.
> >
> > El problema que tengo es que por cada consulta o ejecución de un stored
> > procedure SQL-Server crea un proceso que queda estado "sleeping" y así
se
> > vuelva a realizar el mismo procedimiento sobre la aplicación SQL crea un
> > nuevo proceso (incluso haciéndolo desde el mismo computador con el mismo
> > usuario y en la misma sesión del Internet Explorer). Estos procesos no
> son
> > liberados por SQL y después de varios ejecuciones de la aplicación el
pool
> > de conexiones de SQL se llena y la aplicación no se vuelve a conectar a
la
> > base de datos.
> >
> > E intentado cerrando todas las conexiones desde los componentes, e
> ejecutado
> > el método dispose de cada objeto que tenga que ver con acceso a la base
de
> > datos (DataSet, Connection, Adapter, .), los e instanciado a Nothing
> > pero no e logrado solucionar nada. Todos los strored procedures
terminan
> su
> > ejecución normalmente.
> >
> > Este es mi string de conexión "Data Source=(local);Initial
> > Catalog=sic;Persist Security Info=False;User ID=sic;Pwd=sic"
> >
> > Que debo hacer para Que la ejecución de estas consultas (procesos) sean
> > liberados por SQL o Para que el proceso no quede en estado "sleeping" o
en
> > general para solucionar el problema.
> >
> >
> > Muchas gracias por su ayuda.
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Adrian D. Garcia
13/02/2004 - 02:10 | Informe spam
Si, tienes razon pero hace un tiempo esta persona, creo, realizo el mismo
POST y se le dio la sugerencia que propones pero aparentemente sin
resultados.

Si cada usuario se logea a la base definiendo sus nombre de usuario y
password en el string de conexion el pool de conexiones no se utilizara casi
nada ya que las conexiones no se podrian reutilizar entre usuarios.
Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Eladio Rincón" wrote in message
news:eCLL$
Hola Adrian,

de esta forma estamos deshabilitando el pooling; yo antes de deshabilitarlo
intentaría asegurarme que se cierran las conexiones después de ser usadas, y
se llama al método Dispose del objeto Connection; yo en alguna ocasión me he
encontrado con el mismo problema y SIEMPRE era debido a que no se cerraba la
conexión en algún sitio de (DAL- capa de acceso a datos).

Eladio Rincón
Torrevieja - Alicante
MCAD, SQL Server MVP
http://www.siquelnet.com

"Comparte lo que sabes, aprende lo que no sepas." FGG

"Adrian D. Garcia" escribió en el mensaje
news:
Intenta con este string e conexion:

"Data Source=(local);Initial Catalog=sic;Persist Security Info=False;User
ID=sic;Pwd=sic; pooling=false;"

y asegurate de cerrar siempre la conexion cuando la hayas utilizado.

Una pregunta: cada usuario de tu aplicacion es tambien un usuario del


motor?

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Gustavo Santis Mancipe" wrote in message
news:%
> Hola grupo. El tema tiene que ver con ADO.Net y SQL, espero que alguien


me
> pueda ayudar porque tengo muchos problemas con este error.
>
> Tengo una App en asp.net desarrollada con VB.Net que se conecta a una BD
SQL
> 2000. La conexión a la BD y el llamado a los Stored Procedures los hago
> desde un componente que también esta desarrollado en VB.Net.
>
> El problema que tengo es que por cada consulta o ejecución de un stored
> procedure SQL-Server crea un proceso que queda estado "sleeping" y así


se
> vuelva a realizar el mismo procedimiento sobre la aplicación SQL crea un
> nuevo proceso (incluso haciéndolo desde el mismo computador con el mismo
> usuario y en la misma sesión del Internet Explorer). Estos procesos no
son
> liberados por SQL y después de varios ejecuciones de la aplicación el


pool
> de conexiones de SQL se llena y la aplicación no se vuelve a conectar a


la
> base de datos.
>
> E intentado cerrando todas las conexiones desde los componentes, e
ejecutado
> el método dispose de cada objeto que tenga que ver con acceso a la base


de
> datos (DataSet, Connection, Adapter, .), los e instanciado a Nothing
> pero no e logrado solucionar nada. Todos los strored procedures


terminan
su
> ejecución normalmente.
>
> Este es mi string de conexión "Data Source=(local);Initial
> Catalog=sic;Persist Security Info=False;User ID=sic;Pwd=sic"
>
> Que debo hacer para Que la ejecución de estas consultas (procesos) sean
> liberados por SQL o Para que el proceso no quede en estado "sleeping" o


en
> general para solucionar el problema.
>
>
> Muchas gracias por su ayuda.
>
>


Respuesta Responder a este mensaje
#5 Adrian D. Garcia
13/02/2004 - 09:08 | Informe spam
Bien, estamos hablando de lo mismo :)
Ahora, como es eso de los audit login y los audit logoff? Podrias explicarlo
mas en detalle?

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Eladio Rincón" wrote in message
news:
Hola Adrian,

no recuerdo el post, pero mi comentario ha sido por experiencia propia por
haber olvidado una llamada al método Close() de la conexión; me ha parecido
que utilizaba la misma cadena de conexión; para verificar que realmente se
cierran las conexiones haría un seguimiento con Profiler para ver si los
"Audit Login" y "Audit Logoff" están casados para cada SPID ... supongo que
ya lo habrá comprobado Gustavo ...

Eladio Rincón
Torrevieja - Alicante
MCAD, SQL Server MVP
http://www.siquelnet.com

"Comparte lo que sabes, aprende lo que no sepas." FGG

"Adrian D. Garcia" escribió en el mensaje
news:
Si, tienes razon pero hace un tiempo esta persona, creo, realizo el mismo
POST y se le dio la sugerencia que propones pero aparentemente sin
resultados.

Si cada usuario se logea a la base definiendo sus nombre de usuario y
password en el string de conexion el pool de conexiones no se utilizara


casi
nada ya que las conexiones no se podrian reutilizar entre usuarios.
Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Eladio Rincón" wrote in message
news:eCLL$
Hola Adrian,

de esta forma estamos deshabilitando el pooling; yo antes de


deshabilitarlo
intentaría asegurarme que se cierran las conexiones después de ser usadas,


y
se llama al método Dispose del objeto Connection; yo en alguna ocasión me


he
encontrado con el mismo problema y SIEMPRE era debido a que no se cerraba


la
conexión en algún sitio de (DAL- capa de acceso a datos).

Eladio Rincón
Torrevieja - Alicante
MCAD, SQL Server MVP
http://www.siquelnet.com

"Comparte lo que sabes, aprende lo que no sepas." FGG

"Adrian D. Garcia" escribió en el mensaje
news:
> Intenta con este string e conexion:
>
> "Data Source=(local);Initial Catalog=sic;Persist Security


Info=False;User
> ID=sic;Pwd=sic; pooling=false;"
>
> y asegurate de cerrar siempre la conexion cuando la hayas utilizado.
>
> Una pregunta: cada usuario de tu aplicacion es tambien un usuario del
motor?
>
> Saludos
> Adrian D. Garcia
> MCSD
> NDSoft Consultoria y Desarrollo
>
> "Gustavo Santis Mancipe" wrote in message
> news:%
> > Hola grupo. El tema tiene que ver con ADO.Net y SQL, espero que


alguien
me
> > pueda ayudar porque tengo muchos problemas con este error.
> >
> > Tengo una App en asp.net desarrollada con VB.Net que se conecta a una


BD
> SQL
> > 2000. La conexión a la BD y el llamado a los Stored Procedures los


hago
> > desde un componente que también esta desarrollado en VB.Net.
> >
> > El problema que tengo es que por cada consulta o ejecución de un


stored
> > procedure SQL-Server crea un proceso que queda estado "sleeping" y así
se
> > vuelva a realizar el mismo procedimiento sobre la aplicación SQL crea


un
> > nuevo proceso (incluso haciéndolo desde el mismo computador con el


mismo
> > usuario y en la misma sesión del Internet Explorer). Estos procesos


no
> son
> > liberados por SQL y después de varios ejecuciones de la aplicación el
pool
> > de conexiones de SQL se llena y la aplicación no se vuelve a conectar


a
la
> > base de datos.
> >
> > E intentado cerrando todas las conexiones desde los componentes, e
> ejecutado
> > el método dispose de cada objeto que tenga que ver con acceso a la


base
de
> > datos (DataSet, Connection, Adapter, .), los e instanciado a


Nothing
> > pero no e logrado solucionar nada. Todos los strored procedures
terminan
> su
> > ejecución normalmente.
> >
> > Este es mi string de conexión "Data Source=(local);Initial
> > Catalog=sic;Persist Security Info=False;User ID=sic;Pwd=sic"
> >
> > Que debo hacer para Que la ejecución de estas consultas (procesos)


sean
> > liberados por SQL o Para que el proceso no quede en estado "sleeping"


o
en
> > general para solucionar el problema.
> >
> >
> > Muchas gracias por su ayuda.
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida