Resulta que en la oficina tenemos instalado un ERP. Todos los usuarios
se conectan por Terminal Server a un servidor de aplicaciones, que a su
vez, cuando ejecutan el ERP, éste se conecta a una base de datos que hay
en un servidor de datos.
El caso es que cuando un usuario determinado deja el ordenador un rato
sin hacer nada (me refiero al ERP, es decir, no trabaja dentro de la
sesión de TS), la conexión con la BD se pierde, con lo que el programa
comienza a fallar como una escopeta de feria sin razón aparente. Además,
dependiendo del proceso que estuviese realizando pues puede ser más o
menos peligroso.
Mirando y mirando, he visto en el SQL Server Configuration Manager, en
Configuración de red de SQL Server 2005 que está habilitado Memoria
Compartida (que no sé si no será mejor deshabilitarlo según he leido) y
TCP/IP habilitado, y dentro de las propiedades de TCP/IP está:
Escuchar todo: Sí
Habilitado: Sí
Mantener conexión: 30000
Sin retraso: No
Según he estado leyendo, veo que el 30000 es el tiempo en milisegundos
que SQL Server permite que una conexión esté inactiva, lo cual me deja
una duda, si sólo son 30 segundos, entonces, en cualquier aplicación
normal, ¿un usuario no se puede quedar quieto 30 seg? :D
¿Qué valor tenéis normalmente especificado aquí? Entiendo que 0 es que
no compruebe y que no es recomendable, así que ¿qué valor recomendáis?
Si le pongo 0 un par de días para probar si el error viene por aquí,
creeis que habrá algún problema.
Salu2 y gracias,
--Eclat
El problema esta en la forma de realizar la conexion, esta solo debe
permanecer activa, cuando se necesita.
La logica es:
Me conecto
Ejecuto
Recibo
Me desconecto
Por lo que leo, tu aplicato ABRE UNA CONEXION y siempre la mantiene abierta,
por logica, un navegador, hace un refresh de forma automatica cada 30
segundos, ahi, se pierde dicha conexion si esta, no esta activa.
Saludos
--
Saludos
IIslas
¿Tiene sentido que en SQL 2000 funcione y en SQL 2005 no?
Salu2
--Eclat
Isaias escribió:
--
-------------------------------------------------------------------------
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email: max...@gmail.com.nospam
-----------------------------------------------------------------------
"Eclat" <eclat2kQUIT...@YESTETAMBIENgmail.com> escribió en el
mensaje news:5ev4oaF...@mid.individual.net...
Maxi escribió:
--
-------------------------------------------------------------------------
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email: max...@gmail.com.nospam
-----------------------------------------------------------------------
"Eclat" <eclat2kQUIT...@YESTETAMBIENgmail.com> escribió en el
mensaje news:5evhaiF...@mid.individual.net...
Maxi escribió:
> exacto
>
Logicamente, ¿para que tener una conexion abierta cuando no se usa?
--
Saludos
IIslas
--
-------------------------------------------------------------------------
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email: max...@gmail.com.nospam
-----------------------------------------------------------------------
"Isaias" <Isa...@discussions.microsoft.com> escribió en el mensaje
news:7FF16059-8771-4EB0...@microsoft.com...
¿Hay algún acercamiento que no esté viendo yo correctamente que nos
permitiera ir cerrando la conexión? ¿Con la técnica el "maletín"? ¿Me
traigo todo a un tabla en memoria, actualizo y vuelco los cambios? ¿Y si
varios usuarios han hecho lo mismo?
Lo comento porque a lo mejor estáis más puestos en el tema y os
habéis encontrado con esto miles de veces. No es mi caso :D
Salu2 y gracias por la ayuda, hoy a última hora os contaré como ha ido,
--Eclat
Maxi escribió:
1) Lleno el dataset con lo que necesito
2) Pongo en la grilla el dataset
3) Aplico los cambios al dataset
4) Me conecto
5) Genero todos los cambios en la base de datos
6) Me desconecto
--
-------------------------------------------------------------------------
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email: max...@gmail.com.nospam
-----------------------------------------------------------------------
"Eclat" <eclat2kQUIT...@YESTETAMBIENgmail.com> escribió en el
mensaje news:5f104uF...@mid.individual.net...
Maxi escribió:
Run-time error: '1060':
Error code: 10054 in 0 Text is: '[Microsoft][SQL Native Client]Proveedor
de TCP: Se ha forzado la interrupción de una conexión existente por el
host remoto.
La verdad es que no soy capaz de "cazar" cada cuanto tiempo da esto. No
sé si será cada tiempo fijo o no.
He revisado las conexiones de red, las tarjetas, etc, y todo está
correcto. El resto de programas que hay en ese servidor (W2003 R2
Standard Edition) que no usan SQL Server 2005 funcionan correctamente,
así que el problema entiendo que debe estar en algún parámetro de
configuración del SQL Server. Algo que haya cambiado del 2000 al 2005,
ya que me comentan que este problema, con el 2000 nunca lo habían tenido.
¿Alguna otra opción que se os ocurra?
Gracias mil :D
--Eclat
Maxi escribió:
> exacto
>
--
-------------------------------------------------------------------------
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email: max...@gmail.com.nospam
-----------------------------------------------------------------------
"Eclat" <eclat2kQUIT...@YESTETAMBIENgmail.com> escribió en el
mensaje news:5f3nr3F...@mid.individual.net...
Maxi escribió: