Datasnap.DataBkr.RegisterPooled

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

procedure RegisterPooled(const ClassID: string; Max, Timeout: Integer; Singleton: Boolean = False);

C++

extern DELPHI_PACKAGE void __fastcall RegisterPooled(const System::UnicodeString ClassID, int Max, int Timeout, bool Singleton = false);

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
procedure
function
public
Datasnap.DataBkr.pas
Datasnap.DataBkr.hpp
Datasnap.DataBkr Datasnap.DataBkr

Beschreibung

Registriert ein Remote-Datenmodul, damit für Instanzen das Pooling verwendet werden kann.

Um in Delphi-Anwendungen das Pooling von Remote-Datenmodulen zu ermöglichen, rufen Sie RegisterPooled in der Methode UpdateRegistry einer Remote-Datenmodulklasse aus. Wenn für Datenmodulinstanzen das Pooling verwendet wird, unterhält der Server einen Zwischenspeicher mit den Datenmodulinstanzen. Jede Client-Anforderung wird von der ersten verfügbaren Instanz aus diesem Zwischenspeicher bedient. Da die Instanzen gemeinsam genutzt werden, stehen dem Remote-Datenmodul keine zuverlässigen persistenten Statusinformationen zur Verfügung.

ClassID ist die Klassen-ID des Remote-Datenmoduls. Dieser Wert wird als ein Parameter an die Methode UpdateRegistry übergeben, die RegisterPooled aufruft.

Max legt die Maximalanzahl der Instanzen für das Pooling fest. Wenn Client-Anwendungen mehr Instanzen als diese Maximalanzahl anfordern, löst der Anwendungsserver die Exception "Server too busy" aus.

Timeout gibt die Anzahl der Minuten an, die eine Remote-Datenmodulinstanz im Ruhezustand im Objekt-Pool verbleiben kann. Wenn eine Instanz über diesen Zeitraum hinaus keine Client-Anforderung empfängt, wird sie automatisch freigegeben. Der Server überprüft alle sechs Minuten die Instanzen, so dass ein Objekt bis zu sechs Minuten länger als in Timeout angegeben im Ruhezustand bleiben kann. Ein Wert von 0 für Timeout gibt an, dass keine Zeitbegrenzung festgesetzt ist (d.h., nicht-verwendete Objekte werden erst freigegeben, wenn der Anwendungsserver beendet wird).

Singleton gibt an, dass alle Client-Aufrufe an dieselbe Remote-Datenmodulinstanz geleitet werden. Es gibt nur eine einzelne Instanz anstelle eines Pools verfügbarer Instanzen. Singleton solte nur auf true gesetzt werden, wenn das Remote-Datenmodul das freie Threading verwendet.

Anmerkung:  Wenn Singleton true ist, werden die Werte von Max und Timeout ignoriert, weil nur eine Instanz ohne Zeitbegrenzung vorhanden ist.

Siehe auch