| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mie 17 Oct, 2007 11:15 am Asunto: Instalaciones: ¿Qué hace falta? |
|
|
Vale. Mi primera aplicación "potente" con Firebird está preparada para iniciar las pruebas en real. Ahora me asalta una duda:
La aplicación va a correr en red con un servidor que se emplea como servidor de base de datos y servidor de internet para toda la red. Es obvio que en este servidor habrá que instalar Firebird completo para que atienda las peticiones de los puestos, pero ¿qué hay que instalar en cada puesto para que se entiendan entre ellos? Para efectuar la conexión a la base de datos ¿es suficiente con indicarle la vía de acceso al puesto de la red (p. ej.: \\Servidor\Base_datos)? _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mie 17 Oct, 2007 9:43 pm Asunto: |
|
|
En teoría así de sencillo debe ser, aún que por algunos motivos no documentados dentro del mismo programa de Firebird e Interbase, vas a notar que se conecta de una manera muy lenta tus transacciones las sentiras un poco variadas de tiempo.
Bien en base a una investigación realizada para establecer la manera correcta de hacer funcionar el Servidor o el Cliente de Firebird, me di cuenta que este maneja 2 puertos para la conexión.
1.- el puerto normal conocido tambien como gsc_port, siendo el 3050
2.- existe otro puerto que tambien se utiliza, pero cuando estas conectado en red, ni siquiera es pertercible por el desarrollador ni mucho menos por el usuario. esto indica que un segundo puerto se utiliza para las transacciones o en su caso para el manejo de eventos entre servidores y clientes Firebird.
para ello existe un archivo que en la referencia de Firebird, se denomina Firebird.conf, este archivo permite que "antes" que el servidor de Firebird se inicie puedan modificarse los parametros correspondientes para una "buena conexión" <- Nota al Final.
haciendo un poco de estudio al manejo de Firebird y en perpesctiva al archivo antes mencionado. estas fueron las conclusiones que me permiten modificar los parametros, el archivo en su mayoria esta lleno de comentarios y quitando lo que no interesa, estas son las opciones que deben modificarse.
| Código: | TempDirectories = c:\\WINDOWS\\Temp 500000000
DefaultDbCachePages = 10240
MaxUnflushedWrites=100
ConnectionTimeOut=35
GuardianOption=1
RemoteServicePort = xxxxx
RemoteAuxPort = xxxxx
TcpRemoteBufferSize = 16384
TcpNoNagle = 1
IpcMapSize= 8192
RemoteFileOpenAbility=0 |
Cada una de ellas, creo que no es mucho para describirlas a excepcion de las que empiezan con "Remote..."
| Código: | RemoteServicePort = xxxxx
RemoteAuxPort = xxxxx |
Estas dos opciones son las que permiten espesificar los puertos de conexión por los cuales Firebird debe conectarse en Red o Internet
Los datos por default son los siguientes
| Cita: | | RemoteServicePort = 3050 |
Este puerto es el conocido de conexion por firebird establecido por default para realizar la compatibilidad con Interbase.
Este puerto RemotAuxPort, es el puerto "estrella" si dejamos la conexion con el "cero" el sistema de Firebird toma cualquier puerto al azar y esto hace que las conexiones sean completamente lentas, pues en cada una de las estaciones será un puerto diferente.
Por ello es recomendable que estos dos puertos sean modificados a nuestra entera satisfaccion para asegurar que nuestro servidor y nuestros clientes se conectan en el mismo puerto de comunicacion.
| Cita: | RemoteServicePort = 64103
RemoteAuxPort = 64104 |
como ejemplo podemos ponerlos en los puertos arriba del 64 mil
ahora bien, para determinar esta operacion he dejado por el foro alguna que otra función. pero por si no la encuentras te paso un enlace
que bien puede servirte ( click aqui )
si necesitas mas información, estamos en contacto.
Saludos.
Nota de buena conexion: para agilizar la información puedes ayudarte del programa Zebedee que hace un "tunneling" entre aplicaciones acelerando de manera drástica la transferencia de informacion y mucho mas en casos de bases de datos remotas, Mex -> Arizona, distancia de 15 mil Kilometros base de datos conectada en 4.3 segundos, sin el Tunneling genera en 1 minuto con 30 segundos. _________________
 |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mie 26 Ago, 2009 11:07 am Asunto: |
|
|
Bueno. Tras muchas idas y venidas parece que por fin el mes que viene se pone en marcha esta primera aplicación en Firebird.
He estado viendo el mensaje de César, pero al comprobar en mi equipo el fichero que cita (Firebird.conf) me he encontrado que todas las líneas del mismo vienen comentadas; supongo que se deberá a que mi instalación no es una red. Todo el fichero ( 22 Kb) es de este estilo:
| Cita: | #######################################
#
# Firebird configuration file
#
# Comments
# --------
# The # character is used for comments and can be placed anywhere on a
# line. Anything following the # character on a line is considered a
# comment.
#
# Examples:
#
# # This is a comment
# DefaultDbCachePages = 2048 # This is an end-of-line comment
#
# Entries
# -------
# The default value for each entry is listed to the right of the "=".
# To activate an entry, remove the leading "#"s and supply the desired
# value.
#
# Please note, a number of the values are specified in **Bytes** (Not KB).
# Accordingly, we have provided some simple conversion tables at the bottom
# of this file.
#
# There are three types of configuration values: integer, boolean and string.
#
# Integer
# --------
# Integers is what they sound like, an integral value. Examples:
# 1
# 42
# 4711
#
# Boolean
# -------
# Boolean is expressed as integer values with 0 (zero) being "false" and
# non-zero is taken to mean "true". For consistency we recommend you
# only use 0/1.
#
# String
# ------
# Strings are also what they sound like, strings. Examples:
# RootDirectory = /opt/firebird
# RemotePipeName = pipe47
#
#
# Portions of this file have been reproduced/made available with the
# permission of Ann Harrison @ IBPhoenix.
#
####################################### |
De todas formas, no acabo de comprender demasiado bien que tengo que hacer para que la aplicación corra en red. Entiendo que el motor completo ha de instalarse en el servidor, pero no acabo de comprender que es lo que tiene que ir en cada puesto para que funcione adecuadamente. ¿Puede alguno darme una dirección o facilitarme documentación que lo explique? _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Vie 28 Ago, 2009 5:33 pm Asunto: |
|
|
En palabras resumidas, pues esto es muy sencillo debes hacer lo siguiente.
Tanto en la maquina Servidor como en las Estaciones, debes instalar Firebird eso es claro (la opcion super-server es buena idea), en cada una de las estaciones, debes abrir el puerto por el cual te conectas y el puerto auxiliar (remoteport), en relativa, el archivo Firebird.conf debería tener como minimo las siguientes 2 lineas tanto como para el servidor como para las estaciones.
| Código: | TempDirectories = c:\\WINDOWS\\Temp 500000000
RemoteServicePort = 3050
RemoteAuxPort = 3051 |
-La primera línea es para indicar que se use el directorio temp de windows como el cache de transacciones.
-La segunda linea indica el parametro por default que usa firebird, para conectarse con las estaciones y servidor, y vizceversa.
-la tercera linea es el puerto auxiliar para las transacciones.
con estas 3 lineas es mas que suficiente para que puedas conectarte al servidor, sigiendo la idea de que tu base de datos se encuentra en la unidad D: de tu servidor y la direccion IP del mismo es 172.16.0.1, la cadena de conexion de tus estaciones es
| Código: | 172.16.0.1:3050:D:\\base\\angel.fdb |
y descomponiendo tu cadena esto es asi
172.16.0.1: <-- Ip del Servidor
3050: <--Puerto de conexion
D:\\base\\angel.fdb <-- Ruta de la base
Espero te de una idea y puedas realizar la conexión de tus clientes a la base de datos, despues de modificar el archivo conf. debes reiniciar el servidor de Firebrid.
Saludos
PD: recuerda abrir los puertos tanto en el firewall de windows, como en el que usas, en este caso el 3050 y el 3051 ya que asi los has definido en tu configuración de Firebird. _________________
 |
|
| Volver arriba |
|
 |
SumSum Lt JG


Registrado: 06 Oct 2002Mensajes: 52
|
Publicado: Vie 28 Ago, 2009 9:38 pm Asunto: |
|
|
Efectivamente del archivo firebird.conf viene con todo comentarios porque son los valores por defecto con los que se instala.
Asi cualquier cosa que necesites cambiar como bien te sugiere Cesar le quitas la marca de comentario y lo editas.
Tambien está muy bien el programa gratuito de FirebirdConf http://jhonny.clubdelphi.com/firebirdconfig-english/ por si necesitas probar varias configuraciones.
Yo por ejemplo he tenido que cambiar varias veces los parámetros hasta dar con la configuración adecuada y optimizar los recursos. Actualmente trabajo con Classic Server ya que acceden 25 usuarios simultaneamente mas 3 por Terminal Server y he logrado agilizar bastante más las transacciones que con SuperServer.
Así si donde instales el servidor tiene una memoria RAM elevada 1Gb por ejemplo puedes incrementar el parámetro DefaultDbCache si trabajas con SuperServer y verás que mejora notas.
Ahora bien Cesar me ha contestado a una pregunta que me estaba dando vueltas y es que el firebird.conf hay que tocarlo no solo en el servidor si no en el cliente. Asi que he dado también con una parte de mi problema y es sobre el segundo puerto que no conseguía que se abriera.
Un saludo. _________________ Asun |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
drkirocorp Ens


Registrado: 28 Abr 2006Mensajes: 29Ubicación: Comitan de Dominguez, Chiapas
|
Publicado: Mar 15 Dic, 2009 11:28 am Asunto: |
|
|
hola Angel, mira apenas un par de días instale windows XP con SP3 y sin ponerle otra cosa que el exe de mi aplicación y la librería fbclient.dll o gds32.dll funciono, te menciono que la librería esta en la carpeta del exe, y si mas no recuerdo, si no tienes SP3 de windows, tienes que agregar unas librerías de Visual c++ runtime o algo así. _________________ Dr. Kiro - Corp®
Toda la magia en solo dos numero... 1 0... |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
Tor Master


Registrado: 22 Mar 2005Mensajes: 269Ubicación: obera, misiones, argentina
|
Publicado: Dom 20 Dic, 2009 5:40 pm Asunto: |
|
|
Hola Angel estoy deacuerdo con drkirocorp en las maquinas clientes solo hace falta esos archivos, nada mas.
saludos tor _________________ Un experto es aquel que ya ha cometido todos los errores posibles en una materia muy concreta.
(Niels Bohr) |
|
| Volver arriba |
|
 |
|