02-03-2012, 17:13
Buenas gente, aca estoy rompiendome los cuernos por una aplicacion que da el siguiente error:
Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
estuve leyendo y hablando con una DBA aca y me dice que puede ser una mala configuracion del IIS...
Yo creo que se debe a esta clase de que administra las conexiones a la base (Oracle)
Para mi el problema esta en que nunca cierra la conexion, en teoria usa una durante toda la sesion del usuario, lo que pienso yo es que como no se cierra, el usuario sale, entra de nuevo (nueva conexion), etc, se llena el pool y muere la aplicacion....
Tengo razon o me estoy mandando cualquiera??
PD: Creo que me mande un re testamento
Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
estuve leyendo y hablando con una DBA aca y me dice que puede ser una mala configuracion del IIS...
Yo creo que se debe a esta clase de que administra las conexiones a la base (Oracle)
Spoiler: Mostrar
using System;
using System.Data;
using System.Data.OracleClient;
using System.Configuration;
using System.Web;
using System.Web.SessionState;
/// <summary>
/// Clase que administra la conexion con la base de datos
/// </summary>
public class clsConexion
{
protected OracleConnection db;
protected OracleTransaction tr;
#region Properties
public OracleConnection DBConnection
{
get
{
return db;
}
}
public OracleTransaction DBTransaction
{
get
{
return tr;
}
}
#endregion
#region Contructor
public clsConexion()
{
tr = null;
conectarBD();
}
#endregion
#region Metodos de Instancia
private void conectarBD()
{
string strConnStr;
//Guardo en strConnStr el connection string
strConnStr = Globals.DBConection;
// Remplazo [Usuario] y [Passwd] con lo que trae de SSO
strConnStr = strConnStr.Replace("[Usuario]", Globals.DBUser);
strConnStr = strConnStr.Replace("[Passwd]", Globals.PWDDBUser);
db = new OracleConnection(strConnStr);
db.Open();
}
public void iniciarTransaccion()
{
tr = db.BeginTransaction();
}
public void finalizarTransaccion()
{
tr.Commit();
tr = null;
}
public void errorTransaccion()
{
tr.Rollback();
tr = null;
}
#endregion
}
Para mi el problema esta en que nunca cierra la conexion, en teoria usa una durante toda la sesion del usuario, lo que pienso yo es que como no se cierra, el usuario sale, entra de nuevo (nueva conexion), etc, se llena el pool y muere la aplicacion....
Tengo razon o me estoy mandando cualquiera??
PD: Creo que me mande un re testamento