Projet

Général

Profil

Actions

Bug #655

fermé

Problème de connexions managées et de gestion des transactions dans com.stratelia.webactiv.util.Schema

Ajouté par Anonyme il y a plus de 14 ans. Mis à jour il y a plus de 14 ans.

Statut:
Closed
Priorité:
Normal
Assigné à:
-
Catégorie:
Serveur
Début:
17/06/2010
Echéance:
% réalisé:

100%

Temps estimé:
Temps passé:
Navigateur:
Votre version de Silverpeas:
5.1.2
Système d'exploitation:
Votre base de données:
PostgreSQL
Livraison en TEST:
Livraison en PROD:

Description

Quand les transactions sont gérées au sein d'un conteneur (EJB par exemple), les méthodes setAutoCommit(), commit() et rollback() d'une connexion JDBC obtenue depuis un DataSource, lèvent une exception SQLException.

Les méthodes createConnection(), commit() et rollback() de la classe Schema peuvent être modifiées pour à la fois continuer à gérer les transactions comme avant tant que la connexion mémorisée dans Schema n'est pas managée et qu'une transaction n'est pas commencée, ou bien éviter de faire quoi que ce soit avec les transactions dans le cas contraire. Le cas d'une connexion managée avec une transaction en cours peut être testé si getAutoCommit() retourne false.

Donc si getAutoCommit() retourne true, on peut appeler setAutoCommit(false), comme auparavant, sinon on n'appelle plus cette méthode. On garde cette information dans une nouvelles propriété afin de suivre la même règle dans les méthodes commit() et rollback() de la classe Schema.

De cette façon, et comme Schema est une classe centrale très impactante, on évite tout risque de dysfonctionnement de Silverpeas et on rend possible son utilisation (indirecte le plus souvent) par un EJB ou un managed bean (Spring ou autre).

Actions

Formats disponibles : Atom PDF