Configuration de TRemoteDataModule

De RAD Studio
Aller à : navigation, rechercher

Remonter à Configuration du module de données


Pour ajouter un composant TRemoteDataModule dans votre application, choisissez Fichier > Nouveau > Autre et sélectionnez Module de données distant dans la page Multi-niveaux de la boîte de dialogue Nouveaux éléments. l'expert Module de données distant apparaît.

Vous devez fournir un nom de classe pour votre module de données distant. Il s'agit du nom de base d'un descendant de TRemoteDataModule que votre application crée. Il s'agit aussi du nom de base de l'interface de cette classe. Par exemple, si vous spécifiez le nom de classe MyDataServer, l'expert crée une nouvelle unité en déclarant TMyDataServer, un descendant de TRemoteDataModule, qui implémente IMyDataServer, un descendant de IAppServer.

Remarque :  Vous pouvez ajouter vos propres propriétés et méthodes à la nouvelle interface. Pour plus d'informations, voir Extension de l'interface du serveur d'applications.

Vous devez spécifier le modèle threading dans l'expert Module de données distant. Vous pouvez choisir Thread Unique, Thread Appartement, Thread Libre ou Les deux.

  • Si vous choisissez Thread Unique, COM fait en sorte qu'une seule requête client soit traitée à un moment donné. Aucune requête client ne peut entrer en conflit avec une autre.
  • Si vous choisissez Thread Appartement, COM fait en sorte que toute instance de votre module de données distant traite une seule requête à un moment donné. Lorsque vous écrivez du code dans une bibliothèque Thread Appartement, vous devez prévenir les conflits de thread si vous utilisez des variables globales ou des objets non contenus dans le module de données distant. C'est le modèle recommandé si vous utilisez des ensembles de données BDE. Veuillez noter que vous aurez besoin d'un composant session dont la propriété AutoSessionName vaut True pour gérer les problèmes de threading sur les ensembles de données BDE.
  • Si vous choisissez Thread Libre, votre application peut recevoir des requêtes client simultanées sur plusieurs threads. Vous devez faire en sorte que votre application soit compatible avec les threads. Comme plusieurs clients peuvent simultanément accéder à votre module de données distant, vous devez protéger vos données d'instance (propriétés, objets contenus, etc.) ainsi que les variables globales. C'est le modèle recommandé si vous utilisez des ensembles de données ADO.
  • Si vous choisissez Les deux, votre bibliothèque fonctionne de la même façon que lorsque vous choisissez Thread Libre, à la différence que tous les rappels (appels vers les interfaces client) sont automatiquement sérialisés.
  • Si vous choisissez Neutre, le module de données distant peut recevoir des appels simultanés dans des threads séparés, comme dans le modèle Thread Libre, mais COM s'assure qu'il n'y a pas deux threads accédant à la même méthode au même moment.

Si vous créez un fichier .EXE, vous devez également spécifier le type d'instanciation à utiliser. Vous pouvez choisir Instance unique ou Instance multiple (l'instanciation interne ne s'applique que si le code client fait partie du même espace de processus.)

  • Si vous choisissez Instance unique, chaque connexion client lance sa propre instance du fichier exécutable. Ce processus instancie une seule instance du module de données distant, qui est dédié à la connexion client.
  • Si vous choisissez Instance multiple, une seule instance de l'application (processus) instancie tous les modules de données distants créés pour les clients. Chaque module de données distant est dédié à une seule connexion client, mais ils partagent tous le même espace de processus.

Voir aussi