Pregunta

Estoy buscando información sobre la conectividad de la base de datos (Firebird en mi caso) con aplicaciones Intraweb.

Especialmente necesito saber la diferencia (s) involucrada en el uso de la base de datos en el TDATAmodule con la función LockDatamodule, o el uso de la base de datos en UserSessionUnt. Por ejemplo, necesito que la base de datos sea totalmente desconectada si no usan usuarios utilizando el servidor, y como máximo 30 usuarios estarán conectados.

En el peor de los casos, puede tener que conectarme a una antigua base de datos de paradoja y necesito una estructura que pueda manejar eso (sé que tendré que generar una carpeta basada en la aplicación web.appid para manejar las sesiones). Lo peor...

Gracias de antemano por cualquier información o enlaces útiles que pueda proporcionarme ^^

¿Fue útil?

Solución

Escenario 1 - Deja "conexiones de datos de grupo" desenfrenado En el asistente de aplicación Intraweb

En este escenario, el mago crea un ServerController, a UserSession Pero no un DataModule. Coloca su base de datos, sesión y componentes del conjunto de datos en el UserSession.

Cada vez que un nuevo usuario se conecta a su sitio web una nueva instancia del UserSession se crea y se realiza una conexión a la base de datos. Cuando el ServerController.SessionTimeOut expira debido a la inactividad del usuario de la UserSession se destruye y esa conexión particular con la base de datos se corta.

Para 30 usuarios concurrentes, este modelo probablemente estará bien para usted y debería garantizar que todas las conexiones de la base de datos se separarán cuando el sitio web no esté en uso.

Escenario 2 - Tú controlar "Conexiones de datos de grupo" en el asistente de aplicación Intraweb

Así como el ServerController y el UserSession El asistente creará un vacío DataModule. Coloca su base de datos, sesión y componentes del conjunto de datos en el DataModule.

los ServerModule tiene un TIWDataModulePool componente que tiene PoolCount propiedad.

Cuando se inicia su aplicación, se crea PoolCount instancias del DataModule cada uno de los cuales hace una conexión a la base de datos. Como sus páginas requieren acceso a la base de datos, llaman LockDataModule y UnlockDataModule para utilizar temporalmente uno de los DataModule instancias de la piscina.

Cuando su aplicación cierra el DataModule Las instancias en la piscina se destruyen y sus conexiones con la base de datos están cerradas.

Este modelo es apropiado cuando tiene una conexión de base de datos abierta por usuario excedería las capacidades de su servidor de base de datos. Para solo 30 usuarios que se conectan a una base de datos de Firebird, no creo que sea necesaria.

Otros consejos

Es posible que desee considerar usar un componente establecido como KBMMW por http://www.components4programmers.com/ He usado esto durante años con aplicaciones de escritorio ahora con aplicaciones IW. Implento mis aplicaciones como servicios y actualmente tengo algunos problemas que se implementan como un ISAPI. KBMMW es muy adecuado para una aplicación con muchas conexiones, ya que ofrece agrupación de conexión, etc. tiene muchas características y beneficios. Echa un vistazo al sitio por ti mismo.

Utilizo la versión empresarial, aunque creo que la versión gratuita puede ser útil para usted.

¡Salud!

-Lou

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top