k.arkenau
Goto Top

FoxPro nochmal Immer wieder Abstürze nach Umzug auf einen virtualisiertes Windows Server 2008 64 bit

Hallo,

irgendwie lässt mir dieses FoxPro einfach keine Ruhe.

Wir sind Anfang Mai mit unserer FoxPro basierten Anwendung auf einen neuen, virtualisierten, Windows Server 2008 64bit Enterprise Edition Server umgezogen.

Dadurch hat sich die Performance der Anwendung zwar deutlich verbessert allerdings haben wir jetzt das Problem, das die Anwendung öfter mal am Tag Abstürzt und dadurch Dateien der Datenbank beschädigt werden und diese jedesmal neu indiziert werden muss und natürlich den Arbeitsablauf stört.

Wenn dieses dann auch noch mehrmals am Tag passiert ist das natürlich sehr nervig.

Hat jemand ne Idee woran dies liegen könnte und vor allem: Wie behebe ich dieses.

Die VMware ist übirgens ein VMware ESXi 5.0.0.

Vielen Dank für Eure Hilfe!

Content-ID: 189333

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

Ausgedruckt am: 19.11.2024 um 22:11 Uhr

woody-soft
Lösung woody-soft 10.08.2012, aktualisiert am 18.03.2014 um 16:00:46 Uhr
Goto Top
Hallo,

leider schreibst du nicht welche Version von FoxPro bei euch im Einsatz ist; ich hoffe VFP9 mit SP2.

Als Erstes solltest du dir den aktuellen Runtime-Installer runterladen, damit schon mal sichergestellt ist, dass deine Software mit dem aktuellsten Patches der jeweiligen Version läuft. Du findest diese für alle gängigen VFP-Versionen hier:
http://archive.msdn.microsoft.com/FoxPro

FoxPro selber ist eine Multiuser MultiClient-Anwendung, d.h. die App läuft im Normalfall auf dem Rechner des Anwenders, und dort müssen dann auch die Runtime-Module installiert sein. Auf deinem virtualisierten Server liegen im Normalfall nur die Daten, die über eine Verzeichnisfreigabe dann von der Client-App geöffnet werden. Manchmal wird auf dem Server zwar auch die Client-EXE hinkopiert, und diese dann über ne Verknüpfung gestartet, aber physikalisch laufen tut sie auch in diesem Scenario auf dem Clientrechner.

Natürlich könnte auch eine VFP-EXE als reine Server-Anwendung installiert sein, das wär dann quasi ne SingleUser Installation, die direkt auf dem Server mit lokalen Daten läuft; dann muss natürlich auch auf dem Server das Runtime-Modul installiert sein. Sowas ist aber eher die Ausnahme in der Praxis.

Aber prinzipiell ist erst mal zu sagen, daß FoxPro auch auf virtualisierten Rechnern absolut problemlos läuft; d.h. bei dir ist es garantiert kein Hardware-Problem, sondern vermutlich ist Windows eher die Ursache, genauer gesagt das "Optimistic Record Locking" kurz OpLocks.

Dieses Verfahren ist bei allen modernen Server-Betriebssystemen integriert und ist eigentlich ein Verfahren, um einem einzelnen Anwender auch im Netzwerk den Eindruck zu vermitteln, er würde mit lokalen Daten arbeiten, und die technisch unvermeidlichen Geschwindigkeitsverluste eines Netzwerks gegenüber lokalem Festplattenzugriff zu verschleiern.
Dazu werden vom Netzwerk-Client die eigentlich am Server geöffneten Daten lokal gecached und nur lokal geupdated. Der Netzwerk-Server steuert dies über die Anzahl Connections zur jeweiligen Datei: Solang nur ein User die Datei aufhat, wird automatisch lokal gecached, erst wenn mehrere User die Datei öffnen, wird wieder in Normalbetrieb zurückgeschaltet. Das klingt in der Theorie ganz gut, hat allerdings in der Praxis das Problem, dass die OpLock Algorithmen auf normale Dateien optimiert sind. Index-Dateien, wie sie zb VFP verwendet, werden konstant an verschiedensten Stellen beschrieben, anstatt dass eine gesamte Datei in einem Durchgang geschrieben wird. Daher hast du dann dein Problem mit den kaputten Indices.

Wenn du mit dem Begriff "OPLOCK PROBLEM" mal googelst, findest du tausende von Problemmeldungen, die querbeet alle file-basierten Datenbanken betreffen. Die OpLock Technik korrumpiert also nicht nur FoxPro, sondern auch Access, Paradox, dBase, etc.

Dieses OPLOCK-Verhalten kann man sowohl an allen Clients als auch zentral am Server über Registry-Einträge abschalten. Generell gilt also für dich: Wenn FoxPro im Einsatz ist, sind die OpLocks auf allen Clients immer (!) abzuschalten!
Am Server abschalten ist das einfachste, allerdings werden OpLocks auch von den "Offline-Dateien" im Explorer von Win7 verwendet.
Des weiteren kommt erschwerend hinzu, dass Microsoft die Oplocks mit dem Einsatz des SMB2 Protokolls verbunden hat. Früher konnte man noch problemlos auf SMB1 umschalten, aber ab Server 2008 ist SMB2 per default im Einsatz, und damit auch per Default die Oplocks aktiviert.


Offizielles dazu:
http://support.microsoft.com/default.aspx?scid=KB;en-us;q296264
http://www.superbase.com/services_tech_support_oplocks.htm
http://www.eduadmin.com/oplock.htm
http://www.dataaccess.com/whitepapers/op…eadcaching.html
http://devzone.advantagedatabase.com/dz/…fNo=090707-2191
http://www.samba.org/samba/docs/man/Samb…on/locking.html

http://www.sysprobs.com/windows-7-network-slow
http://www.networksteve.com/forum/topic.…Id=5025&Posts=4

Und zu guter Letzt: Hier gibt’s nen Installer, der alle Registry-Keys korrekt setzt:
http://www.alaska-software.com/fixes/smb2/overview.shtm


wOOdy
Visual FoxPro und Servoy Technologieberater
Microsoft "Most Valuable Professional" from 1996 to 2009, "Servoy Valued Professional“ 2011
my GeekCode: GCS d+ s:+ a++ C++ !U P--- L E? W++ N++ o-- K--? w+++ O? !M--? V-- PS PE !Y? !PGP t 5 X R tv- b DI+ D? G e++ h-- r+++ y+++


"*´¨)
¸.•´¸.•*´¨) ¸.•*¨)
(¸.•´. (¸.•` *
.•`.Visual FoxPro: It's magic !
(¸.•``••*
k.arkenau
k.arkenau 10.08.2012 um 14:10:47 Uhr
Goto Top
Hallo wOOdy,

vielen Dank für Deine ausführliche Antwort.

Sollte ich die "OpsLock" Funktion lieber am Server oder an den Clienten abschalten?

Mit "offline" Dateien arbeitet eigentlich bei uns niemand.

Was meinst Du?
woody-soft
Lösung woody-soft 10.08.2012, aktualisiert am 18.03.2014 um 16:00:51 Uhr
Goto Top
Hallo K. (?)

Warum nimmst du nicht das von mir verlinkte Tool (letzter Link) und liest dir dessen Beschreibung durch?
Da steht: "This MSI package needs to be executed on any Vista and Windows 7 workstation in a network to ensure that no data loss or data corruption occurs when accessing files concurrently. "

Also ganz klar: Auf den Clients. Den Server würd ich unangetastet lassen, auch wenns verlockend ist nur an einer Stelle was umzustellen...

wOOdy
k.arkenau
k.arkenau 11.08.2012 um 13:12:04 Uhr
Goto Top
Hallo Woody,

selbstverständlich habe ich die Beschreibung gelesen, aber manchmal ist es ja so, das man nicht unbedingt der Empfehlung folgen sollte, daher die Rückfrage.

Gruß

Karl-Heinz