Fehler Satz-/Dateisperre fehlgeschlagen

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
BIK
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Di, 23. Aug 2011 14:34
Hat sich bedankt: 1 Mal

Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von BIK »

Wir haben seit einigen Jahren ein Warenwirtschaftsprogramm am laufen - und das soweit ganz zufriedenstellend.
Nur ab und zu bekommen wir eine ganz komische Fehlermeldung

Kann man diesen Fehler irgendwie abfangen?
Wodurch könnte er entsteht?

------------------------------------------------------------------------------
FEHLERPROTOKOLL von "F:\FAKT_Vista\FAKT_Vista.EXE" Datum: 23.08.2011 11:41:58

Xbase++ Version : Xbase++ (R) Version 1.90.331
Betriebssystem : Windows XP 05.01 Build 02600 Service Pack 2
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: N VALUE: 29819
oError:canDefault : J
oError:canRetry : N
oError:canSubstitute: N
oError:cargo : NIL
oError:description : Satz-/Dateisperre fehlgeschlagen
oError:filename :
oError:genCode : 79,00
oError:operation : DbRUnlock
oError:osCode : 0,00
oError:severity : 2,00
oError:subCode : 8999,00
oError:subSystem : BASE
oError:thread : 4,00
oError:tries : 0,00

Herzlichen Dank für jegliche Hilfe,
Bernhard
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21248
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 211 Mal
Danksagung erhalten: 71 Mal

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von Manfred »

Hallo Bernhard,

bitte etwas Code von der Stelle zeigen, damit man sieht, wie Du das Problem angehst. Es könnte ein Konflikt zwischen 2 Stationen sein.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
BIK
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Di, 23. Aug 2011 14:34
Hat sich bedankt: 1 Mal

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von BIK »

Hier die Zeilen wo sich der Fehler ereignet ( markiert mit ---->>>> )
Zum Umfeld
Im Netzwerk befinden sich 3 Rechner - diese laufen mit XP SP2
Server läuft mit Novell 6


IF dbSeek ( RTRIM ( ::aMain_Text_Lines[ii][1]) )
IF .NOT. DIVERS
dbRlock()
MENGE += 12
---->>>> dbRUnlock( RECNO())
ENDIF
ELSE
msgbox ( "eof()" )
ENDIF
Zuletzt geändert von BIK am Mi, 24. Aug 2011 9:06, insgesamt 1-mal geändert.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12913
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von AUGE_OHR »

BIK hat geschrieben:Im Netzwerk befinden sich 3 Rechner - diese laufen mit XP SP3
Server läuft mit Novell 6
welche NW-Client verwendest du ? Turbo-FAT off ?
gruss by OHR
Jimmy
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1931
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von Rolf Ramacher »

Hi

ich mache dies etwas anders

Code: Alles auswählen

do while 123->(!rlock())
enddo

.... anweisung - 123->menge+=12
123->(Dbunlock())
versuch es mal
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12913
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von AUGE_OHR »

BIK hat geschrieben:Xbase++ Version : Xbase++ (R) Version 1.90.331
du solltest "upgraden" auf die 1.9.355 SL1
BIK hat geschrieben:Betriebssystem : Windows XP 05.01 Build 02600 Service Pack 2
man sollte SP3 haben ...
BIK hat geschrieben:

Code: Alles auswählen

oError:args         :
          -> VALTYPE: N VALUE: 29819
oError:canDefault   : J
oError:canRetry     : N
oError:canSubstitute: N
oError:cargo        : NIL
oError:description  : Satz-/Dateisperre fehlgeschlagen
oError:filename     : 
oError:genCode      :         79,00
oError:operation    : DbRUnlock
oError:osCode       :          0,00
oError:severity     :          2,00
oError:subCode      :       8999,00
oError:subSystem    : BASE
oError:thread       :          4,00
oError:tries        :          0,00
wo kommen bei die "," ( Komma) her ?
oError:subCode : 8999
8999 - [BASE] - Multipurpose SubCode for most Database Errors ?
Associated with: "79:Record lock failed"
Caused by: "OrdListAdd()", "DbSkip()", "DbSeek()", "DbGoTop()", "DbAppend()"

p.s. SMB1 Problem
oError:genCode : 79
79 XPP_ERR_LOCK Record lock failed
oError:thread : 4
da es im Thread passiert ist vermutlich dein ALIAS() auch "leer". versuche mal

Code: Alles auswählen

nRec := MyALIAS->RECNO()
IF MyALIAS->(DbRLock(nRec))
   MyALIAS->MENGE += 12
   // wenn man hier ein SLEEP braucht
   // ist es meistens ein "CACHE" Problem
   MyALIAS->(DbrUnLock(nRec))
   // statt COMMIT
   MyALIAS->(DbSkip(0))
ENDIF
gruss by OHR
Jimmy
BIK
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Di, 23. Aug 2011 14:34
Hat sich bedankt: 1 Mal

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von BIK »

Danke für die Zahlreichen Tipps

@AUGE_OHR
XP haben wir heute mit SP3 versehen
Beim xBase Upgrade auf die 1.9.355 SL1 ist mein Boss nicht wirklich begeistert, da das System ja grundsätlich läuft - nur eben ab und zu der Fehler

da es im Thread passiert ist vermutlich dein ALIAS() auch "leer". versuche mal
Wie kommt eine "leerer" Alias zustande - wenn vorher einwandfrei gespeichert wurde?

Ist davon auszugehen, dass schon beim dbRlock() der Fehler zustande kam - die Fehlermeldung zeigt ja auf das unlock
BIK
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Di, 23. Aug 2011 14:34
Hat sich bedankt: 1 Mal

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von BIK »

Ich habe heute die dbf's neu erzeugt und die Daten überspielt - ferner habe ich alle NTX Dateien neu erzeugt.
Und just vor einer Stunde ist der gleiche Fehler wieder aufgetreten!

Gibt es eine Möglichkeit - und bitte entschuldigt meine Newbie Frage - dass ich das dbRlock() / dbRUnlock()in einem BEGIN SEQUENCE Programm
einbinde, dass nicht das Programm anschliessend crashed sondern - mit einer Fehlermeldung weiter läuft

Ich hoffe, ich hab das halbwergs verständlich formuliert :)
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21248
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 211 Mal
Danksagung erhalten: 71 Mal

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von Manfred »

Moin,

Du fragst einfach ab, ob der Sperrvorgang geklappt hat und reagierst dann entsprechend darauf. Aber was willst Du stattdessen tun? Wenn nicht gesperrt werden kann, fallen auch entsprechende Aktionen dazu flach. Oder ist es egal, ob geschrieben wird oder nicht?

if ! db->(dbrlock())
tuwasanderes() <-- Fehlermeldung, oder Ersatzlösung, die keine Sperre benötigt.
else
machedaswasdusollst()
endif
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
BIK
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Di, 23. Aug 2011 14:34
Hat sich bedankt: 1 Mal

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von BIK »

Hallo Manfred!
nachdem anscheinend der Fehler beim Entsperren passiert - wäre es egal, wenn nicht entsperrt wird und das Programm ordnungsgemäß beendet werden kann.
Danach müsste das Programm neu gestartet werden und somit ist zumindest "nur" der eine Datansatz nicht aktualisiert.

Gruß,
Bernhard
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21248
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 211 Mal
Danksagung erhalten: 71 Mal

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von Manfred »

Oops,

war von Entsperren die Rede? Dann habe ich irgendwo gepennt. Sorry
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
BIK
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Di, 23. Aug 2011 14:34
Hat sich bedankt: 1 Mal

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von BIK »

Nun, da sich der Fehler nicht richtig reproduzieren lässt hab ich einen pensioniertern Kollegen kontaktiert,
der ursprünglich bei uns Clipper Programmierer war. Von ihm hab ich den Tip bekommen, dass es ein Tool gibt um das Programm
Schrittweise mit dem Debugger zu durchlaufen. ( er schwärmte irgendwas von Version SommerXX und HerbstXX oder so ;) )
Da ich das Programm in unserer Firma "geerbt" habe, weder Clipper noch xBase programmiert habe, kenne ich das Tool nicht!

Gibt es so etwas wie einen Debugger oder einen Debugmodus bei xBase und wie könnte ich ggf. den hinzulinken?
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14662
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von Jan »

Moin,

ja klar gibt es einen Debugger in Xbase++ (man beachte die Groß/Kleinschreibung der Buchstaben ;-) ). Sogar in 2 Versionen:
  • Den Debugger im Textmodus für alle die, die nicht mit VX arbeiten.
  • Den Debugger in VX.
Auch wenn Du nicht mit VX arbeitest wäre das interessant, da der Debugger hier mehr kann als der aus dem Textmodus. Der VX-Debugger lässt sich auch per Parameter direkt aufrufen.

Ansonsten: Einfach die Linkoption /D setzen. Dann läufts mit Debugger. Die Funktionstasten für die Textversion kenn ich nicht mehr (arbeite selber schon seit Jahren mit VX), da mußt Du mal in der Onlinehilfe nachschauen. Aber Du kannst natürlich Breakpoints setzen (manuell im Debugger oder per Funktionsaufruf AltD() im Quellcode), bis zu der aktuellen Zeile durchlaufen lassen, Variablen beobachten, Objekte beobachten, etc. etc. etc.

Übriegns: Dein Ex-Kollege meinte übrigens vermutlich Clipper Sommer 87. Das ist die bekannteste Version, die auch die letzte war, die nach der Jahreszeit benannt wurde.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
BIK
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Di, 23. Aug 2011 14:34
Hat sich bedankt: 1 Mal

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von BIK »

Danke Jan für den Hinweis!

Ich hab nun in der Anleitung etwas herumgesucht um den Debugger zu aktivieren.
Genügt es eigentlich im project File fogendes stehen zu haben:

COMPILE = xpp
COMPILE_FLAGS = /n /w
DEBUG = yes
GUI = yes
OBJ_DIR = OBJ\
LINKER = alink
LINK_FLAGS =
RC_COMPILE = arc
RC_FLAGS = /v
PROJECT.XPJ

mit Alt+D ist nämlich damit kein Debuggerfenster aufrufbar!
vielleich kann mir jemand einen Tipp geben um den Debugger zum Laufen zu bringen
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14662
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von Jan »

VX oder Textmodus? Im Textmodus xppdbg <exefile>

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
BIK
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Di, 23. Aug 2011 14:34
Hat sich bedankt: 1 Mal

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von BIK »

herzlichen Dank !! - zumindest konnte ich das Programm nun starten :lol:
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14662
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von Jan »

Wenn Du den Textmodus-Debugger nimmst: Schau mal in die Hilfefunktion. Da gibt es ein ganzes kapitel über den Debugger, die Optionen, Menüfunktionen, etc.

Inhalt->Programmierwerkzeuge->Der Xbase++-Debugger. Und einfach mal durchblättern.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
BIK
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Di, 23. Aug 2011 14:34
Hat sich bedankt: 1 Mal

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von BIK »

ja, leider hab ich nur den Textmodusdebugger! Aber ich hoffe, dass ich zumindest hier einen Lösungsansatz finde.

Gibt es eigentlich irgeneine Funktion mit der ich sehen kann, welches SLE, oder Fenster gerade den aktuellen Focus hat?
Valype() == O aber der Name wäre mir wichtig -
ich meine herausgefunden zu haben, dass der Inputfocus in an ein anderes Fenster springt und damit eine komplett andere Datenbank öffnet, die hier überhaupt nicht
geöffnet werden sollte.
Zuletzt geändert von BIK am Do, 01. Sep 2011 15:04, insgesamt 1-mal geändert.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14662
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von Jan »

Da muß ich Dir widersprechen. Wenn Du Xbase++ ab 1.8 oder 1.82 hast (weiß nicht genau, wann das dazugekommen ist), dann hast Du auch VX.

Und die gesuchte Funktion ist SetAppFocus(). Ohne Parameter macht der nix als den aktiven XBPart zurückzugeben. Mit Parameter macht der das auch, aber setzt auch den Fokus auf den übergebenen XBPart.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
BIK
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Di, 23. Aug 2011 14:34
Hat sich bedankt: 1 Mal

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von BIK »

Vielleicht wurde es nicht installiert - ich habe jedoch Version 1.90.331. Da ich die CD noch im Dateischrank habe, werde ich mal nachsehen, ob das Programm auf der CD ist.

EDIT: Auf unserer CD ist leider kein anderer Debugger
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14662
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von Jan »

Bernhard,

natürlich ist da kein anderer Debugger. Aber VX ist da drauf. Und der beinhaltet einen anderen Debugger.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15710
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 73 Mal
Danksagung erhalten: 38 Mal
Kontaktdaten:

Re: Fehler Satz-/Dateisperre fehlgeschlagen

Beitrag von brandelh »

Hi,

in dem Moment wo du auch nur den Debugger aufrufst (egal welchen) verliert dein Fenster den Eingabefocus !
Das muss noch nicht bedeuten, dass damit deine Workarea weg ist, da das Debugger Fenster diese nicht wechselt,
aber in einer multitasking gui Umgebung ist der Debugger nicht für alles zu gebrauchen.

Ich nutze für komplexe Probleme oft die gute alte ALTERNATE Datei um den Ablauf zu protokollieren:

Code: Alles auswählen

set alternate to xyz.txt
set alternate on 
set console off // GANZ WICHTIG BEI REINEN GUI Programmen
...
? date(), time(), ProcName(), ProcLine(), "Ich bin hier und erwarte ...", MyVar
...
if IchErwarte <> IchErhalte 
   ? date(), time(), ProcName(), ProcLine(), "Ergebnis wiederspricht ..."
   // eventuell auch mit Abbruch
   msgbox("GROBER FEHLER")
   quit
endif
...
set alternate to 
Für LIVE-Studien habe ich mir eine Funktion geschrieben ( DebugPrint() => Wissensbasis ),
die in einem eigenen unabhängigen Fenster Statusmeldungen ausgibt.
Gruß
Hubert
Antworten