Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

El tiempo de conexión caduca muy rápido ¿Problema con la cadena de conexión?

Estas en el tema de El tiempo de conexión caduca muy rápido ¿Problema con la cadena de conexión? en el foro de Bases de Datos General en Foros del Web. Hola a todos. Tengo el siguiente problema. Al arrancar la aplicación, lo primero que hago es preparar una cadena de conexión a mi base de ...
  #1 (permalink)  
Antiguo 07/08/2006, 12:18
jcl
 
Fecha de Ingreso: enero-2002
Mensajes: 673
Antigüedad: 22 años, 2 meses
Puntos: 1
Exclamación El tiempo de conexión caduca muy rápido ¿Problema con la cadena de conexión?

Hola a todos.

Tengo el siguiente problema.

Al arrancar la aplicación, lo primero que hago es preparar una cadena de conexión a mi base de datos MS SQLServer, partiendo de un ejemplo que encontré en la red. La cadena la coloco en una variable "Session", de manera que la puedo usar durante toda la sesión.

Pero el problema es frecuentemente, cuando estoy llenando un formulario que necesita algunos minutos para llenarse, entonces me encuentro con que la conexión caducó y, por consiguiente arroja los respectivos errores.

La cadena es la siguiente, y que por razones obvias se cambiaron algunos parámetros:

<%
Session("database")= "Provider=MSDASQL.1;driver={SQL Server};Password=MyPassw;Persist Security Info=false;User ID=MyLogin;loginsecure=false;Connect Timeout=0;Description=Cualquier cosa;SERVER=010.100.101.110;UID=MyLogin;APP=Micros oft Development Environment;DATABASE=MyBaseDeDatos;LANGUAGE=Españo l;Network=DBMSSOCN;Address=010.100.101.110,1433""; Locale Identifier=3082;"
%>


y la uso de esta forma:

<%
Set cn = Server.CreateObject("ADODB.Connection")
cn.ConnectionTimeout = 60
cn.Open Session("database")

Set UsrReg = Server.CreateObject("ADODB.Recordset")

UsrReg.ActiveConnection =cn
UsrReg.CursorType =adOpenKeyset
UsrReg.LockType =adLockOptimistic
querystr = "Select * from RegistroDeClientes where Login = ........
UsrReg.Source =querystr
UsrReg.Open
%>


Por favor, alguno de ustedes puede decirme si a esa cadena la falta algo o tiene cosas demás, que pudieran limitar el tiempo de caducidad de la conexión??

La uso así, por de esa forma la encontré y no tengo los conocimientos que me permitan construir otra mejor.

Saludos.
  #2 (permalink)  
Antiguo 07/08/2006, 13:51
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 22 años, 2 meses
Puntos: 3
La línea:

Código:
cn.ConnectionTimeout = 60
Te dice el tiempo de timeout de la conexión, o sea, el tiempo de inactividad máximo que puede tener tu conexión. 60 es muy poco... por lo que recuerdo esto se expresa en segundos, o sea, si luego de 1 minuto no hay "movimiento" en la conexión esta se cerrará (que es tu problema). Tan fácil es la solución como que incrementes este valor, pon el que estimes conveniente para completar el formulario. Yo le pondría unos 10 minutos (cambiar el 60 por 600). Nos cuentas como te fue
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #3 (permalink)  
Antiguo 07/08/2006, 18:37
jcl
 
Fecha de Ingreso: enero-2002
Mensajes: 673
Antigüedad: 22 años, 2 meses
Puntos: 1
Pregunta

Ok, Amigos. Probaré eso.

Aprovecho para preguntar, sobre esta otra duda:

Si en lugar de lo anterior, tengo como cadena de conexión lo siguiente:

<%
Session("database") = "Provider=SQLOLEDB.1;Data Source=000.010.303.004;User Id=MyLogin;Password=MYPassw;Initial Catalog=MyBaseDeDatos;"
%>


Cual es la diferencia y, quizás en terminos de efectividad y conveniencia de la conexión, en usar Provider=SQLOLEDB.1 en lugar de tener Provider=MSDASQL.1;driver={SQL Server}.

Pues, ahora me doy cuenta que la aplicación donde se genera el error es un HelpDesk y no usa "ConnectionTimeout", es decir, abre la DB así:

<%
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open Session("database")
%>


... y esta aplicación sugiere usar Provider=SQLOLEDB.1.

¿Qué opinan acerca de esto?

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:10.