Expert Objet transactionnel

De RAD Studio
Aller à : navigation, rechercher

Remonter à Menu Fichier

Fichier > Nouveau > Autre...

Utilisez l'expert Nouvel objet transactionnel pour créer un objet serveur s'exécutant sous MTS ou COM+. Les objets transactionnels sont utilisés dans les applications distribuées pour profiter des services spéciaux fournis par MTS ou COM+ quant à la gestion des ressources, le support des transactions ou la sécurité.

Elément Description

Nom de CoClasse

Spécifiez le nom de l'objet que vous souhaitez implémenter. L'expert génère une interface portant ce nom précédé de la lettre ‘I’ et une classe d'implémentation avec ce nom précédé de la lettre ‘T'.

Modèle de thread

Choisissez le modèle de thread pour indiquer comment MTS ou COM+ doit sérialiser les appels à l'interface de l'objet transactionnel. Le modèle de thread choisi détermine la façon dont l'objet est enregistré. Vous devez vous assurer que l'implémentation de votre objet adhère au modèle sélectionné. Les valeurs de modèle de thread sont présentées ci-dessous.

Modèle de transaction

Spécifiez l'attribut de transaction affecté à votre objet lorsque vous le recensez. Les valeurs possibles sont présentées ci-dessous.

Créer le code de support d'événement

Ne décrivez pas les boutons standard, comme OK et Annuler.



La zone de liste Modèle de thread peut prendre les valeurs suivantes :

Modèle Description

Unique

Votre code ne dispose pas de support de thread. Un seul thread client peut être servi à la fois.

Apartment

Sous COM+, chaque objet instancié par un client est accédé par un seul thread à la fois. Vous devez empêcher l'accès de plusieurs threads à la mémoire globale, mais les objets peuvent accéder de manière sécurisée à leur propre données d'instance (propriétés de l'objet et membres). Sous MTS également, tous les appels client utilisent le thread sous lequel l'objet a été créé.

Les deux

Comme Apartment sauf que les callbacks aux clients sont sérialisés.

Neutre

Plusieurs clients peuvent appeler l'objet sur différents threads en même temps, mais COM assure qu'il n'y a pas de conflit entre deux appels. Vous devez éviter les conflits de threads impliquant des données globales et toutes les données d'instance accédées par plus d'une méthode. Ce modèle ne doit pas être utilisé avec des objets ayant une interface utilisateur. Ce modèle est disponible uniquement sous COM+. Sous COM, il est équivalent au modèle Appartement.



Remarque :  La sérialisation des appels à votre objet est également influencée par la façon dont il participe aux activités. Sous MTS, les objets sont toujours synchronisés par l'activité en cours. Sous COM+, vous pouvez configurer cela en utilisant la page COM+ de l'éditeur de bibliothèque de types ou le gestionnaire de composants COM+.

La zone de liste Modèle de transaction peut prendre les valeurs suivantes :

Valeur Signification

Requiert une transaction

L'objet doit s'exécuter dans la portée d'une transaction. Lorsqu'un nouvel objet est créé, son contexte d'objet hérite de la transaction du contexte du client. Si le client n'a pas de contexte de transaction, un nouveau contexte de transaction est généré automatiquement.

Requiert une nouvelle transaction

L'objet doit s'exécuter dans sa propre transaction. Lorsqu'un nouvel objet est créé, un nouveau contexte de transaction est également créé automatiquement, que son client ait ou non de transaction. L'objet ne s'exécute jamais dans la portée de la transaction de son client. En revanche, le système crée toujours des transactions indépendantes pour les nouveaux objets.

Supporte les transactions

L'objet peut s'exécuter dans la portée des transactions de son client. Lorsqu'un nouvel objet est créé, son contexte d'objet hérite de la transaction du contexte du client si elle existe. Sinon, l'objet n'est pas créé dans la portée d'une transaction.

Ne supporte pas les transactions

Sous MTS, cette option induit un comportement identique à l'option Transaction ignorée sous COM+. Sous COM+, l'objet ne peut s'exécuter dans le contexte d'une transaction. Si le client a une transaction, les tentatives de création de l'objet échoueront.

Ignore les transactions

L'objet ne s'exécute pas dans la portée des transactions. Lorsqu'un nouvel objet est créé, son contexte d'objet est créé sans transaction, que son client ait ou non de transaction. Ce modèle n'est pas supporté sous MTS.