Type de transaction et comportement de connexion
Toutes les connexions sont utilisées dans une portée soit de transaction globale, soit de limite de confinement de transaction locale (LTC). Chaque type de transaction place diverses exigences sur les connexions et agit différemment sur les paramètres de connexion.
Partage de connexion et réutilisation
Vous pouvez partager les connexions dans une portée de transaction globale (en supposant que les autres règles de partage sont respectées). Vous pouvez également partager des connexions dans un LTC partageable. Il est possible de les réutiliser séquentiellement dans une portée LTC. Autrement dit, il est possible de réutiliser la même connexion dans plusieurs cycles "obtenir/utiliser/fermer" successifs portant sur la même source de données ou fabrique de connexion. Pour plus d'informations, voir la rubrique Connexions partageables et non partageables.
Propriété AutoCommit des connexions JDBC
- Si la connexion est utilisée dans un LTC et que la propriété resolution-control est réglée sur Application, la valeur d'AutoCommit reste TRUE sauf si elle est changée par l'application.
- Si la connexion est utilisée dans un LTC et que la propriété resolution-control est réglée sur ContainerAtBoundary, l'application ne doit pas changer la valeur d'AutoCommit. L'environnement d'exécution de WebSphere Application Server définit la valeur d'AutoCommit sur FALSE avant le début du travail, puis valide ou annule celui-ci, selon les circonstances, à la fin de la portée du LTC.
- Si vous utilisez une connexion dans une transaction globale, alors la base de données ignore la valeur du paramètre AutoCommit afin que la transaction puisse être gérée par le service de transaction qui contrôle le processus de validation/annulation. Cette action se produit à la première utilisation de la connexion pour un travail, même si l'utilisateur change la valeur du paramètre AutoCommit. Une fois la transaction terminée, le paramètre AutoCommit reprend la valeur qu'il avait avant la première utilisation de la connexion. Ainsi, même si AutoCommit est réglé sur TRUE avant l'utilisation de la connexion dans une transaction globale, vous n'avez pas besoin de la régler sur FALSE, puisque la valeur est ignorée par la base de données. Dans cet exemple, une fois la transaction terminée, la valeur du paramètre AutoCommit de la connexion redevient TRUE.
- Si plusieurs connexions distinctes sont utilisées dans une transaction globale, les travaux accomplis sur ces différentes connexions sont soit tous validés, soit tous annulés. Ce n'est pas le cas pour un confinement de transaction locale (portée LTC). Un travail accompli sur une connexion peut être validé ou annulé indépendamment des travaux accomplis sur les autres connexions utilisées dans le LTC.
Connexions à validation en une phase et à validation en deux phases
- Un gestionnaire de ressources à validation en deux phases peut prendre en charge la coordination d'une transaction en deux phases. Cette prise en charge est nécessaire pour les transactions qui impliquent des gestionnaires de ressources ; ces transactions sont globales. Pour plus d'informations, voir la rubrique Support de transactions dans WebSphere Application Server.
- Un gestionnaire de ressources à validation en une phase ne prend en charge que les transactions en une phase, ou les transactions LTC, dans lesquelles cette ressource est le seul magasin de données participant. Pour plus d'informations, voir la rubrique Support de transactions dans WebSphere Application Server.
Les ressources à validation en une phase sont telles que le travail effectué sur une connexion à validation en une phase ne peut être mélangé avec ceux d'autres connexions et elles s'assurent que le travail effectué sur toutes les connexions aboutit ou échoue atomiquement. Le produit n'autorise pas plus d'une connexion à validation en une phase dans une transaction globale. De plus, il n'autorise pas la cohabitation, dans une transaction globale, d'une connexion à validation en une phase et d'une ou plusieurs connexions à validation en deux phases. Dans une transaction globale, vous ne pouvez coordonner que des connexions à validation en deux phases.
WebSphere Application Server fournit la prise en charge du dernier participant, qui autorise une ressource à validation en une seule phase à prendre part à une transaction globale avec une ou plusieurs ressources à validation en deux phases.
WTRN0063E : Tentative illégale d'inscription d'une ressource à capacité de validation en une phase avec des ressources à capacité de validation en deux phases existantes.