Eigenschaft LifeCycle der Serverklasse
Nach oben zu DataSnap-Server-Anwendung
Inhaltsverzeichnis
Eigenschaft LifeCycle der Serverklasse
Die Eigenschaft LifeCycle der Metaklasse TDSServerClass bestimmt, in welchen Situationen neue Instanzen der Servermethodenklasse erstellt und wann vorhandene Instanzen wiederverwendet oder freigegeben werden.
Typen der Eigenschaft LifeCycle
Die Optionen dieser Eigenschaft sind Server, Session und Invocation. Im Allgemeinen können diese Optionen folgendermaßen interpretiert werden:
- Server: Pro ausgeführtem Server wird eine Instanz erstellt (Singelton).
- Session: Pro aktiver Client-Verbindung wird eine Instanz erstellt.
- Invocation: Für jeden Aufruf aus einem Client wird eine neue Instanz erstellt (statuslos).
REST-Clients
Wenn für eine REST-Client-Verbindung die Option Session von LifeCycle für die Serverklasse verwendet wird, verhält sie sich wie die Option Invocation von LifeCycle.
Verlust der Verbindung
Wenn ein Client plötzlich die Verbindung (Nicht-REST-Verbindungen) verliert, dann wird das Ereignis OnDisconnect nicht standardmäßig ausgelöst. Und zwar deshalb, weil der Socket geöffnet bleibt, bis eine E/A-Operation versucht wird und fehlschlägt. Ist die LifeCycle-Eigenschaft Session, dann wird die Serverklasseninstanz erst beim Stoppen des Servers freigegeben. Ist die LifeCycle-Eigenschaft auf Invocation gesetzt und die Verbindung geht während eines Aufrufs verloren (bevor die Antwort an den Client gesendet wurde), dann wird die Serverklasse wiederum erst freigegeben, wenn der Server angehalten wird.
Wenn jedoch Ihr BS auf Basis seiner Konfiguration für die Verwendung von Keep-Alive-Paketen für alle TCP/IP-Verbindungen konfiguriert ist, können Sie dieses Verhalten mit den Methoden EnableKeepAlive und DisableKeepAlive steuern. Weitere Einzelheiten finden Sie unter Überwachen und Steuern von DataSnap-TCP/IP-Verbindungen - Ermitteln von abrupten Verbindungsbeendigungen.
Hinweis: Weitere Informationen zu der Eigenschaft LifeCycle der Serverklasse finden Sie auf der Webseite Delphi Labs in dem zweiten Teil der Delphi Labs Videos von Paweł Głowacki.