TRemoteDataModule konfigurieren

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Datenmodul einrichten


Wählen Sie Datei > Neu > Weitere und anschließend in der Registerkarte Multi-Tier des Dialogfeldes Objektgalerie Externes Datenmodul, um eine TRemoteDataModule-Komponente in die Anwendung einzufügen. Der Experte für externes Datenmodul wird gestartet.

Sie müssen einen Klassennamen für das Remote-Datenmodul angeben. Dabei handelt es sich um den Basisnamen eines Nachkommen von TRemoteDataModule, der in der Anwendung erstellt wird. Dieser Name dient auch als Basisname für das Interface für diese Klasse. Wenn Sie beispielsweise den Klassennamen MyDataServer angeben, erzeugt der Experte eine neue Unit, die TMyDataServer als Nachkommen von TRemoteDataModule deklariert. In diesem Nachkommen wird die Schnittstelle IMyDataServer (als Nachkomme von IAppServer) implementiert.

Hinweis: Sie können eigene Eigenschaften und Methoden in die neue Schnittstelle einfügen. Weitere Informationen hierzu finden Sie unter Schnittstelle des Anwendungsservers erweitern.

Sie müssen im Experten für Remote-Datenmodule auch das Threading-Modell angeben. Zur Auswahl stehen die Optionen Einfach, Apartment, Frei oder Beides.

  • Wenn Sie Einfach wählen, stellt COM sicher, dass zu einem bestimmten Zeitpunkt immer nur eine Client-Anforderung verarbeitet wird. Sie müssen also keine Verwaltung für gleichzeitig bearbeitete Client-Anforderungen implementieren.
  • Bei Wahl von Apartment wird durch COM sichergestellt, dass jede Instanz des Remote-Datenmoduls zu einem bestimmten Zeitpunkt nur jeweils eine Client-Anforderung verarbeitet. Beim Schreiben des Quellcodes für eine mit der Option Apartment erstellte Bibliothek müssen Sie Thread-Konflikte vermeiden, die durch den Einsatz globaler Variablen oder Objekte verursacht werden, die sich nicht im Remote-Datenmodul befinden. Bei Verwendung von BDE-konformen Datenmengen sollte immer das Apartment-Modell eingesetzt werden. (Zur Verwaltung von Threads für BDE-konforme Datenmengen wird außerdem eine Sitzungskomponente benötigt, deren Eigenschaft AutoSessionName den Wert True hat.)
  • Verwenden Sie Frei, kann die Anwendung gleichzeitige Client-Anforderungen durch mehrere Threads verarbeiten. In diesem Fall sind Sie für die Verhinderung von Thread-Konflikten verantwortlich. Da mehrere Clients gleichzeitig auf das Remote-Datenmodul zugreifen, müssen die Instanzdaten (Eigenschaften, enthaltene Objekte usw.) und die globalen Variablen geschützt werden. Dieses Modell sollte bei Verwendung von ADO-Datenmengen eingesetzt werden.
  • Bei Auswahl von Beides bearbeitet die Bibliothek Client-Anforderungen auf die gleiche Weise wie mit der Option Frei. Es gibt jedoch eine Ausnahme: alle Callbacks (Aufrufe an die Client-Schnittstelle) werden automatisch sequenziell durchgeführt.
  • Verwenden Sie Neutral, kann das Remote-Datenmodul (wie bei der Option Frei) in verschiedenen Threads gleichzeitig Aufrufe empfangen, jedoch garantiert COM, dass nicht mehrere Threads gleichzeitig dieselbe Methode aufrufen.

Wenn Sie eine .EXE-Datei erstellen, müssen Sie zudem angeben, wie die Instanzenbildung erfolgen soll. Sie können Einfache Instanz oder Mehrfache Instanz wählen. (Die Option Intern kann nur verwendet werden, wenn der Client-Quellcode in demselben Prozessadressraum ausgeführt wird.)

  • Verwenden Sie Einfache Instanz, startet jede Client-Verbindung eine eigene Instanz der ausführbaren Datei. Dieser Prozess initiiert eine einzelne Instanz des Remote-Datenmoduls für die betreffende Client-Verbindung.
  • Verwenden Sie Mehrfache Instanz, instantiiert eine einzelne Instanz der Anwendung (Prozess) alle Remote-Datenmodule, die für Clients erstellt werden. Zwar wird jedes externe Datenmodul einer einzigen Client-Verbindung zugeordnet, aber alle Module nutzen denselben Prozessraum.

Siehe auch