Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

From: Frédéric Laurent (xml@opikanoba.org)
Date: 03/06/2002 - 07:26


the_peuffeur@voila.fr wrote:
> J'utilise la version de Xalan J 2.2 et j'ai lu quelque part qu'il
> fallait utiliser une nouvelle instance de xalan pour chaque appel à
> une xsl compilée (il semblerait y avoir des problèmes quand plusieurs
> threads utilisent la même instance de xalan).
> Dans mon appli Java je compile mes XSL une seule fois et je les stocke
> en attribut d'un singleton, puis à partir d'une servlet je fais appel
> à une méthode sur le singleton pour récupérer la xsl compilée et je ne
> semble pas rencontrer de problèmes, je suis en phase de dev donc j'ai
> essayé avec seulement 3 connexions simultanées.
> Quelqu'un peut-il me confirmer ou m'infirmer que je rencontrerai des
> problèmes, y a t-il une autre solution avec xalan sans recompiler les
> xsl ? Pour info la transformation se fait en environ 200 à 400 milli
> secondes au lieu de 2 à 3 secondes (suivant les flux XML) !

> Merci de vos remarques et suggestions.

Pour faire une transformation XSLT, il faut utiliser l'objet Transformer
(javax.xml.transform.Transformer). Celui-ci n'est pas thread safe,
d'ailleurs la doc l'indique clairement :
"An object of this class may not be used in multiple threads running
concurrently. Different Transformers may be used concurrently by
different threads."

C'est la raison pour laquelle, dans un contexte de processus
concurrents, l'utilisation de la classe Templates est un passage
obligé (javax.xml.transform.Templates). La doc est claire aussi sur
ce point :
"Templates must be threadsafe for a given instance over multiple threads
running concurrently, and may be used multiple times in a given session."

On utilisera alors un Transformer qui sera créé par l'instance de
Templates pour ne pas avoir de problème.
Templates t=...
Transformer tr = t.newTransformer()...

donc pour conclure, il y a effectivement des précautions à prendre
pour utiliser ces objets de façon concurrente.
Les objets Templates permettent d'y répondre, maintenant vous pouvez
toujours envisager de "synchroniser" la transformation pour éviter
la compilation des feuilles de styles, en ayant bien à l'esprit
le coût que cela peut avoir (goulet d'étranglement, attente des autres
processus, mise en place de thread pour pallier à ça... et j'en passe..)

De toute façon, les feuilles de style, qu'elles soient compilées par
vos soins (via l'objet Templates) ou par la machine (par son propre
mécanisme), elles le seront forcement (compilées) à un moment donné...
donc...

cordialement

-- 
Frédéric Laurent
http://www.opikanoba.org

-- Devenez redacteur <XML>fr et contribuez au developpement du xml francophone (http://xmlfr.org/infos/redacteurs/) !

Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).

Cette liste est a votre disposition pour discuter en francais de tout sujet technique lie a XML.

Pour resilier votre abonnement, envoyez un message contenant la commande "unsubscribe" a xml-tech-request@xmlfr.org (mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)



Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC

webmaster@xmlfr.org

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement