Project

General

Profile

Actions

Bug #655

closed

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

Added by Philippe Bazart over 11 years ago. Updated over 11 years ago.

Status:
Closed
Priority:
Normal
Category:
Serveur
Start date:
06/17/2010
Due date:
% Done:

100%

Estimated time:
Spent time:
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 #1

Updated by Philippe Bazart over 11 years ago

  • Status changed from Assigned to Resolved
Actions #2

Updated by Nicolas Eysseric over 11 years ago

  • Category set to Serveur
  • Status changed from Resolved to Closed
  • % Done changed from 0 to 100
Actions

Also available in: Atom PDF