Alles wat ik ooit moet weten heb ik geleerd op de kleuterschool, nietwaar? Nou, dat is wat ik dacht, en ik heb altijd eerlijk alles gedeeld met anderen, totdat ik plotseling Jet-replicatie gebruikte. Ik ontdekte dat eerlijk alles delen soms niet goed is voor de performance van je applicatie. Wat bedoel ik hiermee? Nou, lees maar...
Het scenario is doodeenvoudig - je hebt een goed werkende applicatie, je repliceert 'm en plotseling wordt de performance hopeloos als je zoiets simpels doet als het openen van een tabel... soms hoor je de diskdrive of de CDROM-drive steeds ratelen. Je hebt de neiging de haren uit je hoofd te trekken of (als je geen haar hebt) de database te ont-repliceren, om maar te zorgen dat het stopt!
Het antwoord is eenvoudig... maak je drives niet-geshared!
Ja, dat klopt. Vanwege de manier waarop de tracking-laag van Microsoft's Jetreplicatie informatie beheert over de vraag of replica's zoals
\\MACHINE\C$\foo.mdb
\\MACHINE\CROOT\foo.mdb
C:\foo.mdb
H:\foo.mdb (<-- gemapped naar een van de UNC-paden hierboven)
in feite dezelfde replica's zijn, voert het wat werk uit (sommigen zouden zeggen te veel werk!) om de share-informatie op de machine van dubbelzinnigheid te ontdoen zodat het weet wat alle shares zijn. Door de manier waarop Access sommige van *zijn* taken implementeert en hoe het Jet aanroept om ze uit te voeren, kan deze "detectie" helaas veel vaker plaatsvinden dan je zou willen. :-(
Voor gesharede verbindingen die naar andere machines gaan, vooral als de andere machine niet beschikbaar is, kunnen de interne calls die het maakt naar WNet*-functies de performance aantasten. Voor lokale shares is de aantasting niet zo groot, tenzij je een CDROM- of diskettestation sharet, in welk geval de performance-klap weer merkbaar is en in feite erg vervelend kan zijn.
Hoe kun je dit probleem nou bestrijden? Probeer waar mogelijk op een machine met een applicatie die van replicatie gebruik maakt CDROM-drives of diskettestations niet te sharen en probeer drive-mappings naar netwerkverbindingen te vermijden, in het bijzonder langzame (gebruik in plaats daarvan UNC-paden). Dit voorkomt dat je lijdt onder de akelige performance-klap die te maken heeft met alles eerlijk delen.:-)