Tout ce que j'ai eu à connaître, je l'ai appris à la maternelle, non?
C'est bien ce que je pensais et ainsi, je frisais la limite de la bonasserie lorsque était
venu le temps de partager, jusqu'à ce que je rencontre la réplication
sous Jet et y découvre que de partager peut être une fort mauvaise chose, en
autant que la performance de votre application est en jeu. Qu'est-ce que cela
signifie? eh bien, continuons la lecture...
Le scénario est relativement linéaire: vous avez une application qui
tourne rondement, vous y ajoutez la réplication et subitement, chaque fois que
vous effectuez une opération comme ouvrir une table, les performances prennent
une dégringolade... quelques fois le lecteur de disquette ou le CDROM se met à
tourner. Vous vous tirez les cheveux ou, si vous n'avez pas de cheveux, vous
vous apprêtez à enlever la réplication la basse de données,
à moins que vous ne trouviez une solution, et "vite"!
Eh bien, la
solution est toute simple... ne partagez pas vos lecteurs!
Et oui, dû à la
façon dont la réplication de Microsoft Jet utilise pour tenir une trace des
informations sur quelques répliquas que ce soit, tel que
\\MACHINE\C$\foo.mdb
\\MACHINE\CROOT\foo.mdb
C:\foo.mdb
H:\foo.mdb (<--mapped to one of the UNC paths above)
mais puisqu'il s'agit, en fait, du même répliqua, Jet effectue quelque travail
(certains diront trop de travail) pour enlever toute ambiguïté en
recherchant tout. Malheureusement, ce processus de détermination, tel
qu'implanté et tel qu'interfacé avec Jet risque de survenir beaucoup plus
souvent que vous ne le désireriez. :-(
Pour les partages effectués vers
d'autres PC, et spécifiquement si le dit PC n'est pas accessible, l'utilisation
interne des fonctions WNet* peut créer une dégradation importante des
performances. Pour un partage local sur votre propre PC, la dégradation n'est pas
trop importante à moins qu'il ne s'agisse du CDROM ou du lecteur de disquettes,
dans lequel cas la dégradation est perceptible et actuellement, même,
désagréable.
Donc, comment combattre ce problème? En autant que possible,
sur un PC utilisant une application avec réplication, éviter de partager votre
lecteur de CD ou votre lecteur de disquettes et éviter de "mapper" un
disque ou un répertoire accédé par réseau, particulièrement si le lien est
lent (utiliser plutôt le nom UNC, \\nomDePc\disque\chemin
). Ceci devrait prévenir une perte de performance affreuse lorsque vous
partagez trop libéralement vos choses. :-)