IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XMLRAD Discussion :

Comment utiliser un cache ?


Sujet :

XMLRAD

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 42
    Points : 31
    Points
    31
    Par défaut Comment utiliser un cache ?
    J'ai une grosse base (communes de france = 36000) et je voudrais faire un pré-tri par département, car l'opérateur ne travaille que sur un département. Je pense qu'il faudrait que j'utilise un cache afin de ne pas faire mes requêtes sur la base entière mais sur le cache.

    Comment-faire ?
    Klatoum Barada Niktou

  2. #2
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    dans le XMLGram Editor, il suffit de mettre pour un DBextract donné une instruction Cache. on met alors l'ancien DBEXtract en tant que fils du Cache.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      |
      |-Cache
      |   |
      |   |-DBEXtract
      |   |
    RDM
    Tout Est Relatif
    Rubrique XMLRAD: http://xmlrad.developpez.com
    FAQ XMLRAD: http://xmlrad.developpez.com/faq/

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    Le DBextract doit donc s'effectuer sur le fichier xlm en cache ?

    De toute façon je vais essayer demain et je comprendrai peut-être un peu mieux koikispass
    Klatoum Barada Niktou

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 284
    Points : 349
    Points
    349
    Par défaut Explication et Conseils pour l'instruction Cache
    En gros, l'instruction Cache récupére le fragment XML généré par l'instruction fille (dans l'exemple de RDM, le DBExtract).
    Ce fragment est conservé en mémoire.

    Voila comment ca se passe :
    1er appel : on passe sur l'instruction Cache, qui vérifie si elle a déjà stocké un fragment XML en memoire. C'est le premier appel, donc pas de fragment. Elle execute donc l'instruction fille, le DBExtract. La requete est faite comme d'habitude et le fragment XML resultant de la requete est stocké en memoire, dans un objet global partagé (propriété Cache de XMLCollection pour ceux que ca interesse )

    2eme appel : on repasse par l'instruction Cache qui vérifie si elle a déjà stocké un fragment XML en memoire. Cette fois, c'est ok, elle a en mémoire le fragment. Elle reprend donc directement ce fragment et zou ! elle l'ajoute au document XML, sans exécuter l'instruction fille. On gagne donc le temps de l'extraction SQL.

    Pour réinitialiser un cache, il suffit de passer dans l'URL le paramètre XMLC_ResetCache=1. Tous les caches présents dans le XMLGram sont réinitialisés.

    Le paramètre important pour un Cache est Shared : ca permet de partager le Cache pour toutes les threads de l'application. C'est important, parce que sans ca, un XMLC_ResetCache peut réinitialiser le Cache d'une thread en laissant tranquille les autres threads, ce qui peut donner des comportements étranges . Il faut aussi placer le paramètre XMLC_SharedCache=1 dans les InitParams

    Les Cache sont paramètrables : ca permet de stocker en cache des fragments différents selon les paramètres. Par exemple, l'application est multilingue et la tables de références des pays est traduite (United Kingdom, Germany, France en anglais et Royaume-Unis, Allemagne et France en francais). Pour faire l'extraction de ces pays, on a un paramètre indiquant la langue choisie par l'utilisateur. Il faut alors dire que le Cache est fonction du paramètre. Ca permet de stocker le Fragment avec les noms en anglais et un autre fragment avec les noms en Francais.
    En gros, tous les paramètres de la requete SQL fille doivent se trouver dans la collection des paramètres du Cache. (sous réserve, c'est un poil plus relatif que ca )

    Essayez de nommer tous les caches identiques de la meme maniere par exemple (Name=CacheCOUNTRIES pour tous les caches de la liste des pays). Ca permet de n'avoir qu'un seul fragment XML en mémoire et de le réinitialiser une fois pour toute.

    Derniere chose : annexe XMLGram (http://www.xmlrad.com/Manual/Appendix13/index.htm)
    et annexe InitParams/GlobalParams (http://www.xmlrad.com/Manual/Appendix14/index.htm)
    Nicolas

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    Ca c'est de la bombe ! Belle démonstration, très pédagogique !

    Merci MAÎTRE
    Klatoum Barada Niktou

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/10/2010, 16h04
  2. [VTemplate] Comment utiliser le système de cache ?
    Par xhark dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 28/10/2006, 23h37
  3. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 09h35
  4. Réponses: 5
    Dernier message: 11/06/2002, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo