Blog gratis
Reportar
Editar
¡Crea tu blog!
Compartir
¡Sorpréndeme!
img
img

 

 

SQL Server
Blog. (Apuntes y Recopilaciones) por Norman M. Pardell

img
img
24 de Febrero, 2011 · max-pool-size-was-reached

Error de “Timeout expired”, “max pool size was reached” con .Net

 El número máximo de conexiones que por defecto tiene configuradas .Net son 100, algo que en condiciones normales no es necesario parametrizar.

 

 Puede ocurrir que todas las conexiones se agrupen, y la suma de cada una de ellas, superen el máximo de conexiones por defecto en .Net, y nos devolverá el error de "Tiempo de espera agotado” o “max pool size was reached”, cuando se produzca una nueva solicitud de conexión que no pueda ser atendida.

 

 En otras ocasiones, simplemente, una cadena de conexión no se cierra correctamente o no es consistentemente, puede devolver estos errores.

 

 Lo más probable es que se produzca este problema con la existencia de alguna conexión en código que pueda no cerrarse y de esta forma dejarla activa mientras se siguen solicitando más conexiones. En este sentido sería deseable examinar el código en busca de posibles conexiones no cerradas o bien realizar algún mecanismo tipo try{}catch(){}finally en donde se liberen los recursos que se hayan dejado de utilizar.

 

 Cuando se tiene la intención de cerrar la conexión de base de datos, y queremos asegurarnos de que realmente de cierra. El siguiente código es un ejemplo de cómo es posible dejar conexiones abiertas:

 

    SqlConnection conn = new SqlConnection(myConnectionString);

      conn.Open();

      doSomething();

      conn.Close();     
           

Esto puede ser corregido, con una excepción en doSomething(), de la forma:


    
SqlConnection conn = new SqlConnection(myConnectionString);

      try

      {

            conn.Open();

            doSomething(conn);

      }

      finally

     {

            conn.Close();                

      }

 

 

 

 Soluciones que se pueden tratar para resolver el problema:

1) Revise su aplicación para asegurarse de que todas las conexiones de base de datos se cierran cuando no es necesario. ASP.NET se supone que tiene un “recolector” para recuperar los recursos no utilizados (recuperar conexiones no en uso, que no fueron cerradas). Sin embargo, en un sitio con mucha carga y muchas conexiones, es probable que la suma de conexiones impida nuevas conexiones antes de que el “recolector” para intentar recuperar posibles conexiones…


2) Puede aumentar el tamaño del grupo de conexión en la cadena de conexión. Por ejemplo, puede agregar "Max Pool Size = 100" de la cadena de conexión para aumentar el tamaño a 100 conexiones o incluso más si fuera necesario.

 

Lecturas recomendadas que pueden tener relación:

Como solucionar problemas en SQL Server de: "General Network error", "Communication link failure", or "A transport-level error":

http://microsoftsqlsecret.fullblog.com.ar/como-solucionar-problemas-de-general-network-error-communication.html

Problemas de "Async-Network-IO" and "NetWorkIO": http://microsoftsqlsecret.fullblog.com.ar/problemas-de-asyncnetworkio-networkio.html

 

 

Apuntes y recopilaciónes por Norman M. Pardell

 

Puedes consultarme, si deseas cualquier aclaración, pregunta o sugerencia en: Contacto, contestaré tan pronto como me sea posible.

publicado por normanmpardell a las 08:12 · Sin comentarios  ·  Recomendar
Comentarios (0) ·  Enviar comentario
Esta entrada no admite comentarios.
img
.Sobre mí
FOTO

Norman M. Pardell

MCITP: Database Administrator & Database Developer, SQL Server 2008. MCC Award Certificate. Consultor Senior de bases de datos en Capgemini España, S.L. Asesoramiento en implementación, desarrollo y gestión de bases de datos en grandes compañías. Actualmente, asignado a proyecto en compañía líder en el sector energético global. Más de 10 años trabajando con SQL Server (y otros gestores de BBDD)

» Ver perfil

img
.Secciones
» Inicio
img
.Enlaces
» Microsoft MSDN Foros
» Windows Server 2012
img
.Más leídos
» Asignar la cantidad correcta de Memoria para SQL Server
» Base de Datos Sospechosa (Suspect)
» Como modificar la Intercalación (Collation) en SQL Server
» Como renombrar una instancia de SQL Server. sp_dropserver. sp_addserver
» Detectar bloqueos. SQL Server V.2005 y superiores
» Funciones SQL Server. Funciones escalares y funciones con valores de tabla.
» Integridad y corrupción en las bases de datos: DBCC CHECKDB
» Log de transacciones ( .ldf ). SQL Server.
» Migrando SQL Server 2005, 2008, 2008 R2 a SQL Server 2012
» Transacciones activas. SQL server 2008
img
.Nube de tags [?]
                                                           
img img
FULLServices Network | Crear blog | Privacidad