FileMaker - Tip 88

 

Klik op om terug te keren naar het selectiemenu.

Tip 88 - Sorry, FileMaker is unable to read the disk this file is on...

Sorry, FileMaker is unable to read the disk this file is on.
Click Continue to try again, or click Exit and copy this file to another disk.

Deze keer een wat raadselachtige boodschap die gelukkig maar af en toe voorkomt. Maar geheel onschuldig is ze niet. Bovendien doen er een aantal fabeltjes en vage verhalen de ronde: het zou te maken hebben met bestandscorruptie.

Eigenlijk klopt dat wel een beetje, alleen is die bestandscorruptie er dan (normaal gesproken) nog niet. Ze is in de maak, en daar zijn we dan nog zelf verantwoordelijk voor...

Vaak helpt een klik op Continue niet, en blijft er geen andere oplossing dan ExitFileMaker sluit dan af... En we mogen van geluk spreken als onze bestanden daarna nog (onbeschadigd) opengaan.

Wat is er nu feitelijk aan de hand?

In principe is er een probleem met het schrijven naar de harde schijf. Dat kan veroorzaakt worden door een te volle harddisk (of een te volle floppy voor wie die nog gebruikt), maar vaak ook een te volle Temp directory in Windows (c:\Windows\Temp).

Maar er is nog een andere oorzaak mogelijk:

Het probleem doet zich voornamelijk voor wanneer verschillende computers met hetzelfde bestand werken, zonder dat we FileMaker Server gebruiken. We werken in dat geval dus met "gewone" FileMakers die in een Peer-to-peernetwerk staan.

De computer die als eerste een bestand opent, wordt in zo'n situatie gepromoveerd tot host (de gastheer dus). Alle andere computers moeten dan inloggen op die gastheer. Die zendt immers zijn FileMaker-gegevens over het netwerk via een eigen FileMaker-protocol. Wanneer een andere FileMaker opstart, moet die zijn bestanden openen via de Host-knop. Daarmee speurt hij met zijn eigen netwerkprotocol het netwerk af om te zien welke FileMaker-bestanden er allemaal al open staan. Daar kan dan probleemloos op ingelogd worden.

Dit was de optimale situatie, en zo hoort het.

Nu de knoeimethode. De tweede gebruiker start zijn computer op, klikt op Open File en gaat via het dialoogpaneel van Windows (of van de Mac) naar het bestand dat moet worden geopend (hoewel dat al open staat voor die andere computer). Het besturingssysteem ziet daar echter geen graten in, en hop, één enkel bestand is geopend door twee computers. FileMaker is wel meer gewoon en accepteert dat vrolijk, tot...

Tot een save-operatie gebeurt. FileMaker doet dat immers automatisch "during idle time", wanneer er dus even geen activiteit is. Computer 1 (de gastheer, weet u nog wel) schrijft gegevens weg naar de plaats waar het bestand staat (vaak zijn eigen harde schijf) en meldt dit aan het besturingssysteem (Windows of MacOs). Computer twee wil nu net op dat moment hetzelfde doen en meldt dat aan zijn besturingssysteem. Dat gaat dan naar de file kijken en zegt: "Ho! maar! dat kan nu even niet: daar wordt op dit moment aan gewerkt". FileMaker kan dus niet doen wat hij wilde doen en reageert daar dan wat beteuterd op. Vandaar dus die foutmelding (zie hierboven). Als we geluk hebben, heeft het besturingssysteem van de andere computer het bestand inmiddels vrijgegeven. Klikken we dan op Continue, dan is het onze beurt om naar disk te schrijven.

Uiteraard is de hierboven beschreven "knoeimethode" een absoluut onveilige procedure. De tweede computer mag dus NOOIT, NOOIT, NOOIT, NOOIT openen via Open File, wel via HOST.

We doen er dus goed aan alle gebruikers hiervan op de hoogte te brengen. Beter nog is het openen te laten gebeuren via een beveiligde launcher file, apart geprogrammeerd voor elke gebruiker. Hoe zo'n launcher file geprogrammeerd wordt, is weer een ander verhaal.

 

 
avd@avd-ci.be - contactformulier