Frage

Ich suche nach Informationen zur Datenbankkonnektivität (Firebird in meinem Fall) mit Intraweb -Anwendungen.

Ich muss insbesondere die Unterschiede kennen, die an der Verwendung der Datenbank im TDatamodule mit der LockDatamodule -Funktion oder der Datenbank auf der BenutzerSessionUnit beteiligt sind. Zum Beispiel muss die Datenbank vollständig getrennt werden, wenn keine Benutzer den Server verwenden, und höchstens 30 Benutzer werden verbunden.

Ich kann im schlimmsten Fall eine Verbindung zu einer alten Paradox -Datenbank herstellen, und ich benötige eine Struktur, die dies bewältigen könnte (ich weiß, dass ich einen Ordner basierend auf Webapplication.appid generieren muss, um Sitzungen zu verarbeiten). Schlimmstenfalls...

Vielen Dank im Voraus für alle Informationen oder nützlichen Links, die Sie mir zur Verfügung stellen können ^^

War es hilfreich?

Lösung

Szenario 1 - Sie hinterlassen "Pooldatenanschlüsse" deaktiviert im Intraweb -Anwendungsassistenten

In diesem Szenario schafft der Zauberer a ServerController, a UserSession aber nicht a DataModule. Sie platzieren Ihre Datenbank-, Sitzungs- und Datensatzkomponenten auf der UserSession.

Immer wenn ein neuer Benutzer eine neue Instanz der Website herstellt UserSession wird erstellt und eine Verbindung zur Datenbank erstellt. Wenn der ServerController.SessionTimeOut läuft aufgrund der Inaktivität der Benutzer aus UserSession wird zerstört und diese bestimmte Verbindung zur Datenbank wird abgetrennt.

Bei 30 gleichzeitigen Benutzern wird dieses Modell wahrscheinlich für Sie in Ordnung sein und sicherstellen, dass alle Datenbankverbindungen bei der Nutzung der Website abgetrennt werden.

Szenario 2 - Sie überprüfen "Pooldatenverbindungen" im Intraweb -Anwendungsassistenten

Ebenso wie ServerController und die UserSession Der Assistent erzeugt eine leere DataModule. Sie platzieren Ihre Datenbank-, Sitzungs- und Datensatzkomponenten auf der DataModule.

Das ServerModule hat ein TIWDataModulePool Komponente darauf, die hat PoolCount Eigentum.

Wenn Ihre Bewerbung startet PoolCount Beispiele der DataModule Jedes davon stellt eine Verbindung zur Datenbank her. Da Ihre Seiten Datenbankzugriff erfordern, rufen sie auf LockDataModule und UnlockDataModule vorübergehend von einem der zu verwenden DataModule Instanzen aus dem Pool.

Wenn Ihre Bewerbung die schließt DataModule Instanzen im Pool werden zerstört und ihre Verbindungen zur Datenbank geschlossen.

Dieses Modell ist geeignet, wenn eine offene Datenbankverbindung pro Benutzer die Funktionen Ihres Datenbankservers überschreiten würde. Für nur 30 Benutzer, die sich mit einer Firebird -Datenbank verbinden, glaube ich nicht, dass dies erforderlich wäre.

Andere Tipps

Möglicherweise möchten Sie einen Komponentensatz wie KBMMW von in Betracht ziehen http://www.comPonents4programmers.com/ Ich habe das seit Jahren mit Desktop -Apps und jetzt mit IW -Apps verwendet. Ich stelle meine Apps als Dienste bereit und habe derzeit einige Probleme, die als ISAPI bereitgestellt werden. KBMMW eignet sich gut für eine App mit vielen Verbindungen, da sie Verbindungsbeschäftigung usw. bietet. Es bietet viele Funktionen und Vorteile. Schauen Sie sich Site selbst an.

Ich verwende die Enterprise -Version, obwohl die kostenlose Version für Sie nützlich ist.

Prost!

-Lou

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top