FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
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.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
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)?
|
#4
|
||||
|
||||
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:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
Hola, probablemente te ayude lo que comenta el autor en la siguiente nota: https://firebird21.wordpress.com/201...bird-con-wifi/
|
#6
|
||||
|
||||
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 |
#7
|
|||
|
|||
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 |
#8
|
||||
|
||||
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. |
#9
|
||||
|
||||
Diría que ese wifi no va muy fino.
No tiene nada que ver firebird.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#10
|
||||
|
||||
Hola LLD.
Cita:
Cita:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#11
|
||||
|
||||
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.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#12
|
||||
|
||||
Cita:
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" |
#13
|
||||
|
||||
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. |
#14
|
||||
|
||||
Cita:
De todas maneras para este caso el problema es la calidad de conexion...
__________________
El malabarista. |
#15
|
||||
|
||||
Cita:
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" |
#16
|
|||
|
|||
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 |
#17
|
||||
|
||||
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
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#18
|
||||
|
||||
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. |
#19
|
||||
|
||||
No hace falta reinventar la rueda. Con datasnap o mormot ya tenés todo lo necesario para una aplicación en capas
|
#20
|
||||
|
||||
Cita:
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. Por ejemplo, también.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
|
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 |
|