Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Instalaciones: ¿Qué hace falta?

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Instalaciones: ¿Qué hace falta? Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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.

Cita:
RemoteAuxPort = 0

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.
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

César: Como siempre. Es increíble la cantidad de cosas que llegas a saber. Seguimos en contacto.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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.
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

César C. Salazar González escribió:
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

¿En todas las máquinas el gestor completo? No importa pero me sorprende.
SumSum escribió:
Tambien está muy bien el programa gratuito de FirebirdConf http://jhonny.clubdelphi.com/firebirdconfig-english/ por si necesitas probar varias configuraciones.

Lo probaré. Por cierto hay versión en español en http://jhonny.clubdelphi.com/archivos/es.zip
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Gracias por la información, drkirocorp. La tendré en cuenta, lo que pasa es que el encargo se ha quedado un poco "congelado"... ¡Cuestión económica del cliente! Sad
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.