Datasnap.DataBkr.RegisterPooled

De RAD Studio API Documentation
Aller à : navigation, rechercher

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);

Propriétés

Type Visibilité  Source Unité  Parent
procedure
function
public
Datasnap.DataBkr.pas
Datasnap.DataBkr.hpp
Datasnap.DataBkr Datasnap.DataBkr

Description

Enregistre un module de données distant dont les instances sont regroupées.

Dans les applications Delphi, pour avoir des instances de module de données distant regroupées, il faut appeler RegisterPooled à partir de la méthode UpdateRegistry d'une classe de module de données distant. Quand les instances de module de données distant sont mises en commun, le serveur gère un cache des instances de module de données distant. Chaque demande d'un client est traitée par la première instance disponible dans ce cache. Comme les instances sont partagées, le module de données distant ne peut dépendre de l'utilisation d'informations d'état persistantes.

ClassID est l'ID de classe du module de données distant. Cette valeur est passée en paramètre à la méthode UpdateRegistry qui appelle RegisterPooled.

Max indique le nombre maximal d'instances qui peuvent être regroupées. Si les applications client effectuent des requêtes nécessitant un nombre supérieur d'instances, l'application serveur provoque une exception "Serveur occupé".

Timeout indique combien de minutes une instance de module de données distant peut rester inactive dans le cache. Si une instance reste plus de Timeout minutes sans recevoir une demande d'un client, elle est automatiquement libérée. Le serveur vérifie cela toutes les 6 minutes, donc un objet peut rester à l'état inactif 6 minutes de plus que la durée spécifiée par Timeout. L'initialisation de Timeout à 0 indique un délai de dépassement infini (les objets inutilisés ne sont donc pas libérés tant que le serveur d'applications n'est pas arrêté).

Singleton indique que tous les appels client vont sur la même instance de module de données distant. Il y a alors une seule instance et non un groupe d'instances disponibles. Il ne faut mettre Singleton à true que si le module de données distant libère les threads.

Remarque :  Lorsque Singleton est à true, les valeurs de Max et Timeout sont ignorées car il n'y a qu'une seule instance sans période d'attente.

Voir aussi