Support client pour les transactions
Les clients d'application peuvent, dans certaines limites, prendre en charge l'utilisation des transactions.
Les clients d'applications s'exécutant dans un conteneur client d'application d'entreprise peuvent démarquer de façon explicite les limites de transactions, comme expliqué dans la section relative à l'utilisation de transactions gérées par des composants. Les clients d'applications ne peuvent pas effectuer directement dans le conteneur client un travail transactionnel s'inscrivant dans le contexte d'une transaction globale qu'ils lancent. En effet, le conteneur client n'est pas un processus remédiable.
Les clients d'applications peuvent adresser des demandes à des objets distants, tels que des beans enterprise, dans le contexte d'une transaction lancée par un client. Tout travail transactionnel effectué dans un processus serveur remédiable distant est coordonné comme élément de la transaction lancée par le client. Le coordinateur de transaction est créé sur le premier processus serveur auquel la transaction lancée par le client est envoyée.
Un client peut lancer une transaction pour accéder par exemple à une source de données JDBC directement dans le processus client. Dans ce cas, aucun travail effectué via le fournisseur JDBC n'est coordonné comme élément de la transaction globale. Il s'exécute à la place sous une transaction locale du gestionnaire de ressources. Le processus du conteneur client n'est pas remédiable et n'inclut aucun coordinateur de transaction avec lequel un gestionnaire de ressources peut être répertorié.
Un client peut lancer une transaction, puis appeler un composant d'application distant, tel qu'un bean enterprise. Dans ce cas, le contexte de la transaction lancée par le client est envoyé de façon implicite au serveur d'applications distant sur lequel un coordinateur de transaction est créé. Tous les gestionnaires de ressources auxquels vous accédez sur le serveur d'applications remédiable (ou tout autre serveur d'applications hébergeant des composants d'application appelés par le client) sont répertoriés dans la transaction globale.
Les composants d'application client doivent prendre en compte que les gestionnaires de ressources, dont l'accès se fait en local, ne sont pas coordonnés par des transactions lancées par le client. Les applications client reconnaissent ce fait via une option de déploiement qui permet d'accéder à l'interface UserTransaction dans le conteneur client. Par défaut, l'accès à l'interface UserTransaction dans le conteneur client n'est pas activé. Pour permettre la démarcation de UserTransaction pour un composant d'application client, définissez la propriété d'extension "Autoriser la démarcation JTA" dans le descripteur de déploiement client. Pour plus d'informations sur la modification du descripteur de déploiement client, reportez-vous à la documentation relative à Rational Application Developer.