Gestion des transactions dans les applications multiniveaux

De RAD Studio
Aller à : navigation, rechercher

Remonter à Création de l'application serveur

Lorsque les applications client appliquent les mises à jour sur le serveur d'applications, le composant fournisseur enveloppe automatiquement le processus d'application des mises à jour et de résolution des erreurs dans une transaction. Cette transaction est validée si le nombre d'enregistrements problématiques n'est pas supérieur à la valeur MaxErrors spécifiée comme argument à la méthode ApplyUpdates. Sinon, elle est annulée.

De plus, vous pouvez améliorer la prise en charge des transactions sur votre application serveur en ajoutant un composant connexion de base de données ou en gérant la transaction directement en envoyant du code SQL au serveur de bases de données. La gestion des transactions est la même que dans une application à niveau double. Pour plus d'informations sur ce type de gestion de transactions, voir Gestion des transactions.

Si vous utilisez un module de données distant transactionnel, vous pouvez améliorer la prise en charge des transactions à l'aide des transactions COM+ (ou MTS). Ces transactions peuvent inclure toute logique d'entreprise sur votre serveur d'applications et ne se limitent pas à la gestion de l'accès aux bases de données. De plus, comme elles gèrent la validation en deux phases, ces transactions peuvent englober plusieurs bases de données.

Seuls les composants d'accès aux données BDE et ADO gèrent les validations en deux phases. N'utilisez pas les composants InterbaseExpress ou dbExpress si vous utilisez des transactions à cheval sur plusieurs bases de données.

Par défaut dans un module de données transactionnel, tous les appels de IAppServer sont transactionnels. Il suffit d'étendre l'interface du serveur d'applications pour inclure des appels de méthode qui encapsulent des transactions que vous avez définies.

Si l'attribut de transaction indique que le module de données distant nécessite une transaction, tous les appels des clients sont automatiquement inclus dans une transaction. jusqu'à ce que vous spécifiiez que la transaction est achevée. Ces appels réussissent ou sont annulés en bloc.

Remarque :  Ne combinez pas les transactions COM+ ou MTS avec des transactions explicites créées par un composant connexion de base de données ou à l'aide de commandes SQL explicites. Lorsque votre module de données transactionnel est répertorié dans une transaction, il répertorie automatiquement tous les appels de votre base de données dans la transaction.

Voir aussi