Hola Javier, En el ejemplo de codigo que envie, la idea es abrir y cerrar la conexion en cada comando o grupo de comandos en caso de que tengas que soportar transacciones. No recuerdo el codigo que enviaste pero el que yo envie, al encerar el objeto conexion en un using (creo que en la version nueva de VB.NET ya lo tenes), esta ejecutando un dispose del objeto connection, lo cual efectivamente cierra la conexion. En otras palabras, el codigo que envie yo no es compatible con la idea de usar una conexion persistente por sesion. Por otra parte, imaginate que si tenes 100 sesiones activas vas a tener 100 conexiones a la base de datos usandose una fraccion del tiempo, lo cual, ademas de exigirte mas licencias, cargan mas a la base de datos. Igual hay otros motivos ademas de este. Carlos Peix [EMAIL PROTECTED] tel: 4257-4622 cel: 15-4406-7571 _____
De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Javier Osvaldo Chércoles Enviado el: Lunes, 10 de Noviembre de 2008 10:30 a.m. Para: [email protected] Asunto: [puntonet] Error al ejecutar metodo contra Sybase. Gracia por la ayuda. Cuando te referis a estar de acuerdo con tu tocayo, te referis al uso del Dispose(). Esto ya lo implemente. Por otro lado la idea es que cada usuario abra un conexión y al cerrar la session se cierra la misma. Pero esty abierto a cualquier ayuda. Nuevamente. Muchas gracias. Javier. ----- Original Message ----- From: Carlos <mailto:[EMAIL PROTECTED]> Salvatore To: [email protected] Sent: Friday, November 07, 2008 7:32 PM Subject: [puntonet] Error al ejecutar metodo contra Sybase. Aunque esto, Javier, implique una modificación un poco más profunda de tu aplicación, debo decir que estoy totalmente de acuerdo con mi tocayo. Tomalo en consideración. C.S. From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Carlos Peix Sent: Friday, November 07, 2008 16:51 To: [email protected] Subject: [puntonet] Error al ejecutar metodo contra Sybase. Javier, Veo que mencionas que estas guardando la conexion en la sesion y supongo que estas en una aplicacion Web. Si este es tu caso, esto no es muy recomendable, incluso diria que es una mala practica en general. esto se debe a multiples motivos pero creo que la escalabilidad es el mas relevante. Sugiero que utilices el siguiente modelo (en C# de memoria) using (OleDbConnection cn = new OleDbConnection(connectionString)) { OleDbCommand cm = new OleDbCommand("select .....", cn); OleDbDataAdapter da = new OleDbDataAdapter(cm); da.Fill(dataSet); } Del costo de hacer la conexion deberia encargarse el pool de conexiones, aunque no me queda claro el tema del limite de procedimientos que mencionaron. Saludos Carlos Peix _____ De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Javier Osvaldo Chércoles Enviado el: Viernes, 07 de Noviembre de 2008 12:28 p.m. Para: [email protected] Asunto: [puntonet] Error al ejecutar metodo contra Sybase. Mil gracias, muy buena tu ayuda. ----- Original Message ----- From: [EMAIL PROTECTED] To: [email protected] Sent: Friday, November 07, 2008 11:28 AM Subject: [puntonet] Error al ejecutar metodo contra Sybase. Yo te recomendaría llamando el .Dispose() de todos los objetos que ejecutan cualquier acción sobre la base. Este método se encarga de liberar los recursos. Si no lo llamás explìcitamente, va a depender del proceso que el GC efectúa para seleccionar los objetos que elimina de la memoria. Esto no sucede de manera determinística y puede variar la cantidad de tiempo que el objeto quede en memoria tomando los recursos hasa que el GC invoque el .Finalize().
