Visual Foxpro no responde en aplicación cliente/servidor.

Buenas tardes.
Acudo a uds. Para var si solucionamos este tema.
Tengo 8 maquinas algunas con Win Vista otras con Win XP, todas conectadas a un server con Win Server 2003.

La aplicación .EXE la tengo en el servidor junto con los datos.

El desarrollo es en VFP8.

Ejecuto el sistema en las terminales y suele suceder que el sistema deja de responder en algunas pantallas en las cuales tengo muchas tablas en el Entorno de Datos, sobre todo en las pantallas que tengo Win Vista o Win 7... Luego tira errores como: "imposible leer h:\sistema\datos\bdd_principal" (h: es el disco mapeado en el server).

En otras redes mas pequeñas en las cuales no tengo Win Server 2003, el sistema funciona perfectamente, no se "cuelga" nunca, ni con Win 7, Vista, XP, etc.

Una pregunta mas: Es recomendable tener copiada la aplicación .EXE en cada terminal haciendo uso de los datos en el server, o sigo usando la aplicación en el server y que las terminales hagan uso de ella?

Muchas Gracias.

1 respuesta

Respuesta
1

Como sabrás en la actualidad existe la filsofia MVC, para el desarrollo de aplicaciones, esto es, separ una capa de datos, otra de las reglas del negocio y la otra la presentación, que en nuestro caso vendrían a ser :

1 La base de datos,

2 código y las validaciones, almacendas en un prgs vistas o clases absstractas definidas por nosotros,

3 las ventanas formularios y clases visuales

Mientras mas separadas e independientes mantengamos estas capas mas portable sera nuestra aplicación

Lo que estás haciendo es correr varias instancias de una misma aplicación simultáneamente por lo que las tablas en memoria son cargadas una y otra vez, cada que el suaurio carga un formulario u otro.

Para tu caso, recomiendo que tanto el ejecutable y las dlls, así como cualquier archivo de configuración lo distribuyas en cada terminal. Esto te permitirá :

1) Personalizar la aplicación por usuario o terminal, por ejemplo si a un usuario el gusta el personalizar el titulo o caption de la aplicación, puede confirguarlo a su gusto sin alterar el el de los otros usuarios, por ejemplo (Se puede incluir una archivo de texto de que contenga una constante #define MI_TITULO "Esta es mi aplicación" ) luego almmoento de cargar la aplicación esta variable solo funcionara para e usuario que corre la aplicación en su temrinal. Estee solo un ejemplo se pueden hacer mas cosas personalizables

2) Distribuir el uso de memoria en cada teminal. VFP cada que invoca una tabla, copia parte de ella en memoria para mostrarla, si la tabla tiene 100 0000 registros, no los carga todos, carga lo necesario según el suuario efectúe la consulta, así interbamente va usando, ahorrando y reciclando memoria, imagina todo este trabajo que le toca hacer, y tu al centralizar el EWXE, le estas sobrecargadnso de trabajo.

Finalmente para optimizar aun mas esto, al distriburi el EXE en cada terminal, usa la tenoclogia del BUFFER DE DATOS, que es una maravilla queb tiene VFP, economiza memoria, resuelve los proeblams de bloqueos de tablas y registros y te facilita u montón, al momento de revertior los cambios antes de escroibir en disco, etc wetc, etc.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas