gmkern
Goto Top

angeblich Aussetzer im Netzwerk

Die Datenbank ist häufig defekt und muss repariert werden.

Unser Netzwerk besteht aus NT4-Servern und NT4-/W2k-/XP-Clients.

Zentral auf einem der NT4-Server liegt eine Musikdatenbank (.mdb) auf die 2 Studiorechner und 4 Schnittplätze zugreifen. Manchmal 3-5 mal täglich, manchmal aber auch nur 2 mal in der Woche muss diese Datenbank mit Access97!!! repariert werden, da Sie beschädigt ist.

Nun streiten sich Softwarehersteller und Netzwerkadmin (das bin dann leider ich face-sad), wer Schuld ist und vor allem, wie man das Problem lösen kann.

Das Netzwerk soll dafür Verantwortlich sein, da es dort kurz Aussetzer geben soll. Diese konnte ich NIE sehen noch lassen Sie sich hervorrufen. Es ist auch Wurst, ob 2 Mitarbeiter dort sind oder 20.

Bisher:
habe ich den Server komplett neu aufgesetzt, den PDC um einen BDC erweitert, den Switch getauscht und fast alle Clients neu aufgesetzt.

Habe mal diverse Software getestet - aber da eigentlich nie eine richtig sinnvolle Antwort erhalten. Mittlerweile fehlt mir die Idee, wo ich noch angreifen kann - oder wie ich sinnvollerweise Vorgehen soll.

Es deutet ja wirklich alles auf das Netzwerk hin, weil die Software in zahlreichen anderen Netzen problemlos läuft (lt. Programmierer.)

Wäre eigentlich hier schon für jede weitere Idee/Hilfestellung dankbar.

Content-ID: 32737

Url: https://administrator.de/contentid/32737

Ausgedruckt am: 15.11.2024 um 01:11 Uhr

MagicM
MagicM 17.05.2006 um 21:14:56 Uhr
Goto Top
Es deutet ja wirklich alles auf das Netzwerk
hin, weil die Software in zahlreichen anderen
Netzen problemlos läuft (lt.
Programmierer.)

Jaja, klar face-wink Das kenne ich! Habe ich auch jahrelang zu hören bekommen.
Frag mal bei anderen Anwendern mal an, ob die nicht zufällig die gleichen Probleme haben.

Wäre eigentlich hier schon für
jede weitere Idee/Hilfestellung dankbar.

Was für ein Netzwerk habt ihr? Beschreibt das doch mal; verwendet ihr Marken-Geräte als Switch? Wie sieht die Topologie aus?

Also: Kann man die Verursachung vielleicht irgendwie eingrenzen? Laufen da vielleicht gerade andere Jobs auf den Rechnern bzw. Server? Verwendet ihr irgendwelche Firewalls, Virenscanner und dergl.?

Wieso überhaupt noch Access97? Kann man nicht auf Access 2000 oder höher gehen? Besser noch MS SQL bzw. MSDE.

Marco
ghofmann
ghofmann 17.05.2006 um 21:47:55 Uhr
Goto Top
Ganz grobe Netzwerkprobleme kann man z.B. mit einem Dauer-Ping entdecken, von einem Client-PC mal
ping -t servername
aufrufen, nach 5 Minuten mit Strg C abbrechen und schauen, ob Pakete verloren gegangen sind.

Die Aussage "läuft sonst überall" ist in der Software-Branche recht beliebt, ich weiß das, bin selber in der Branche tätig...
Rafiki
Rafiki 17.05.2006 um 22:27:49 Uhr
Goto Top
Nach meiner Meinung hat MS Access den Namen Datenbank nicht verdient. Ein ganz großes Problem bei MS Access ist das jeder Client (Benutzer) in der Datei, die auf dem Server liegt, Änderungen schreibt.
Vergleiche bitte das Bild bei Wikipedia http://de.wikipedia.org/wiki/Datenbank

Bei einem echten Datenbanksystem ist das Datenbankmanagementsystem ein Programm das auf dem Server läuft. Nur das DMS (Datenbankmanagementsystem) darf die Datenbankdateien lesen und schreiben. Das Benutzerprogramm meldet sich mit login und Passwort and dem DMS an und übergibt seine Wünsche z.B. Datensatz schreiben an das DMS. Das DMS sorgt dafür dass die Datenbank immer in einem konsistenten (gültig)Zustand ist.

Bei MS Access liegen nur die Daten auf dem Server. Jeder lässt sein Access lokal laufen. In den Datendateien stehen auch Regeln die es zu beachten gilt aber die Datendatei ist nicht davor geschützt das ein schlechter Accessclient einige dieser Regeln missachtet und ungültige Daten in die Dateien schreibt.

Hier ein einfaches Beispiel, das zwar von Access abgefangen würde, aber ich versuche nur das Problem einfach zu erklären, ohne das meine Kommentare wieder als halbe Diplomarbeit abgestraft werden.

In einer Datenbank ist eine Kundentabelle angelegt, die als primären Schlüssel die Kundennummer verwendet. Also muss die Kundennummer einmalig sein. Bei einer Oracle oder MS SQL Datenbank würde der Benutzer typischerweise die Daten von einem neuen Kunden eingeben und an die Datenbank senden. Die Datenbank bestätigt dass der Kunde angelegt wurde und hat eine neue Kundennummer generiert die bisher noch frei war. Bei MS Access würde ebenfalls ein neuer Datensatz vom Benutzer angelegt. MS Access liest die Tabelle aus der Datei und findet die Regel dass die Kundennummer einmalig sein muss. Also muss Access __auf dem Benutzercomputer__ herausfinden welche Kundennummer als nächste vergeben werden kann. Wenn der PC von dem Benutzer langsam ist kann das einige zeit in Anspruch nehmen. Zu der gleichen Zeit wird ein Kollege mit einem schnellen Computer schon einen neuen Datensatz anlegen. Das Access von dem langsamen Computer bemerkt die Änderung möglicherweise nicht und verwendet zufälligerweise die gleiche Nummer.

Ich weiß dieses Beispiel ist nicht optimal gewählt. Denn um dieses Szenario zu verhindern hat Access schreib sperren eingeführt. Die Tabelle wird kurzzeitig exklusiv für einen Benutzer gesperrt.

Aus meiner Erfahrung kann ich dir versichern du wirst mit Access immer wieder Probleme haben. Insbesondere häufen sich die Probleme wenn mehrere Anwender an einer Datei arbeiten oder wenn nicht alle MS Access Versionen exakt gleich sind. Beachte unbedingt auch das gleiche Service Pack für Office und gleiche Sprach Einstellungen (Punkts vs. Komma).

Ein Indianisches Sprichwort sagt: Wenn du entdeckst, dass du ein totes Pferd reitest, steig ab. Aber modernes Management wird jetzt erst richtig kreativ. http://jupe.twoday.net/stories/590163/


Mein Tipp ist leider der teuerste den du hier bekommen wirst. Lass diese Software auf einem echten Datenbanksystem neu programmieren! Aber nimm bloß nicht den Programmierer der sagt MS Access97 wäre eine Datenbank nur weil Microsoft das vor 10 Jahren auch behauptet hat. Die Microsoft Werbung hat auch mal gesagt Windows wäre sicher.

Es muss nicht gleich Oracle sein, auch eine MySQL Datenbank oder Microsoft SQL funktionieren zuverlässiger als das was du gerade hast. Ein guten Programmierer erkennst du daran das er oder sie drei mal so lange an dem ERM http://de.wikipedia.org/wiki/Entity-Relationship-Modell entwickelt wie an der eigentlichen Applikation. Denn wenn das ERM gut ist dann wird die Applikation, die beim Benutzer läuft, sehr klein und effizient.

Ach ja, dann wäre da noch der Beweiß für dein gutes Netzwerk. Überwache deinen Server und dein Netzwerk von einem PC aus mit MRTG oder PRTG. MRTG ist kostenlos, basiert auf Perl und ist nicht trivial einzurichten. Wenn du dich bereits mit Perl und SNMP Variabeln auskennst kann man das in 3-8 Stunden schaffen. http://oss.oetiker.ch/mrtg/

PRTG ist die gleiche Idee, kostet aber wenn du mehr als 3 Dinge überwachen möchtest. Unter Windows sehr einfach zu installieren.
http://www.de.paessler.com/prtg

Es macht Sinn auf dem Server SNMP zu installieren und eine Statistik über die Netzwerkauslastung auf der Servernetzwerkkarte zu erstellen. Wenn dann die Grafik keine Löcher aufweist, aber die Datenbank wieder Schrott ist, dann bist du gegenüber deinem Chef fein raus.

Gruß Rafiki
Rafiki
Rafiki 17.05.2006 um 22:33:16 Uhr
Goto Top
Auweia, bin ich müde! Mir fallen spontan 6 Rechtschreibfehler auf. Wer findet mehr? Egal.
Aber wer von euch kennt ein besseres Beispiel wo Access versagt?

Gruß ? gäähn ? Rafiki
sysad
sysad 18.05.2006 um 00:14:00 Uhr
Goto Top
Hi,

wenn es um die 'Verteilung' der Schuld bei DB-Netzwerk-Problemen geht, stelle ich testweise auf TS um. Wenn man tatsächlich Netzwerkprobleme hat, wird nicht die DB inkonsistent sondern die RDV bricht ab.
Nützt Dir wahrscheinlich bei NT nicht viel.

Dauerpings machen und Verlustrate testen, sonst fällt mir nix dazu mehr ein.
ghofmann
ghofmann 18.05.2006 um 07:26:59 Uhr
Goto Top
@Rafiki: kleine Besserwisserei am Rande: die Abkürzung DBMS ist in diesem Kontext besser, bei DMS denke ich eigentlich an Dokumenten-Management-Systeme. Ein gutes OpenSource-CMS ist übrigens auch Ingres -> www.ingres.com

Mit Deiner Kritik an Access hast natürlich recht, IMHO ist das wirklich nur als Adhoc-Abfrage-Frontend (z.B. geschwind eine ODBC-Abfrage gegen eine "richtige" Datenbank machen) zu gebrauchen, nicht als Basis für eigene, richtige Anwendungen.
VoSp
VoSp 18.05.2006 um 08:29:32 Uhr
Goto Top
Hallo,

das mit läuft woanders auch hat wohl jeder Admin schon mal von einer Softwarefirma gehört. Lass Dir mal Referenzen geben und ruf einfach an, sprich mit dem Admin dort uind lass Dir was über die Software erzählen.

Wir hatten mal ein ähnliches Problem mit einem Programm auf einem Terminal Server. Der Hersteller behauptete das es ohne Probleme auf dem TS läuft. Wir haben installiert und das Programm hat eine Performance unter aller Sau gezeigt. Es war sogar auf WIndows95! Clients schneller. Ok Softwarehersteller angerufen. "Nein muss am Netz liegen. Woanders läuft das auch ohne Probleme!" Wir haben uns dann die Nächte um die Ohren geschlagen bis wir herausgefunden haben das die Sache mit der Preview des SP4 für Windows 2000 (ist schon etwas länger her) besser läuft. Da war eine modifizierete NDVDM drin, mit dieser lief das Programm schön schnell! mal abgesehen davon das es überhaupt in einer NDVDm laufen muss!

Als wir den Hersteller der Software damit Konfrontíerten musster er kleinlaut zugeben das wir die erste Terminal Server installation gemacht hätten und das unser Kunde auch mit Abstand der mit den meissten Usern ist. (Der Kunde hat daraufhin auch abstand von der Softwarefirma genommen). Es wurde auch Überlegt noch rechtlich dagegen vorzugehen.

Soviel nur zu der Vertrauenwürdigkeit der Softwarehersteller. (Vor allem wenn Sie keine Updates für Ihre Programme herausgeben und den Kunden mit Access97 DB's versauern lassen.

Bis dann

VoSp