Présentation de Web Services Atomic Transaction

Le support de Web Services Atomic Transaction (WS-AT) dans le serveur d'applications apporte une qualité de service transactionnelle à l'environnement des services Web. Les applications de services Web réparties et les ressources qu'elles utilisent peuvent participer à des transactions globales réparties. A présent, WS-AT est également pris en charge dans Liberty.

Les protocoles de services Web fournissent des méthodes standard pour définir des applications de services Web, et les applications peuvent les utiliser pour fonctionner indépendamment du produit, de la plateforme ou du langage de programmation qui est utilisé. La prise en charge de WS-AT correspond à l'implémentation des spécifications suivantes sur le serveur d'applications. Ces spécifications définissent un ensemble de services Web qui permettent à des applications de services Web de participer à des transactions globales réparties dans l'environnement de services Web hétérogène.

Le support de WS-AT est un protocole d'interopérabilité qui n'introduit aucune interface de programmation nouvelle pour la prise en charge de transactions. La démarcation de transaction globale est fournie par l'utilisation d'applications entreprise standard de l'interface JTA (Java™ Transaction API) UserTransaction. Si un composant d'application qui s'exécute sous une transaction globale effectue une demande de services web, un contexte de coordination WS-AT est propagé de manière implicite vers les services Web cible, mais uniquement si les descripteurs de déploiement d'application appropriés ont été définis, comme décrit dans la rubrique relative à la configuration d'attributs de déploiement transactionnels.

Si le serveur d'applications est le système qui héberge le noeud final cible pour une demande de services Web contenant un contexte de coordination WS-AT, le serveur d'applications établit automatiquement une transaction JTA subordonnée dans l'environnement d'exécution cible qui devient le contexte transactionnel sous lequel l'application de services Web cible s'exécute.

La figure suivante montre un contexte de transaction partagé entre deux serveurs d'applications pour une demande de services Web contenant un contexte de coordination WS-AT.

Figure 1. Contexte de transaction partagé entre deux serveurs d'applications
La transaction atomique inclut le client de services Web et ses ressources XA sur le serveur d'applications 1 et l'application de services Web et ses ressources XA sur le serveur d'applications 2.

Par défaut, si vous activez la fonction WS-AT et que vous commencez la transaction côté client dans Liberty, toutes les opérations de services Web qui sont incluses dans une transaction client sont ajoutées à la transaction globale. Toutefois, si vous exécutez un code en dehors de la portée de la transaction globale en cours, utilisez UOWManager avec le type UOWSynchronizationRegistry.UOW_TYPE_LOCAL_TRANSACTION. Cela aura pour effet de suspendre et reprendre la transaction globale autour de ce fragment de code.

Tableau 1. Conditions sous lesquelles vous pouvez ou non utiliser la transaction globale WS-AT dans Liberty pour les communications client sortantes
Selon que la fonction WS-AT est activée Selon que la transaction existe Selon que l'assertion de règle existe dans WSDL Selon que la transaction globale WS-AT est activée
Non Non Non Non
Non Non Oui Non, avec Liberty émettant une exception
Non Oui Non Non
Non Oui Oui Non, avec Liberty émettant une exception
Oui Non Non Non
Oui Non Oui (wsp: Optional="false") Non, avec Liberty émettant une exception
Oui (wsp: Optional="true") Non
Oui Oui Non Oui
Oui Oui Oui Oui
Tableau 2. Conditions sous lesquelles vous pouvez ou non utiliser la transaction globale WS-AT dans Liberty pour les communications serveur entrantes
Selon que la fonction WS-AT est activée Selon que le contexte de coordination context existe dans l'en-tête SOAP Selon que l'assertion de règle existe dans WSDL Selon que la transaction globale WS-AT est activée
Non Non Non Non
Non Non Oui Non
Non Oui Non Non, avec Liberty émettant une exception
Non Oui Oui Non, avec Liberty émettant une exception
Oui Non Non Non
Oui Non Oui (wsp: Optional="false") Non, avec Liberty émettant une exception
Oui (wsp: Optional="true") Non
Oui Oui Non Oui
Oui Oui Oui Oui

Conception d'applications

WS-AT est un protocole de transaction de validation en deux phases adapté uniquement aux transactions de courte durée.

WS-AT s'avère plus approprié pour la répartition de contextes de transactions entre plusieurs services Web déployés au sein d'une seule entreprise. Seuls les modèles d'échange de messages demande-réponse incluent des contextes de transactions, car l'émetteur (application ou conteneur) d'une transaction doit s'assurer que toutes les tâches métier exécutées sous cette transaction ont pris fin avant de demander l'achèvement d'une transaction. Les services Web appelés par une demande unidirectionnelle ne s'exécutent jamais sous la transaction du client demandeur.

L'effet des incidents de service sur les transactions WS-AT est similaire à celui des exceptions d'application EJB (Enterprise JavaBeans) sur les transactions, comme décrit dans la spécification EJB. Si un service qui s'exécute sous la transaction WS-AT d'un demandeur renvoie une erreur, le serveur d'applications ne marque pas automatiquement la transaction en annulation seule. Le gestionnaire d'exceptions du demandeur décide si la transaction peut se poursuivre et si elle doit être marquée pour annulation seulement. Si le demandeur s'exécute sur le serveur d'applications, les API JTA ou EJB standard peuvent être utilisées pour marquer la transaction en annulation seule. Le composant de service qui génère l'erreur peut, lui-même, marquer la transaction pour annulation seulement avant de renvoyer l'erreur. Si l'implémentation du composant de service rencontre une exception système, elle autorise généralement le conteneur à gérer l'exception. Les conteneurs du serveur d'applications ne marquent automatiquement un contexte de transaction reçu pour annulation seule que s'il s'agit d'une exception système générée par une implémentation de service.


Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwlp_dep_wsatoverview_lib
Nom du fichier : cwlp_dep_wsatoverview_lib.html