=?iso-8859-1?q?allegro_killt_datenbank_(ald's=3F)_,_nit_m=F6g

Thomas Berger ThB at gymel.com
Do Aug 2 11:35:55 CEST 2001


Lieber Herr Lehmann,
 
> vorfall:
> heute (montag) punkt 11.02 melden die 5 kollegen: recno nicht
> gefunden, datensatz zu groß oder ähnlich lautende
> fehlermeldungen. angeblich nix ernstes/garnix außer diesem
> allegro-problem IM netz passiert. also z.b. kein stromausfall
> o.ä.
...
> endlich bin ich abends vor Ort:  sehe, daß die datenbank der
> oben erwähnten datensicherung auf der diskette zwar aus einer
> datendatei besteht, die 400kb groß ist. aber sie enthält am ende
> einen datensatz, und der rest besteht aus hex-Nullen. upps. (wo
> habe ich das schon mal gesehen?)

ich selber habe soetwas noch nicht gesehen, daher nur
einige allgemeine Ueberlegungen:

* Wenn Sie ein seek() auf eine bestimmte Position in 
  einer Datei machen, die gar nicht so lang ist,
  wird der Rest (=Anfang) je nach Plattform mit Nullen
  aufgefuellt

* Ich hatte vorgestern ein Encounter mit einer Antiviren-
  Software (selbstgeschriebene bla.bat einer spezifischen
  Laenge wurde als Virus denunziert), die Datei war
  wohl irgendwie gesperrt. Nicht auszuschliessen ist,
  das eine Antiviren-Software die .ALD in "Quarantaene"
  gesteckt hat (kenne mich aber wirklich nicht aus damit).

* Backup- und Virensoftware gehen m.E. recht ruppig
  mit Dateien um, Sharing-Mechanismen, wie allegro sie
  einsetzt, brechen dann evtl. zusammen (aber auch
  Acrobat Reader und Word, WordView etc. setzen
  Locks auf Dateien, auf diese Dateien kann dann
  von anderen Programmen nicht zugegriffen werden)

* Allegro ist vorzuwerfen, dass es keine Kontrollmechanismen
  hat: Etwa wenn eine Indexzeile gelesen wird und das
  scheitert (weil ein anderes allegro-Programm gerade
  etwas zu langsam im Index herumschreibt), dann ist (war?)
  die (falsche) Schlussfolgerung, dass der Index zu Ende
  ist. Wenn ein allegro-Programm denkt, dass eine .ald-
  Datei soundso lang ist und am Ende einen Neusatz eintragen
  will, wird nicht getestet, ob das Dahinbewegen klappt
  oder das Schreiben klappt oder was auch immer. 
  Exakter, aber trotzdem nur mein persoenlicher Eindruck:
  Allegro ist "optimistisch", d.h. es kontrolliert die
  Ergebnisse von Systemaufrufen, die bei normalem Betrieb
  variieren koennen. Mehrplatzprogramme sollten m.E.
  aber "paranoid" programmiert sein: Jeder Systemaufruf
  sollte auf einen Fehlercode kontrolliert werden (beliebter
  Perl-Ratschlag ist z.B.: Schliessen einer zum Schreiben
  geoeffneten Datei kann einen Exit-Code liefern, naemlich 
  wenn die Platte zwischendurch vollgelaufen war).

Vermutlich also ist Allegro in Ihrer Situation "unschuldig",
aber aehnlich unschuldig wie jemand, der staendig Nachts in 
dunklen Parks spazierengeht.

viele Gruesse
Thomas Berger




Mehr Informationen über die Mailingliste Allegro