PDA

Ver la Versión Completa : Conexión a Interbase a través de internet


seldonito
23-09-2004, 11:51:07
Hola a todos.

Tengo una aplicación cliente/servidor que ataca a Firebird 1.5, esta compilada en delphi 6 y utiliza los componentes IBX.

Esta aplicación funciona perfectamente en red local, pero cuando accedo a ella desde internet va muy lenta. La dirección de la bd se la pongo como dir_ip:d:\prueba.fdb

He observado que una vez abre una consulta, bajarse los datos de ella va muy rápido. Esto es, si me traigo todas las facturas de un cliente, bajarse la primera puede tardar 5 segundos, pero a partir de ahi, el resto son casi inmediatas.

He hecho pruebas conectandome en remoto con IB Expert y he observado que traer los datos es muy rápido, pero preparar la query tarda una barbaridad.

¿¿ Puede alguien ayudarme ?? He estado mirando en el foro y no veo qué estoy haciendo mal.

MUCHAS GRACIAS. SOIS UNOS MÁQUINAS!!!!!!!!!

athlontado
23-09-2004, 19:30:36
Muy buenas.

Vamos a ver, Seldonito. El protocolo que usa IB/FB sobre TCP es muy pesado para usarlo con el ajustado ancho de banda que nos proporciona InterNET. Para solventar en cierta medida este problema, se usan los ClientDatasets (por poner un ejemplo), que cachean los datos que estás consultando en ese momento en la máquina cliente, evitando la necesidad de traer todos los datos de golpe.

Lo que hacen los componentes IBX y el IBExpert, es traer un conjunto de registros, si no todos, y después navegar a través de ellos desde la memoria del cliente; por eso da la impresión de que el primer registro tarda tanto y los siguientes son inmediatos.

En realidad no estás haciendo nada mal, simplemente, esa tecnología de acceso al servidor de BBDD no es la adecuada para el tipo de conexión con la que accedemos a InterNET en estos tiempos.

jgutti
23-09-2004, 21:57:36
simplemente, esa tecnología de acceso al servidor de BBDD no es la adecuada para el tipo de conexión con la que accedemos a InterNET en estos tiempos

¿Cual es la tecnologia adecuada para acceder al servidor de la bbdd para este tipo de conexion

AGAG4
23-09-2004, 22:30:44
Hay una que se llama Tecnología de 3 Capas en conclusión es el Cliente, el Servidor de Aplicaciones y el Servidor de Base de Datos, es lo que te intentan explicar, pero con la tecnología que actualmente estas usando podrías optar por los SCRIPT's, estos son Sentencias SQL que las puedes tener en un archivo de texto que a su vez pueden viajar en Internet y cacharlos en otra Base de datos que tendrá la tarea de levantar los ó el Script's para Actualizarla, estos Script's los puedes implementar con los IBX Versión 7.08 en donde tienen un componente llamado IbScript, la verdad esa es la Teóría que tengo actualmente del cual todavía no lo he implantado, pero también estoy investigando hacía una aplicacion de 3 capas, espero no te haya enredado, Que tengas buen día.

kalimero
24-09-2004, 13:15:14
Hola a todos.

Bueno en una ocasion trabaje con los FIBPlus que tiene una propiedad llamada 'cacheupdates' (me parece recordar) que optimizaba mucho,mucho el tráfico por internet. Estos componentes evitan lo que te comentaba en el post anterior el amigo Atholondao. Te recomiendo que heches un vistazo a los FIBPlus y te olvides de sus primos hermanos IBX, si es que vas a trabjar por Internet.

Saludos

AGAG4
24-09-2004, 16:36:36
Una pregunta que tan Limitados vienen los FIBPlus con la versión Trial????
Te hago esta pregunta porque me parecen que son de de PAGA.
Saludos.

kalimero
24-09-2004, 16:50:04
Hola.

Bueno no se como son en su version Trial. Yo trabaje con los que me proporcionó mi jefe y la verdad es que están muy bien.

Saludos

athlontado
24-09-2004, 18:05:22
Los FIBPlus son "cuajanudos", pero hay que pagar para usarlos en programas que vayamos a comercializar. Yo mismo uso en algunos de mis programas esos componentes, incluso en combinación con los gb_datasets de Spirin Sergey.

Lo que dice kalimero de usar los "cachedupdates" es una alternativa viable para este caso. Pero os comento que también se puede usar la combinación IBX+ClientDataSets (o lo que es lo mismo, la tecnología MIDAS), para hacer, más ó menos, lo mismo que la característica "CachedUpdates" de FIBPlus. La ventaja es que esos componentes ya vienen en Delphi 6 Profesional y superiores. Además, con los FIBPlus, viene un componente, FIBClientDataSet, que hace exactamente lo mismo que la tecnología MIDAS, comentada antes.

AGAG4
24-09-2004, 18:41:19
Gracias por sus comentarios Sr. Óscar Salvador Páez, los voy a tomar muy en cuenta, actualmente estoy investigando acerca de la Tecnología Midas y en verdad me sorprende lo que hace esta misma tiene muchisimas ventajas para una red Remota(Internet).
Saludos.

seldonito
25-09-2004, 19:07:56
Gracias a todos por vuestras respuestas.

Tenía la idea de que iba por el camino equivocado, asi que tampoco se pierde tanto.
Investigaré lo de Midas, y si averiguo algo os lo comunico.

Muchas gracias de nuevo.

Un saludo.

ronaldnuk
25-11-2006, 12:48:39
Bueno gracias ante todo por la informacion birndanda en este foro.
El punto es el siguiente quiero tener acceso ami base de datos en interbase q contenga ip dinamica esot y utilizando el servicio no-ip el chiste es q no tiene conexcion no se q solucion le pueda dar o nesesariamente tendria q tener una ip fija?.

vtdeleon
25-11-2006, 16:25:23
nesesariamente tendria q tener una ip fija?.No. Yo tengo mi maquina con el servicio de No-IP y he realizado inmesidad de pruebas con Firebird a la perfeccion. Pero hay que tener en cuenta que si el ip cambia en un determinado tiempo, el no-ip tardará varios minuntos en actualizar el ip actual, a menos que lo hagas manualmente.

Saludos

ronaldnuk
26-11-2006, 16:42:21
Bueno aun tengo problemas estoy utilizando intrebase 6.5 y estoy trabajando con los componentes IBX y mi conexion es la siguiente: ronaldnuk.no-ip.info:C:\Cetpro\CETPRO.GDB y me sale el siguiente error al hacer la conexion.
unable to complete network request to host "ronaldnuk.no-ip.info"
No se a podido establecer la conexion ya q el equipo de destino ha denegado activamente dicha conexion.
Bueno no se ne q estare fallando o es q abria q darle algun tipo de permiso y como lo aria esto?.

vtdeleon
26-11-2006, 19:52:23
Saludos

He dado ping a esa direccion y me ha arrojado TimeOut. Asegurate de tener permiso por el firewall.

Otro asunto, si resuelves lo anterior, es que si estas direccionando NO-IP al ip de tu router (Es Zyxel?), puede ser que no funcione. Algunos router tienen esa maña; no permiten conexion a la ip publica de donde estas conectado, otra maquina fuera de tu red SI podria conectarse.

Casimiro Notevi
26-11-2006, 20:44:43
Menos mal que no somos unos malos malosos, porque podríamos conectar a esa base de datos y "jugar" con ella :D

vtdeleon
26-11-2006, 21:56:42
Menos mal que no somos unos malos malosos, porque podríamos conectar a esa base de datos y "jugar" con ella :DSshhhhhhh:rolleyes:

xander
27-11-2006, 04:21:31
He hecho pruebas conectandome en remoto con IB Expert y he observado que traer los datos es muy rápido, pero preparar la query tarda una barbaridad.


Si llegas a poder preparar la query sin que se tarde tanto como dices y estés usando conexión directa...., por favor dime como demonios lo hiciste?????

Yo tengo ya bastante tiempo con ese problema y no doy como resolverlo. Es una de las razones por las que me urge que salga una versión de Firebird con soporte para las conexiones remotas (la versión 2.1 prometio estas mejoras) porque con la 1.5 tengo muchos problemas con la preparación de las consultas en Internet.

ronaldnuk
27-11-2006, 20:31:17
definitivamente es el firewall el chiste es como le doy el permiso. lo q hize fue en excepciones del firewall le agrege el programa no-ip duc y en el ambito le di la opcion de cualquier equipo ni asi le da el permiso corresponde no se le puede dar el ping q solucion le puedo dar a esto.

lbuelvas
27-11-2006, 21:12:50
Hola compañeros,

Entre a www.no-ip.com y cree una entrada para hacer unas pruebas de conexion en internet. Instale el servicio NO-IP DUC y desde el mismo equipo me pude conectar a una base de datos firebird.

Tengo una red de area local (con dos equipos) por una tarjeta de red y me conecto por cable modem banda ancha por la segunda tarjeta de red.

Utilizo el proxy FreeProxy http://www.handcraftedsoftware.org

El problema es que traté de conectarme desde otra maquina en mi misma red y no se pudo.

Alguna sugerencia.