sdx-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE : RE : RE : RE : [sdx-developers] DocumentBase et Cie : dernierscommi


From: Rasik Pandey
Subject: RE : RE : RE : RE : [sdx-developers] DocumentBase et Cie : dernierscommits
Date: Mon, 5 Jan 2004 17:02:18 +0100

Salut,

 >
 >>  >dbe = getEntity(id, rs);
 >>  >addEntityToCache(dbe);
 >>  >
 >>  >est arrêté ici, la ligne suivante :
 >
 >La voici :
 >return dbe;
 >
 >>  >*peut* renvoyer un résultat faux si l'entité a été détruite.
 >>  >Idem pour 
 >>  >Update et pour Search. Me trompè-je ?
 >> 
 >> On n'aura pas un SDXException?
 >
 >Euh... je ne crois pas. Les variables stockent des références (des 
 >pointeurs) donc :
 >
 >dbe = getEntity(id, rs) = a_reference
 >->arrêt du 1er thread
 >->destruction de l'entité par un 2ème thread
 >->reprise du 1er thread
 >->restitution de la pile du 1er thread et donc de a_reference
 >return a_reference
 >
 >Or... a_reference n'est plus valide à ce moment là.
 >Il n'est pas dit que le ramasse-miettes ait fait son travail entre le 
 >moment où l'entité *physique* est détruite et celui où la pile du 1er 
 >thread est restituée.
 >
 >Même chose pour releaseConnection : il faudrait la synchroniser et 
 >forcer son invalidation.
 >
 >if (conn != null) {
 >   conn.close();
 >   conn = null
 >}


Oui, on est d'accord mais pourrait-on avoir plusieurs instances
AbstractJDBCDatabase. Dans ce cas le problème de synchronisation est
plus global, non.....?

abstractJDBCDatabaseA.getEntity(entity);
abstractJDBCDatabaseB.delete(entity);

On ne devrait pas y arriver dan l'état actuel de SDX, mais ce n'est pas
impossible...

Rasik







reply via email to

[Prev in Thread] Current Thread [Next in Thread]