folgendes problem, handelt sich um ein hotelprogramm - computer 1
telefonprogramm - computer 2
borland database.
nun, das telefonprogramm auf computer 2 läuft ständig und ruft daten von com2 ab, schreibt diese ein eine datenbank.
computer 1 mit hotelprogramm liest diese datenbank beim aufruf aus, übernimmt die daten, und löscht sie.
eine ähnliche prozedur umgekehrt.
gast check/in out - hotelprogramm schreibt den befehl in eine 2. datenbank, das telefonprogramm liest diese ständig aus und schickt den befehl an com2.
das problem nun, solange das telefonprogramm auf die datenbank zugreift, hat das hotelprogramm probleme mit dem auslesen der daten. das komische nur, es geschieht nicht immer, manchmal geht es längere zeit gut, und plötzlich wieder zugriffsprobleme.
kann das damit zu tun haben, daß 2 computer auf die selbe datei zugreifen wollen?
auf dem computer 1 hotelprogramm läuft windows 2000 (problem gab es auch schon bei win98), 2. computer läuft win98, verbunden über hub und 100mbit netzwerkkarten.
etwas kompliziert, aber vielleicht weiß wer einen rat.
Jau, das passiert, wenn dieselbe Datei gleichzeitig von beiden Rechnern geöffnet werden soll.
Das ist ein generelles Problem mit den peer-to-peer Netzen ohne dedizierten Server. Nur die „erwachsenen“ Netzwerkbetriebssysteme (Novell, NT Server, UNIX) beherrschen es bestimmte Dateien „shareable“ zu markieren, damit das gleichzeitige Öffnen geht. Die Datenbanken werden dann über z.B. record-locking behandelt, d.h. nur der Datensatz ist gesperrt, der grade bearbeitet wird.
wenn man nt draufspielen würde, würde das dann besser funktionieren?
das record locking versteh ich aber nicht ganz, da das telefonprogramm ständig läuft, also die datei immer in anspruch nimmt, und das hotelprogramm nur dann und wann zugreift und die übernommenen datensätze löscht… ist das dafür gedacht, denn wäre die datei gesperrt, während sie benutzt wird… ist das ein problem, da dann das hotelprogramm gar nicht mehr zugreifen kann.
aber nt wäre natürlich eine lösung, da wir sowieso umsteigen möchten.
wenn man nt draufspielen würde, würde das
dann besser funktionieren?
Kann ich die nicht sagen, evtl. bekommst du nur eine bessere Fehlermeldung. Das Problem liegt eben im Programm-Code.
das record locking versteh ich aber nicht
ganz, da das telefonprogramm ständig
läuft, also die datei immer in anspruch
nimmt, und das hotelprogramm nur dann und
wann zugreift und die übernommenen
datensätze löscht… ist das dafür
gedacht, denn wäre die datei gesperrt,
während sie benutzt wird… ist das ein
problem, da dann das hotelprogramm gar
nicht mehr zugreifen kann.
Das ganze ist ein typisches Problem aus Lehrbuch.
Stell dir vor du hast eine ganz normale Einstellhalle mit nur einer einspurigen Zufahrt. Da brauchst du eine Ampel, denn wenn gleichzeitig einer rein und einer raus will, blockieren sich die beiden gegenseitig. Normalerweise bekommt der welcher schneller war grün und der andere muss warten bis der erste durch ist und dann bekommt der 2te grünes Licht.
Im Prinzip funktioniert das Record-Locking auf diese Art und Weise.
Normalerweise fahren, bei dir, die Autos nur rein (das telefonprogramm), das klappt bestens auch ohne eine Ampel. Aber manchmal werden auch Autos rausgefahren (das Hotelprogramm), das geht nur solange gut bis mal zu gleichen zeit einer rein will !!!
Das Problem ist aber nun, dass du eine Ampel einbauen musst und das muss in beiden Programmen gemacht werden.
danke für die antwort, hier noch etwas anderes, wenn beide gleichzeitig zugreifen wollen, der telefontreiber ist drinnen, kann das hotelprogramm nicht zugreifen. -> fehlermeldung. wenn ich das ganze aber nach einer minute wiederhole, und da ist aber frei, dürfte doch die fehlermeldung nicht mehr kommen.
die bleibt aber leidergottes so lange, bis ich den telefontreiber schließe und neu starte.
da klingt echt sch… aber ich kann schlecht an die hotelprogramm-firma herantreten und sagen, der programmierer hat falsch programmiert. obwohl wie ich mich kenne werd ich das machen, wenn sich das problem nicht nach dem nächsten update (das ich in kürze erhalte) gelöst hat.
na ja… danke nochmals wegen der hilfe.
gruß patrick
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
danke für die antwort, hier noch etwas
anderes, wenn beide gleichzeitig
zugreifen wollen, der telefontreiber ist
drinnen, kann das hotelprogramm nicht
zugreifen. -> fehlermeldung. wenn ich
das ganze aber nach einer minute
wiederhole, und da ist aber frei, dürfte
doch die fehlermeldung nicht mehr kommen.
JAIN (siehe nächster Punkt)
die bleibt aber leidergottes so lange,
bis ich den telefontreiber schließe und
neu starte.
Da, aus sicht des Programmieres, z.B. Schreibzugriffe nicht sofort ausgeführt werden (Da Disk-Zugriffe im Verhältnis zu Speicher-Zugriffen sehr langsam (Faktor ca. 1’000’000) sind, werden die Daten zuerst in einen Buffer im Speicher geschrieben, meist werden noch mehr Daten an die gleiche Stelle geschrieben und erst dann wird der ganze Buffer auf die Disk geschrieben) können Disk-Fehler auch erst später auftreten. Deshalb werden Fehler-Meldungen gespeichert. Der Programmierer muss diese abfragen, löschen und in geeigneter Weise darauf reagieren. Dies wird oft vergessen.
Wenn du das Programm neu startest sind diese Fehler-Meldungen zurückgesetzt und deshalb geht’s dann wieder, bis zum nächsten Fehler.
Also das Ganze ist ein Problem der Software und tausende von Programmierern beherschen es, aber einige lernen es halt nie!
da klingt echt sch… aber ich kann
schlecht an die hotelprogramm-firma
herantreten und sagen, der programmierer
hat falsch programmiert. obwohl wie ich
mich kenne werd ich das machen, wenn sich
das problem nicht nach dem nächsten
update (das ich in kürze erhalte) gelöst
hat.
Aber du hast das Recht dich zu beschweren wenn das ganze nicht funktioniert und dann ist es Sache des Herstellers, im Rahmen der Garantieleistungen, das ganze zum Laufen zu bringen!