dev@xmlfr.org : liste de discussion des développeurs du site XMLfr
[dev@xmlfr.org] Re: [Cocoon] show-time & XML
From: Sylvain Wallez (sylvain.wallez@anyware-tech.com)
Date: 06/01/2004 - 20:56
Eric van der Vlist wrote:
>On Tue, 2004-01-06 at 21:03, Herve AGNOUX wrote:
>
>
>>Le Mardi 06 Janvier 2004 20:25, Eric van der Vlist a écrit :
>>
>>
>>>As-tu une idée de la raison pour laquelle cela ne marche pas?
>>>
>>>
>>>
>>Es-tu sûr que tous les tests utilisent la même instance de
>>SynchronizedFileGenerator !? (cela serait un gros coup de bol, ai-je
>>l'impression... )
>>
>>
>
>Non, c'est pour cela que j'ai synchronisé (ou essayé de le faire) sur la
>classe SynchronizedFileGenerator et non sur l'instance :
>
> synchronized (this.getClass()) {
>
> super.generate();
> }
>
>
Bizarre... que se passe-t-il si tu synchronise sur un mutex créé tout
exprès :
private static Object mutex = new Object();
public void generate() {
synchronized(mutex) {
super.generate();
}
}
>Il est vrai que mon Java est un peu rouillé (et sans doute détérioré par l'utilisation de langages plus souples) et j'ai pu me tromper!
>
>
Et puis il est vrai, que les problèmes de concurrence sont les plus
tordus à résoudre ;-)
>>Les tests de performances sont un des sujets les plus difficiles en Java.
>>
>>Si tu utilises une classe spéciale, tant qu'à faire, je pense qu'il faut
>>l'utiliser à fond. ("à donf', me semble-t-il que l'on dit à Paris).
>>
>>Il existe en Java une classe prévue pour faire un lock entre plusieurs objets,
>>plusieurs classes, plusieurs JVM. C'est "java.nio.channels.FileLock".
>>
>>Avec cela tu pourras t'assurer que, si un test est en cours quelque part, un
>>autre test ne pourra pas être lancé.
>>
>>
>
>Est-ce que ces locks sont automatiquement enlevés en cas d'exceptions?
>
>Il me semble que l'avantage de "synchronized" est que ce genre de
>problèmes sont (en principe) gérés par la VM...
>
>
>
>>Cela dit il existe aussi des systèmes de lock en ligne de commande... Entre
>>cocoon, Ant, et tout et tout, j'imagine qu'il faut juste savoir où
>>intervenir.
>>
>>
>
>Oui, je n'interviens sans doute pas au bon niveau!
>
>
Le bloc synchronized me parait adapté dans ce cas, puis qu'on n'a qu'une
seule JVM et qu'on ne s'intéresse qu'à une classe dans cette JVM.
Par contre, il est important de signaler que les générateurs n'étant pas
réentrants, Cocoon gère un pool d'instances et donc synchroniser sur le
générateur lui-même sera sans effet. C'est pour cela que le mutex doit
être statique.
Sylvain
--
Sylvain Wallez Anyware Technologies
http://www.apache.org/~sylvain http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }
Orixo, the opensource XML business alliance - http://www.orixo.com
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "dev@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie au developpement du site XMLfr.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a dev-request@xmlfr.org
(mailto:dev-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/01/2004 - 09:12 UTC
webmaster@xmlfr.org
|