Paradox en Red

Voy a exponer mi problema haber si a alguien se le ocurre algo:
Tengo montada una red externa en una fabrica utilizando cableado bnc,
utilizo en los puestos windows 95 y en el servidor windows nt. Tengo una bd
en paradox en el servidor, y los puestos de la fabrica atacan mediante un
programa en delphi a la bd. Los equipos están funcionando 24 horas al día, o
sea que no paran.
El problema viene que cada cierto tiempo aleatorio, el programa se cuelga en
algún puesto, la solución consiste en reiniciar el equipo. Por lo que he
podido deducir el equipo cliente pierde la conexión con la bd (por alguna
razón la cual desconozco) y al intentar acceder a la bd no la encuentra con
lo que se bloquea.
¿Por qué se puede bloquear? ¿Cómo lo soluciono?

2 respuestas

Respuesta
1
La verdad es que según comentas en tu pregunta (no creo que se deba al cable) el problema se puede deber a varias cosas. Te digo lo que yo revisaría y probaría para no tener que reiniciar las máquinas a ver si alguna te sirve.
1.- Revisar la configuración del driver de Paradox en el BDE si es por este camino por el que se realiza la conexión de los clientes a la bd. Todos los clientes deben utilizar el mismo fichero pdoxusers.net ya que sino puede haber problemas de bloqueos. Es aconsejable la misma versión.
2.- Revisar la reindexación de las tablas Paradox si es que el software realiza esta acción. En ocasiones un cliente se queda bloqueado si intenta realizar una operación a una tabla en proceso de indexación.
3.- Revisar los permisos de cada máquina cliente en el servidor.
4.- Comprobar las conexiones (por ejemplo a través de ping) de cada máquina con el servidor. Si se pierde la conexión puede producirse un bloqueo en el caso de que no esté bien implementada la entrada y salida del cliente a la bd, ya que puede ocurrir que para esta el cliente siga conectado aunque en realidad no sea así.
Bueno, espero que alguna te sirva y soluciones el problema. Coméntame los resultados si no te importa. Si necesitas algo más no dudes en preguntar.
Gracias de antemano por responderme.
Los drivers del BDE son los que vienen con el delphi 5 no recuerdo la version, pero en todos los clientes, como en el servidor están instalados los mismos.
En relación a la indexación no realizo.
Dese cada pc cliente se puede acceder sin problemas a la unidad compartida donde se encuentra la bd.
Lo ultimo que me comentas, ¿cómo puede controlar o mejor dicho como puede saber el cliente que se ha desconectado?, porque creo que esta seria una posible solución.
La solución que tengo actualmente es una rutina que envía un ping cada por tiempo y si no recibe respuesta indica al programa que reinicie el windows. Con esta rutina me he dado cuenta que la conexión se piere más de lo que yo pensaba, pero aun así hay maquinas que no van.
Espero tu respuesta.
Un saludo
De nuevo asllamas. Ufff, ¿parece qué se resiste no?, a ver si lo conseguimos. En vista de que los BDE son la misma versión, están funcionando correctamente y que el fichero pdoxusers.net es el mismo para todos los clientes, que no realizas indexación y que las máquinas pierden conexión más veces de lo que pensabas, se me viene una cosa a la cabeza que me pasó y que me costó solucionar siendo lo más obvio y que a lo mejor también has pasado por alto. Lo que me sucedía era que de vez en cuando se me desconectaban los clientes del servidor sin motivo alguno y otras veces no podían entrar y tras muchas prueba (fallo mío de no comprobarlo antes) me dio por mirar los drivers de las tarjetas de red y observé que siendo algunos compatibles no eran los del hardware exacto que tenían instalado. Les puse sus drivers exactos y...¡Ningún problema desde entonces, todo como la seda!. Revísalo si no lo has hecho a ver que pasa.
Otra cosa que se me está ocurriendo mientras escribo es el componente que has usado para conectar con la bd. Yo utilizaba los TTable que vienen con delphi con el correspondiente DataBase y DataSource y la verdad es que me surgieron problemas. Utilizo uno que realizan una función de refresco cada vez que se hace una operación por lo que los posibles descuadres de tiempo se ven reducidos al máximo. Son (creo que se llaman así) TTableRefresh y TQueryRefresh y se utilizan de la misma forma que los anteriores.
Respecto a comprobar si está conectado o no (o si el servidor cree que lo está) se puede hacer de varias formas. La más sencilla que se me ocurre es la siguiente:
Tener un fichero (que puede estar tanto en el servidor como en el cliente) que será lo primero que revise el programa. Este fichero almacenará simplemente la opción "conectado" o "desconectado" que será escrita por la aplicación cada vez que entre o salga del servidor. De esta manera si la opción es "conectado" cuando se ejecuta la aplicación se realizaran las acciones oportunas antes de lanzar el programa, si la opción es "desconectado" se inicia normalmente.
Bueno.
He cambiado todos los drivers de las tarjetas de red por el ultimo que he encontrado en internet (son realtek a 10 mb/s).
En cuanto a los ttable yo también utilizo el ttablerefresh.
Ahora unicamente se ha colgado un pc pero este ha perdido la conexión a la red por completo.
Si se te ocurre algo, ya sabes, porque a mi ya no se me ocurre nada.
Un saludo
Según lo que me comentas tras instalar los drivers de las nic solo se queda colgado un pc, ¿no?. Yo también he utilizado Realtek y si te digo que estas tarjetas tienen problemas cuando no están sus drivers apropiados. Fíjate en el modelo de las realtek (no basta que los drivers sean realtek) y asegurate de que todos los pc tienen el correspondiente driver. Dime qué realtek tiene el pc que se queda colgado porque a lo mejor tengo los drivers que a mi me funcionaron perfectamente y te los mando.
Son todas, Genius 2500 III SE, voy a bajarme el driver de http://www.genius-kye.com/genius/download.html, están aquí los últimos drivers.
Según recuerdo antes tenia fallos con la red por no tener los últimos drivers de las tarjetas, me baje los drivers de realtek (no genius) y todo funciono bien a excepción del problema que sigo teniendo.
Espero a que me digas si estos son los buenos para ponerlos.
Un saludo
Si como me dices las nics son Genius 2500 III SE parece que los drivers de la página que me comentas son buenos. En el apartado Networking - LANcard hay un fichero con los drivers para tu tarjeta. Yo los instalaría a ver que tal. Asegúrate de que una vez que los instales sean perfectamente reconocido por los Windows. Lo de los drivers Realtek con los Genius que te ha pasado es normal, como te comenté existen muchos drivers que son compatibles pero creo que una vez instales los correctos el problema se solucionará ya que parece que es aquí donde se encuentra el problema. ¿Instálalos y comentame los resultados ok?. Suerte.
Gracias por tu respuesta, pero el problema no es exactamente lo que me comentas, al final después de muchas pruebas los he descubierto, y tiene que ver con el tipo de red, ya que es una ethernet 10Mb/s montada con una cable coaxial, el problema viene porque los tramos son muy largos, y hay momentos en el cual hay mucho trafico en la red y esta se satura dejando sin respuesta a algunos pcs con lo que el programa se bloquea, la solución que voy a poner en marcha es la de cambiar el cableado a una combinación de fibra óptica y ethernet 100Mb/s, con esto ya no habrá saturación, ya que en la red montada internamente en la oficina, nunca se cuelgan, ya que el tramo es corto y la red rápida.
Un saludo
Respuesta
No se como tendrás implementado el cliente, pero la forma de que este siempre conectado es incluir un componente TDatabase que apunte a tu base de datos, los TTable, TQuerys y demás deben a puntar a la BD generada por el TDatabase. Te lo digo porque el TDatabase tiene una propiedad que se llama Keep Alive que sirve para que el servidor de BD no te desconecte.
Gracias por tu respuesta, pero el problema no tiene nada que ver con lo que me comentas, al final después de muchas pruebas los he descubierto, y tiene que ver con el tipo de red, ya que es una ethernet 10Mb/s montada con una cable coaxial, el problema viene porque los tramos son muy largos, y hay momentos en el cual hay mucho trafico en la red y esta se satura dejando sin respuesta a algunos pcs con lo que el programa se bloquea, la solución que voy a poner en marcha es la de cambiar el cableado a una combinación de fibra óptica y ethernet 100Mb/s.
Un saludo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas