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(). 

Responder a