Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-11-2015
LDD LDD is offline
Miembro
 
Registrado: ago 2003
Posts: 48
Poder: 0
LDD Va por buen camino
Firebird se degrada con WIFI segun distancia

Hola, mirad, tengo una aplicación desarrollada con Delphi 6 (ya tiene casi 15 años), revisada contínuamente, funciona de coña.
Actualmente la hemos instalado en tablets con Windows 8 y 10 conectandolos al servidor de la base de datos por WIFI (de las buenas).

Usamos Firebird 2.5 y muy bien, casi igual que en una conexión cableada, siempre y cuando no nos separemos más 10 metros del router.
A partir de cierta distancia el tiempo de respuesta es cada vez más lento hasta el absurdo. Estoy hablando de unos 10 metros (eso es muy poco).
El programa, el servidor y Firebird son los mismos que a dos metros del router pero el rendimiento cae muchísimo hasta hacer que el programa se bloquee (o lo parezca).

Vemos que el mayor tiempo de respuesta se da cuando el cliente envía transacciones al servidor (Insert, update, delete,...) Cuando se reciben datos del servidor, por muchos que sean, el tiempo es algo más lento que cerca pero aceptable, achacable a una mayor distancia pero aceptable.

¿Es posible que el cliente de firebird no gestione bien los paquetes de datos en un entorno más inestable, que se repitan esos paquetes,..?
La verdad es que estamos desesperados al no poder usar conexiones Wifi con Firebird desde un tablet (es una aplicación para restaurantes)

¿Alguien puede darnos alguna pista o ayudarnos a resolver o encontrar el problema?

Muchas gracias
Responder Con Cita
  #2  
Antiguo 10-11-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.264
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Aunque no es buena idea conectar por wifi, 10 metros parecen muy pocos, debe haber algún problema.
Quizás sería conveniente que los clientes se conecten a un servidor web y sea este último el que conecte a la base de datos.
A ver si algún compañero puede dar más luz para tu caso.
Responder Con Cita
  #3  
Antiguo 10-11-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 16
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Para terminar de descartar, que tal funciona la red a medida que se van alejando? la señal se mantiene siempre alta? Hay obstaculos entre el router y los "mas de 10 metros" (paredes por ej)?
Responder Con Cita
  #4  
Antiguo 10-11-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola LDD.

Coincido con Casimiro en que si se desea buen rendimiento, wireless no es la mejor opción y también tomaría en cuenta los comentarios de AgustinOrtu. A diez metros y con tres paredes por medio, no me extrañaría que tuvieran una degradación superior al 30%.

Te hago unas consultas mas:
  • ¿ La degradación se produce sólo en Firebird ?
  • ¿ Han echo pruebas de la performance de wireless ?
  • ¿ Que seguridad está establecida en el router ?
  • ¿ Probaron en los diferentes canales del router ? (por si hubiera interferencias)

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 10-11-2015
tmsanchez tmsanchez is offline
Miembro
 
Registrado: abr 2004
Ubicación: Mexico
Posts: 67
Poder: 21
tmsanchez Va por buen camino
Hola, probablemente te ayude lo que comenta el autor en la siguiente nota: https://firebird21.wordpress.com/201...bird-con-wifi/
Responder Con Cita
  #6  
Antiguo 10-11-2015
Avatar de Combat-F2D
Combat-F2D Combat-F2D is offline
Miembro
 
Registrado: may 2003
Ubicación: Toletum
Posts: 454
Poder: 22
Combat-F2D Va por buen camino
se que puede ser una tontería, pero en un restaurante, debido a la maquinaria empleada y demás sistemas, puede que se de la situación de gran QRM, es decir, ruido e interferencias a tope;
¿has probado a sacar la red a un entorno más limpio?, sería por descartar esto; no es broma
__________________
online
Responder Con Cita
  #7  
Antiguo 10-11-2015
LDD LDD is offline
Miembro
 
Registrado: ago 2003
Posts: 48
Poder: 0
LDD Va por buen camino
Gracias a tod@s, amplio el problema

Bueno gracias a todos, os amplío la situación :

- No es cuestión de si usar cable o wifi, no es opcional, HAY que usar WIFI, estamos hablando de tablets.
- Puede haber paredes o no, la cuestión es que a medida que nos separamos del rooter los paquetes se rompen más facilmente.
- Curiosamente la degradación sólo se da (o es mucho mayor) en operaciones sobre la base de datos de tipo Insert, Update, Delete; cuando hacemos SELECT el resultado es muy rápido, un poco más lento que si estamos junto al rooter pero muy aceptable.
- Gracias tmsanchez por el artículo enviado. Realmente funciona mejor si actualizo en el registro el valor de HKEY_LOCAL_MACHINE | System | CurrentControlSet | Services | Tcpip | parameters | TcpMaxDataRetransmissions y lo pongo a 1, pero entonces el programa peta en cuanto hay un paquete roto.
- Pensad que no hablo un único Insert sino de unos 30, uno tras otro.

Básicamente el problema parece que se da cuando los paquetes de datos que salen del cliente se "rompen" y este intenta enviarlos de nuevo (hasta 5 veces de acuerdo con la configuración Firebird.conf y de los valores de Registro), es como si se hiciera un lio de paquetes enviados y reenviados y se volviera muuuy lento hasta incluso bloquearse.

¿Hay una versión comercial de Firebird que gestione mejor esta situación?

Gracias por vuestro interés
Responder Con Cita
  #8  
Antiguo 10-11-2015
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.927
Poder: 26
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Tal vez el router haya que cambiarlo por uno mejor.

O usar un "rompemuros" o extendedor de señal.

10mts es algo "largo" para un router basico, en especial si hay interferencia en la señal/obstaculos.

Si hay muchos equipos conectados a la wifi, eso tambien aplica.

Puedes mirar si cambiando la frecuencia a 5hz (separando en 2 bandas las comunicaciones) te ayuda.

---

Todo estoy es muy vble. Uno de mis clientes se conecta a KILOMETROS por wifi usando extendedores de señal, y a veces uno no conecta en su casa . Asi que puede que necesiten consultar con un experto en redes...
---

Especulando porque los insert fallan mas que los select: Porque hay mas llamadas ("pequeñas") de red, mientras que el SELECT trae mas datos de una sola vez...
__________________
El malabarista.
Responder Con Cita
  #9  
Antiguo 10-11-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.264
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Diría que ese wifi no va muy fino.
No tiene nada que ver firebird.
Responder Con Cita
  #10  
Antiguo 10-11-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola LLD.

Cita:
Empezado por mamcx Ver Mensaje
Tal vez el router haya que cambiarlo por uno mejor.

O usar un "rompemuros" o extendedor de señal.

10mts es algo "largo" para un router basico, en especial si hay interferencia en la señal/obstaculos.
...
Coincido con lo que comenta mamcx. Y como mencionas que el problema sólo es debido a la distancia, hasta hacer tirar un cable desde el router hasta la habitación y poner un access point (o router neutro) puede ser una opción válida y muy económica.
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Diría que ese wifi no va muy fino.
No tiene nada que ver firebird.
Tengo una situación en que acceden a una bd Firebird desde unos 6 u 8 mts sin ningún tipo de problema, pero dada la diversidad de factores que pueden incidir en cada circunstancia, no lo daría como caso ejemplificador...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #11  
Antiguo 10-11-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.264
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Yo también puedo confirmar que funciona perfectamente a distancias mayores si la conexión es buena. Algunos de mis "viejos" clientes tienen instalaciones bastante grandes, pero con "repetidores" en puntos estratégicos para que llegue bien la señal.
Responder Con Cita
  #12  
Antiguo 10-11-2015
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 22
RONPABLO Va por buen camino
Cita:
Empezado por LDD Ver Mensaje
Bueno gracias a todos, os amplío la situación :

- No es cuestión de si usar cable o wifi, no es opcional, HAY que usar WIFI, estamos hablando de tablets.
- Puede haber paredes o no, la cuestión es que a medida que nos separamos del rooter los paquetes se rompen más facilmente.
- Curiosamente la degradación sólo se da (o es mucho mayor) en operaciones sobre la base de datos de tipo Insert, Update, Delete; cuando hacemos SELECT el resultado es muy rápido, un poco más lento que si estamos junto al rooter pero muy aceptable.
- Gracias tmsanchez por el artículo enviado. Realmente funciona mejor si actualizo en el registro el valor de HKEY_LOCAL_MACHINE | System | CurrentControlSet | Services | Tcpip | parameters | TcpMaxDataRetransmissions y lo pongo a 1, pero entonces el programa peta en cuanto hay un paquete roto.
- Pensad que no hablo un único Insert sino de unos 30, uno tras otro.

Básicamente el problema parece que se da cuando los paquetes de datos que salen del cliente se "rompen" y este intenta enviarlos de nuevo (hasta 5 veces de acuerdo con la configuración Firebird.conf y de los valores de Registro), es como si se hiciera un lio de paquetes enviados y reenviados y se volviera muuuy lento hasta incluso bloquearse.

¿Hay una versión comercial de Firebird que gestione mejor esta situación?

Gracias por vuestro interés

Uno puede trabajar de una forma un poco distinta, aunque genera más trabajo de entrada, a futuro es algo muy bueno:
Entonces en vez de que nuestra aplicación se entienda directamente con TDataSets (o sus equivalentes TIBDataSet), es conveniente tener por lo menos dos aplicaciones, una estilo servidor la cual va a ser la única que juegue con la base de datos y que se encargue de transformar los TDataSets posibles en clases, por ejemplo en vez de tratar con un dataset llamado DSPersonas, se tenga una clase llamada Personas, al crear un objeto de dicha clase se va a tener toda la información que se tienen en un registro del dataset, luego si necesito tener la información de varias personas las podré almacenar en un TList, ahora al tener tanto el TList de personas, o al objeto Persona los puedo serializar y convertir en una cadena de texto, la cual es más eficiente a la hora de tratar con ella en una red, estas cadenas de texto son con lo que seguiremos tratando en la otra aplicación, en la cliente, cuando pida información al servidor, esta no va a pedir un DSPersona, va a tratar con las cadenas de texto e internamente las va a desserializar y convertir en un objeto Persona, si se hace algún cambio ese objeto persona se serializar nuevamente, se envía a la aplicación servidor, este habla con la base de datos y guarda la información en la tabla personas...

Como digo, es muy largo de hacer de entrada, si ya se tiene mucho hecho se ve como algo muy malo, pero se va notando como mejora en velocidad y estabilidad de una forma fantástica.
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #13  
Antiguo 10-11-2015
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.609
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por LDD Ver Mensaje
¿Hay una versión comercial de Firebird que gestione mejor esta situación?
Firebird es igual de bueno para todo el mundo. No hay gente mañosa detrás con intereses mezquinos, como ocurre con otros motores de bases de datos free/open/express. La gente paga lo que puede o considera justo por el beneficio que obtiene.

Concuerdo con lo ya dicho, es un asunto de red y a lo mucho de configuración.
Responder Con Cita
  #14  
Antiguo 11-11-2015
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.927
Poder: 26
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por RONPABLO Ver Mensaje
Uno puede trabajar de una forma un poco distinta, aunque genera más trabajo de entrada, a futuro es algo muy bueno...
Mientras separa la BD/logica es bueno, el que sea o no datasets es tangencial. Un dataset tambien serializa a texto.

De todas maneras para este caso el problema es la calidad de conexion...
__________________
El malabarista.
Responder Con Cita
  #15  
Antiguo 11-11-2015
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 22
RONPABLO Va por buen camino
Cita:
Empezado por mamcx Ver Mensaje
Mientras separa la BD/logica es bueno, el que sea o no datasets es tangencial. Un dataset tambien serializa a texto.

De todas maneras para este caso el problema es la calidad de conexion...

Lo del dataSet lo digo porque además suele tener mucha información. Y si es de alguna paleta estilo IBX, y un largo Etc va a tener otras cosas que lo pueden complicar trabajar serializado, o desconectado, o que traiga aún más información que no se use, al crear uno la clase y serializarla suelo tener más control de que estoy enviando, y soy más consciente que tanta información estoy enviando, al final esto a mi me significo ahorros escandalosos en trafico de red.
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #16  
Antiguo 11-11-2015
LDD LDD is offline
Miembro
 
Registrado: ago 2003
Posts: 48
Poder: 0
LDD Va por buen camino
Gracias a todos

Gracias a tod@s,

La verdad es que la WIFI , el router .. son de los mejores, no es problema de calidad de hardware.
Tampoco debería ser problema de software ya que el mismo ha funcionado durante más de 15 años en entornos muy antiguos, eso sí NUNCA con WIFI.

Seguramente acabaremos aplicando la solución que ya ha comentado RONPABLO de trabajar las transacciones enviado los fatos por FTP o cualquier otro sistema y haciendo que las operaciones de escritura emn la base de datos las realice un segundo programa en el servidor o en otro cliente conectado por cable.

Mientras tanto estoy tratando de ver si Firebird 3.0 ha resuelto este problema, pero me doy de narices al tener ODS distintas, mi base de datos tiene la 11.2 y parece que Firebird 3.0 usa la 12.0, en fín ya os contaré.

Gracias de nuevo
Responder Con Cita
  #17  
Antiguo 11-11-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.264
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Como ha dicho antes otros compañeros y yo mismo, tenemos clientes trabajando por wifi con bastante más de 10 metros, sin problemas, con fb1.5, fb.2.1 y fb.2.5
Responder Con Cita
  #18  
Antiguo 11-11-2015
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.354
Poder: 19
Angel.Matilla Va por buen camino
La sugerencia de RONPABLO (es conveniente tener por lo menos dos aplicaciones, una estilo servidor la cual va a ser la única que juegue con la base de datos y que se encargue de transformar los TDataSets) es un buena idea. Donde yo trabajaba (en una entidad bancaria) el analista de microinformática para las aplicaciones en Oracle diseñó y desarrolló un sistema en el que los puestos enviaban "paquetes" de texto plano (SELECT, INSERT, etc.) a una aplicación en el servidor que era la que ejecutaba todo el tarbajo de BB.DD. y devolvía una ristra también en texto plano, con los pertinentes "caracteres de control" propios. Como era algo interno todos conocíamos que iba a devolvernos y como vendría estructurado. Por desgracia no dispongo de ese código.

Si recuerdo que cada una de las partes usaba dos puertos TCP. Por uno mandaba la orden y por el otro recibía la respuesta. Una vez afinado era un sistema altamente fiable y rápido. No era wifi pero por ponerte un ejemplo conectaba puestos de oficinas que distaban 400 y 500 Km. del servidor Oracle.

Y lo que te comentan del "ruído" no es ninguna tontería: en un negocio de hostelería hay muchas máquinas (cubiteras, registradoras, receptores de TV, etc.) que degradan la señal. La opción de poner repetidores no es descabellada.
Responder Con Cita
  #19  
Antiguo 11-11-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 16
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
No hace falta reinventar la rueda. Con datasnap o mormot ya tenés todo lo necesario para una aplicación en capas
Responder Con Cita
  #20  
Antiguo 11-11-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.264
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Angel.Matilla Ver Mensaje
La sugerencia de RONPABLO (es conveniente tener por lo menos dos aplicaciones, una estilo servidor la cual va a ser la única que juegue con la base de datos y que se encargue de transformar los TDataSets) es un buena idea. Donde yo trabajaba (en una entidad bancaria) el analista de microinformática para las aplicaciones en Oracle diseñó y desarrolló un sistema en el que los puestos enviaban "paquetes" de texto plano (SELECT, INSERT, etc.) a una aplicación en el servidor que era la que ejecutaba todo el tarbajo de BB.DD. y devolvía una ristra también en texto plano, con los pertinentes "caracteres de control" propios. Como era algo interno todos conocíamos que iba a devolvernos y como vendría estructurado. Por desgracia no dispongo de ese código.
Si recuerdo que cada una de las partes usaba dos puertos TCP. Por uno mandaba la orden y por el otro recibía la respuesta. Una vez afinado era un sistema altamente fiable y rápido. No era wifi pero por ponerte un ejemplo conectaba puestos de oficinas que distaban 400 y 500 Km. del servidor Oracle.
Y lo que te comentan del "ruído" no es ninguna tontería: en un negocio de hostelería hay muchas máquinas (cubiteras, registradoras, receptores de TV, etc.) que degradan la señal. La opción de poner repetidores no es descabellada.
Sin querer menospreciar, pero no tiene nada que ver una cosa con otra, Ángel, eran tecnologías distintas, cableadas (seguramente norma X.25). Hoy en día cualquier tecnología de las que usamos es mucho más segura, rápida, eficiente y fácil de usar.
Algunos de mis viejos clientes tienen conexiones directas sobre internet con las distintas sucursales, en tiempo real, con firebird y componentes IBX.
Otros conectan a un servidor web mediante wifi y es el servidor web el que conecta con el servidor de bases de datos firebird.

Cita:
Empezado por AgustinOrtu Ver Mensaje
No hace falta reinventar la rueda. Con datasnap o mormot ya tenés todo lo necesario para una aplicación en capas
Por ejemplo, también.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mando a Distancia sanluisme Varios 2 22-10-2012 20:22:13
FIrebird: Eliminar tablas segun un patron apicito Firebird e Interbase 7 02-02-2012 11:33:09
Comportamiento diferente segun conexión LAN o WIFI MON___ Redes 1 15-01-2008 00:12:50
Universidades a distancia DarKraZY Debates 5 07-05-2006 14:01:41
trabajo a distancia haron Debates 9 22-07-2004 06:34:42


La franja horaria es GMT +2. Ahora son las 19:54:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi