Domanda

Sto cercando informazioni sulla connettività del database (Firebird nel mio caso) con applicazioni Intraweb.

Devo in particolare conoscere le differenze coinvolte nell'uso del database sul TDataModule con la funzione LockDataModule o l'utilizzo del database sull'UnseSessionSUnit. Ad esempio, devo disporre del database totalmente se nessun utente utilizza il server e al massimo 30 utenti saranno connessi.

Potrei nel peggiore dei casi di connettermi ad un vecchio database Paradox e ho bisogno di una struttura che possa gestirlo (so che dovrò generare una cartella basata su WebApplication.Appid per gestire le sessioni). Al peggio...

Grazie in anticipo per qualsiasi informazione o link utili potresti fornirmi ^^

È stato utile?

Soluzione

Scenario 1: lasci "Connessioni di dati del pool" incontrollato nella procedura guidata per l'intrawebing

In questo scenario il mago crea a ServerController, un UserSession ma non a DataModule. Posiziona i componenti del database, della sessione e del set di dati su UserSession.

Ogni volta che un nuovo utente si collega al tuo sito Web una nuova istanza del UserSession viene creato e viene effettuata una connessione al database. Quando il ServerController.SessionTimeOut scade a causa dell'inattività dell'utente il UserSession viene distrutto e quella particolare connessione al database viene interrotta.

Per 30 utenti simultanei questo modello andrà probabilmente bene per te e dovrebbe garantire che tutte le connessioni del database verranno recisi quando il sito Web non è in uso.

Scenario 2 - tu dai un'occhiata "Collegamenti dati del pool" nella procedura guidata dell'applicazione Intraweb

Così come il ServerController e il UserSession Il mago creerà un vuoto DataModule. Posiziona i componenti del database, della sessione e del set di dati su DataModule.

Il ServerModule ha un TIWDataModulePool componente su di esso che ha PoolCount proprietà.

Quando l'applicazione inizia, crea PoolCount istanze del DataModule ognuno dei quali effettua una connessione al database. Poiché le tue pagine richiedono l'accesso al database, chiamano LockDataModule e UnlockDataModule per utilizzare temporaneamente uno dei DataModule istanze dalla piscina.

Quando l'applicazione chiude il DataModule Le istanze nel pool vengono distrutte e le loro connessioni al database sono chiuse.

Questo modello è appropriato quando si dispone di una connessione di database aperta per utente supererebbe le capacità del server di database. Per solo 30 utenti che si collegano a un database Firebird non credo che sarebbe necessario.

Altri suggerimenti

Potresti prendere in considerazione l'uso di un set di componenti come kbmmw di http://www.components4programmers.com/ L'ho usato per anni con le app desktop Ans ora con le app IW. Distribuisco le mie app come servizi e attualmente ho alcuni problemi che distribuiscono come ISAPI. KBMMW è adatto per un'app con molte connessioni in quanto offre un pool di connessioni ecc ... Ha molte funzionalità e vantaggi. Dai un'occhiata al sito da solo.

Uso la versione aziendale, anche se penso che la versione gratuita possa esserti utile.

Saluti!

-Lou

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top